@ecomiq/core 0.1.5 → 0.1.7
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.
- package/dist/client.cjs +46 -39
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +1 -0
- package/dist/client.d.ts +1 -0
- package/dist/client.js +46 -39
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +49 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +47 -40
- package/dist/index.js.map +1 -1
- package/dist/models/geo.cjs +10 -2
- package/dist/models/geo.cjs.map +1 -1
- package/dist/models/geo.d.cts +14 -14
- package/dist/models/geo.d.ts +14 -14
- package/dist/models/geo.js +10 -2
- package/dist/models/geo.js.map +1 -1
- package/dist/models/ids.cjs +17 -0
- package/dist/models/ids.cjs.map +1 -0
- package/dist/models/ids.d.cts +12 -0
- package/dist/models/ids.d.ts +12 -0
- package/dist/models/ids.js +13 -0
- package/dist/models/ids.js.map +1 -0
- package/dist/models/products.cjs +12 -4
- package/dist/models/products.cjs.map +1 -1
- package/dist/models/products.d.cts +4 -4
- package/dist/models/products.d.ts +4 -4
- package/dist/models/products.js +12 -4
- package/dist/models/products.js.map +1 -1
- package/dist/models/search.cjs +11 -5
- package/dist/models/search.cjs.map +1 -1
- package/dist/models/search.d.cts +1 -1
- package/dist/models/search.d.ts +1 -1
- package/dist/models/search.js +11 -5
- package/dist/models/search.js.map +1 -1
- package/dist/models/settings.cjs +20 -10
- package/dist/models/settings.cjs.map +1 -1
- package/dist/models/settings.d.cts +64 -63
- package/dist/models/settings.d.ts +64 -63
- package/dist/models/settings.js +18 -11
- package/dist/models/settings.js.map +1 -1
- package/dist/models/storefront-cart.cjs +23 -15
- package/dist/models/storefront-cart.cjs.map +1 -1
- package/dist/models/storefront-cart.d.cts +23 -23
- package/dist/models/storefront-cart.d.ts +23 -23
- package/dist/models/storefront-cart.js +23 -15
- package/dist/models/storefront-cart.js.map +1 -1
- package/dist/models/storefront-checkout.cjs +28 -22
- package/dist/models/storefront-checkout.cjs.map +1 -1
- package/dist/models/storefront-checkout.d.cts +43 -43
- package/dist/models/storefront-checkout.d.ts +43 -43
- package/dist/models/storefront-checkout.js +28 -22
- package/dist/models/storefront-checkout.js.map +1 -1
- package/dist/models/storefront-reviews.cjs +12 -4
- package/dist/models/storefront-reviews.cjs.map +1 -1
- package/dist/models/storefront-reviews.js +12 -4
- package/dist/models/storefront-reviews.js.map +1 -1
- package/package.json +6 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/libs/api.ts","../src/models/collections.ts","../src/models/products.ts","../src/models/settings.ts","../src/services/product.service.ts","../src/models/search.ts","../src/services/search.service.ts","../src/models/storefront-reviews.ts","../src/services/review.service.ts","../src/models/storefront-cart.ts","../src/services/cart.service.ts","../src/services/collection.service.ts","../src/services/page.service.ts","../src/models/storefront-checkout.ts","../src/services/checkout.service.ts","../src/models/geo.ts","../src/services/geo.service.ts","../src/models/customer-address.ts","../src/services/customer-address.service.ts","../src/models/customer-profile.ts","../src/services/customer.service.ts","../src/models/customer-order.ts","../src/services/customer-order.service.ts","../src/client.ts","../src/utils.ts"],"names":["bodyText","z","getCollections","getCollectionBySlug","getPageBySlug","getProducts","getProductBySlug","getRelatedProducts","autocompleteProducts","listProductReviews","createProductReview","createCart","getCart","addCartItem","updateCartItemQuantity","removeCartItem","getCartCheckout","getShippingOptions","putCartShippingMethod","patchCartBuyer","patchCartAddresses","checkoutCart","uploadPaymentReceipt","addCartPromotionCode","removeCartPromotionCode","getCountries","getDepartments","getProvinces","getDistricts","getCustomerAddresses","options","createCustomerAddress","updateCustomerAddress","deleteCustomerAddress","getCustomerMe","patchCustomer","getCustomerOrders","getCustomerOrder","sanitize"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Cliente HTTP de Ecomiq para servicios externos.\n * fetch nativo (funciona en Node, navegador y Cloudflare Workers)\n * + validación de respuestas con Zod.\n */\nimport type { z } from 'zod'\n\nexport const DEFAULT_API_BASE_URL = 'https://storefront.ecomiq.pe'\nexport const DEFAULT_API_VERSION = 'v1'\n\nexport class ApiError extends Error {\n constructor(\n message: string,\n public readonly status: number,\n public readonly url: string,\n public readonly body?: unknown,\n ) {\n super(message)\n this.name = 'ApiError'\n }\n}\n\nexport interface CreateApiOptions {\n /** Default: https://storefront.ecomiq.pe */\n baseUrl?: string\n /** Segmento de path, default 'v1' → {baseUrl}/v1/... */\n version?: string\n headers?: Record<string, string>\n timeoutMs?: number\n}\n\ninterface RequestOptions {\n query?: Record<string, string | number | boolean | undefined>\n headers?: Record<string, string>\n signal?: AbortSignal\n}\n\nexport interface Api {\n get<S extends z.ZodTypeAny>(\n path: string,\n schema: S,\n options?: RequestOptions,\n ): Promise<z.output<S>>\n post<S extends z.ZodTypeAny>(\n path: string,\n body: unknown,\n schema: S,\n options?: RequestOptions,\n ): Promise<z.output<S>>\n /** POST multipart; no fuerza `content-type: application/json`. */\n postForm<S extends z.ZodTypeAny>(\n path: string,\n body: FormData,\n schema: S,\n options?: RequestOptions,\n ): Promise<z.output<S>>\n request<S extends z.ZodTypeAny>(\n method: string,\n path: string,\n schema: S,\n options?: RequestOptions & { body?: unknown },\n ): Promise<z.output<S>>\n}\n\n/** Une baseUrl + version en la base efectiva del cliente, ej. https://storefront.ecomiq.pe/v1/ */\nexport function resolveApiBaseUrl(\n baseUrl: string = DEFAULT_API_BASE_URL,\n version: string = DEFAULT_API_VERSION,\n): string {\n const root = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`\n const segment = version.replace(/^\\/+|\\/+$/g, '')\n // Sin segmento: conservar la base tal cual (p. ej. BFF `/api/` same-origin).\n // `new URL('/', root)` reemplazaría el pathname entero.\n if (!segment) return root\n return new URL(`${segment}/`, root).toString()\n}\n\n/**\n * Crea un cliente HTTP tipado con Zod.\n *\n * ```ts\n * const api = createApi()\n * const data = await api.get('settings', schema)\n * // → GET https://storefront.ecomiq.pe/v1/settings\n * ```\n */\nexport function createApi(options: CreateApiOptions = {}): Api {\n const {\n baseUrl = DEFAULT_API_BASE_URL,\n version = DEFAULT_API_VERSION,\n headers: baseHeaders = {},\n timeoutMs = 10_000,\n } = options\n\n const effectiveBaseUrl = resolveApiBaseUrl(baseUrl, version)\n\n async function request<S extends z.ZodTypeAny>(\n method: string,\n path: string,\n schema: S,\n opts: RequestOptions & { body?: unknown } = {},\n ): Promise<z.output<S>> {\n const url = new URL(path.replace(/^\\//, ''), effectiveBaseUrl)\n for (const [key, value] of Object.entries(opts.query ?? {})) {\n if (value !== undefined) url.searchParams.set(key, String(value))\n }\n\n const controller = new AbortController()\n const timeout = setTimeout(() => controller.abort(), timeoutMs)\n if (opts.signal) opts.signal.addEventListener('abort', () => controller.abort(), { once: true })\n\n const isFormData =\n typeof FormData !== 'undefined' && opts.body instanceof FormData\n\n let response: Response\n try {\n response = await fetch(url.toString(), {\n method,\n headers: {\n accept: 'application/json',\n ...(opts.body !== undefined && !isFormData\n ? { 'content-type': 'application/json' }\n : {}),\n ...baseHeaders,\n ...opts.headers,\n },\n body:\n opts.body === undefined\n ? undefined\n : isFormData\n ? (opts.body as FormData)\n : JSON.stringify(opts.body),\n signal: controller.signal,\n })\n } catch (err) {\n throw new ApiError(\n err instanceof DOMException && err.name === 'AbortError'\n ? `Timeout tras ${timeoutMs}ms: ${url}`\n : `No se pudo conectar con ${url}`,\n 0,\n url.toString(),\n )\n } finally {\n clearTimeout(timeout)\n }\n\n if (!response.ok) {\n const bodyText = await response.text().catch(() => undefined)\n let body: unknown = bodyText\n if (bodyText) {\n try {\n body = JSON.parse(bodyText)\n } catch {}\n }\n throw new ApiError(`${method} ${url} → ${response.status}`, response.status, url.toString(), body)\n }\n\n const bodyText = await response.text()\n let json: unknown = null\n if (bodyText.trim()) {\n try {\n json = JSON.parse(bodyText)\n } catch {\n throw new ApiError(\n `Respuesta no JSON de ${url}`,\n response.status,\n url.toString(),\n bodyText,\n )\n }\n }\n\n const parsed = schema.safeParse(json)\n if (!parsed.success) {\n throw new ApiError(\n `Respuesta inesperada de ${url}: ${parsed.error.issues[0]?.path.join('.')} ${parsed.error.issues[0]?.message}`,\n response.status,\n url.toString(),\n json,\n )\n }\n return parsed.data as z.output<S>\n }\n\n return {\n request,\n get: (path, schema, opts) => request('GET', path, schema, opts),\n post: (path, body, schema, opts) => request('POST', path, schema, { ...opts, body }),\n postForm: (path, body, schema, opts) =>\n request('POST', path, schema, { ...opts, body }),\n }\n}\n","import { z } from 'zod'\n\nexport const CollectionSchema = z.object({\n id: z.number(),\n slug: z.string(),\n name: z.string(),\n description: z.string().nullable().optional(),\n imageUrl: z.string().nullable().optional(),\n type: z.string(),\n productCount: z.number().optional(),\n})\n\nexport const CollectionsSchema = z.array(CollectionSchema)\n\nexport type Collection = z.infer<typeof CollectionSchema>\nexport type Collections = z.infer<typeof CollectionsSchema>\n","import { z } from 'zod'\n\nexport const ProductPublicIdSchema = z\n .union([\n z.string().regex(/^[1-9]\\d*$/),\n z.number().int().safe().positive(),\n ])\n .transform(String)\n\nexport const ProductSummarySchema = z.object({\n id: ProductPublicIdSchema,\n name: z.string(),\n slug: z.string(),\n productType: z.string(),\n imageUrl: z.string(),\n price: z.number().nonnegative(),\n compareAtPrice: z.number().nonnegative().nullable(),\n variantCount: z.number().int().nonnegative(),\n isAvailable: z.boolean(),\n totalInventory: z.number().int().nonnegative(),\n bundleItemsCount: z.number().int().nonnegative(),\n brand: z.string(),\n category: z.string(),\n status: z.string(),\n collections: z.array(z.string()),\n tags: z.array(z.string()),\n})\n\nexport const ProductSummariesSchema = z.array(ProductSummarySchema)\n\nexport const ProductSchema = ProductSummarySchema\n\nexport const FacetItemSchema = z.object({\n value: z.string(),\n count: z.number().int().nonnegative(),\n label: z.string().nullable(),\n selected: z.boolean(),\n})\n\nexport const FacetSchema = FacetItemSchema\n\nexport const SearchFilterSchema = z.object({\n id: z.string(),\n label: z.string(),\n type: z.enum(['list', 'price_range']),\n values: z.array(FacetItemSchema),\n min: z.number().nonnegative().nullable(),\n max: z.number().nonnegative().nullable(),\n selectedMin: z.number().nonnegative().nullable(),\n selectedMax: z.number().nonnegative().nullable(),\n})\n\nexport const ProductsResponseSchema = z.object({\n pageIndex: z.number().int().positive(),\n pageSize: z.number().int().positive().max(100),\n totalCount: z.number().int().nonnegative(),\n totalPages: z.number().int().nonnegative(),\n products: z.array(ProductSummarySchema),\n filters: z.array(SearchFilterSchema),\n})\n\nexport const ProductSortSchema = z.enum([\n 'price_asc',\n 'price_desc',\n 'name_asc',\n 'name_desc',\n 'newest',\n])\n\nexport const ProductsParamsSchema = z.object({\n page: z.number().int().positive().default(1),\n pageSize: z.number().int().positive().max(100).default(24),\n sort: ProductSortSchema.optional(),\n sellerId: z.string().uuid().optional(),\n search: z.string().optional(),\n collection: z.string().optional(),\n collections: z.array(z.string()).optional(),\n collectionId: ProductPublicIdSchema.optional(),\n category: z.string().optional(),\n categories: z.array(z.string()).optional(),\n brand: z.string().optional(),\n brands: z.array(z.string()).optional(),\n productType: z.string().optional(),\n productTypes: z.array(z.string()).optional(),\n tag: z.string().optional(),\n tags: z.array(z.string()).optional(),\n filters: z.array(z.string()).optional(),\n locationId: z.string().uuid().optional(),\n inStock: z.boolean().optional(),\n minPrice: z.number().nonnegative().optional(),\n maxPrice: z.number().nonnegative().optional(),\n})\n\nexport const ProductDetailParamsSchema = z.object({\n sellerId: z.string().uuid().optional(),\n})\n\nexport const RelatedProductsParamsSchema = z.object({\n productId: ProductPublicIdSchema,\n limit: z.number().int().positive().max(12).default(8),\n sellerId: z.string().uuid().optional(),\n})\n\nexport const SpecItemSchema = z.object({\n key: z.string(),\n name: z.string(),\n value: z.string(),\n})\n\nexport const VariantOptionSchema = SpecItemSchema\n\nexport const ProductImageSchema = z.object({\n url: z.string(),\n name: z.string(),\n order: z.number().int().nonnegative(),\n})\n\nexport const VariantItemSchema = z.object({\n id: z.string().nullable(),\n sku: z.string(),\n status: z.string(),\n price: z.number().nonnegative(),\n compareAtPrice: z.number().nonnegative().nullable(),\n quantity: z.number().int().nonnegative(),\n options: z.array(SpecItemSchema),\n images: z.array(ProductImageSchema),\n})\n\nexport const VariantSchema = VariantItemSchema\n\nexport const ProductPriceTierSchema = z.object({\n variantId: z.string(),\n minQuantity: z.number().int().positive(),\n maxQuantity: z.number().int().positive().nullable(),\n unitPrice: z.number().nonnegative(),\n})\n\nexport const PriceTierSchema = ProductPriceTierSchema\n\nexport const BundleItemSchema = z.object({\n productId: ProductPublicIdSchema,\n variantId: ProductPublicIdSchema,\n productName: z.string(),\n variantName: z.string().nullable(),\n sku: z.string().nullable(),\n brand: z.string().nullable(),\n imageUrl: z.string().nullable(),\n quantity: z.number().int().positive(),\n available: z.number().int().nonnegative(),\n allowBackorders: z.boolean(),\n requiresShipping: z.boolean(),\n})\n\nexport const SizeGuideMeasurementSchema = z.object({\n key: z.string(),\n name: z.string(),\n min: z.number().nullable(),\n max: z.number().nullable(),\n value: z.number().nullable(),\n description: z.string().nullable(),\n})\n\nexport const SizeGuideRowSchema = z.object({\n label: z.string(),\n sizeKey: z.string(),\n order: z.number().int().nonnegative(),\n measurements: z.array(SizeGuideMeasurementSchema),\n})\n\nexport const SizeGuideSchema = z.object({\n id: z.string(),\n name: z.string(),\n slug: z.string(),\n description: z.string().nullable(),\n imageUrl: z.string().nullable(),\n gender: z.string(),\n measurementType: z.string(),\n unit: z.string(),\n notes: z.string().nullable(),\n rows: z.array(SizeGuideRowSchema),\n})\n\nexport const ProductDetailSchema = z.object({\n id: ProductPublicIdSchema,\n name: z.string(),\n slug: z.string(),\n description: z.string(),\n productType: z.string(),\n status: z.string(),\n imageUrl: z.string(),\n price: z.number().nonnegative(),\n compareAtPrice: z.number().nonnegative().nullable(),\n isAvailable: z.boolean(),\n totalInventory: z.number().int().nonnegative(),\n brand: z.string(),\n category: z.string(),\n categoryId: ProductPublicIdSchema.nullable(),\n tags: z.array(z.string()),\n specifications: z.array(SpecItemSchema),\n variants: z.array(VariantItemSchema),\n images: z.array(ProductImageSchema),\n bundleItems: z.array(BundleItemSchema),\n sizeGuide: SizeGuideSchema.nullable(),\n priceTiers: z.array(ProductPriceTierSchema),\n createdAt: z.string().datetime({ offset: true }).nullable(),\n updatedAt: z.string().datetime({ offset: true }).nullable(),\n})\n\nexport type ProductSummary = z.infer<typeof ProductSummarySchema>\nexport type Product = ProductSummary\nexport type FacetItem = z.infer<typeof FacetItemSchema>\nexport type Facet = FacetItem\nexport type SearchFilter = z.infer<typeof SearchFilterSchema>\nexport type ProductsResponse = z.infer<typeof ProductsResponseSchema>\nexport type ProductsParams = z.infer<typeof ProductsParamsSchema>\nexport type ProductsParamsInput = z.input<typeof ProductsParamsSchema>\nexport type ProductDetailParams = z.input<typeof ProductDetailParamsSchema>\nexport type RelatedProductsParams = z.input<typeof RelatedProductsParamsSchema>\nexport type ProductSort = z.infer<typeof ProductSortSchema>\nexport type SpecItem = z.infer<typeof SpecItemSchema>\nexport type VariantOption = SpecItem\nexport type VariantItem = z.infer<typeof VariantItemSchema>\nexport type Variant = VariantItem\nexport type ProductImage = z.infer<typeof ProductImageSchema>\nexport type ProductPriceTier = z.infer<typeof ProductPriceTierSchema>\nexport type PriceTier = ProductPriceTier\nexport type BundleItem = z.infer<typeof BundleItemSchema>\nexport type SizeGuideMeasurement = z.infer<typeof SizeGuideMeasurementSchema>\nexport type SizeGuideRow = z.infer<typeof SizeGuideRowSchema>\nexport type SizeGuide = z.infer<typeof SizeGuideSchema>\nexport type ProductDetail = z.infer<typeof ProductDetailSchema>\n","import { z } from 'zod'\n\nexport type JsonElement =\n | null\n | boolean\n | number\n | string\n | JsonElement[]\n | { [key: string]: JsonElement }\n\nexport const JsonElementSchema: z.ZodType<JsonElement> = z.lazy(() =>\n z.union([\n z.null(),\n z.boolean(),\n z.number().finite(),\n z.string(),\n z.array(JsonElementSchema),\n z.record(z.string(), JsonElementSchema),\n ]),\n)\n\nconst DateTimeOffsetSchema = z.string().datetime({ offset: true })\nconst NullableDateTimeOffsetSchema = DateTimeOffsetSchema.nullable()\nconst NullableUuidSchema = z.string().uuid().nullable()\n\nexport const StoreTypeSchema = z.enum([\n 'b2C',\n 'marketplace',\n 'retail',\n 'b2B',\n 'social',\n 'hub',\n 'restaurant',\n])\n\nexport const StoreVisibilitySchema = z.enum(['public', 'private'])\n\nexport const StoreThemeSettingsSchema = z\n .object({\n name: z.string().nullable(),\n mode: z.string().nullable(),\n colors: z.record(z.string(), z.string()),\n fonts: z.record(z.string(), z.string()),\n assets: z.record(z.string(), z.string()),\n })\n .strict()\n\nexport const StoreFeatureFlagsSchema = z\n .object({\n flags: z.record(z.string(), z.boolean()),\n })\n .strict()\n\nexport const StoreCheckoutGeneralSettingsSchema = z\n .object({\n allowGuestCheckout: z.boolean(),\n identityScope: z.enum(['store', 'tenant', 'global']),\n signInMethods: z.array(z.enum(['password', 'emailOtp', 'google'])),\n useSequentialOrderNumbers: z.boolean(),\n automaticallySelectFirstAddress: z.boolean(),\n alwaysRequestCustomerAddress: z.boolean(),\n requestCustomerDateOfBirth: z.boolean(),\n automaticallySelectBestPromotion: z.boolean(),\n })\n .strict()\n\nexport const StoreCheckoutShippingSettingsSchema = z\n .object({\n showDeliveryTime: z.boolean(),\n showDeliveryTimeInDays: z.boolean(),\n useBusinessDaysForDeliveryTime: z.boolean(),\n showEstimatedDeliveryDateInThankYouAndEmails: z.boolean(),\n showOriginalShippingPriceWhenFree: z.boolean(),\n })\n .strict()\n\nexport const StoreCheckoutCartPageSettingsSchema = z\n .object({\n showShippingCostCalculation: z.boolean(),\n allowProductLinks: z.boolean(),\n redirectToCartPage: z.boolean(),\n })\n .strict()\n\nexport const StoreCheckoutOrderBumpSettingsSchema = z\n .object({\n mergeOrderBumpOrders: z.boolean(),\n allowOnlyOneAdditionalOffer: z.boolean(),\n maxVisibleOffers: z.number().int(),\n })\n .strict()\n\nexport const StoreCheckoutOrdersAndPaymentsSettingsSchema = z\n .object({\n allowPurchasesFrom: z.enum(['any', 'individual', 'company']),\n creditCardDailyOrderLimitPerIp: z.number().int().nullable(),\n maximumItemsPerOrder: z.number().int().nullable(),\n deliveryNoteText: z.string().nullable(),\n boletoPaymentNoteText: z.string().nullable(),\n })\n .strict()\n\nexport const StoreCheckoutSettingsSchema = z\n .object({\n general: StoreCheckoutGeneralSettingsSchema,\n shipping: StoreCheckoutShippingSettingsSchema,\n cartPage: StoreCheckoutCartPageSettingsSchema,\n orderBumps: StoreCheckoutOrderBumpSettingsSchema,\n ordersAndPayments: StoreCheckoutOrdersAndPaymentsSettingsSchema,\n })\n .strict()\n\nconst StorefrontStoreShape = {\n id: z.string().uuid(),\n tenantId: z.string().uuid(),\n sellerId: NullableUuidSchema,\n type: StoreTypeSchema,\n isActive: z.boolean(),\n name: z.string(),\n description: z.string(),\n logo: z.string().nullable(),\n icon: z.string().nullable(),\n slug: z.string().nullable(),\n domain: z.string().nullable(),\n domains: z.array(z.string()),\n timeZone: z.string(),\n currency: z.string(),\n language: z.string(),\n visibility: StoreVisibilitySchema,\n themeConfig: StoreThemeSettingsSchema,\n featuresEnabled: StoreFeatureFlagsSchema,\n checkoutSettings: StoreCheckoutSettingsSchema,\n}\n\nexport const StoreModelSchema = z.object(StorefrontStoreShape).strict()\n\nexport type StoreModel = z.infer<typeof StoreModelSchema>\n\nexport const CmsBrandingSettingsDtoSchema = z\n .object({\n logoUrl: z.string().nullable(),\n logoDarkUrl: z.string().nullable(),\n faviconUrl: z.string().nullable(),\n socialImageUrl: z.string().nullable(),\n })\n .strict()\n\nexport const CmsSeoSettingsDtoSchema = z\n .object({\n siteName: z.string().nullable(),\n metaTitle: z.string().nullable(),\n metaDescription: z.string().nullable(),\n titleTemplate: z.string().nullable(),\n robotsIndex: z.boolean(),\n })\n .strict()\n\nexport const CmsSocialLinksDtoSchema = z\n .object({\n instagram: z.string().nullable(),\n facebook: z.string().nullable(),\n tiktok: z.string().nullable(),\n youtube: z.string().nullable(),\n x: z.string().nullable(),\n })\n .strict()\n\nexport const CmsContactSettingsDtoSchema = z\n .object({\n supportEmail: z.string().nullable(),\n phone: z.string().nullable(),\n whatsapp: z.string().nullable(),\n address: z.string().nullable(),\n socialLinks: CmsSocialLinksDtoSchema,\n })\n .strict()\n\nexport const CmsTrackingSettingsDtoSchema = z\n .object({\n googleAnalyticsMeasurementId: z.string().nullable(),\n metaPixelId: z.string().nullable(),\n googleTagManagerContainerId: z.string().nullable(),\n })\n .strict()\n\nexport const CmsCustomScriptsDtoSchema = z\n .object({\n enabled: z.boolean(),\n head: z.string().nullable(),\n bodyEnd: z.string().nullable(),\n })\n .strict()\n\nexport const CmsSiteSettingsDtoSchema = z\n .object({\n themeKey: z.string(),\n branding: CmsBrandingSettingsDtoSchema,\n seo: CmsSeoSettingsDtoSchema,\n contact: CmsContactSettingsDtoSchema,\n tracking: CmsTrackingSettingsDtoSchema,\n customScripts: CmsCustomScriptsDtoSchema,\n updatedOn: NullableDateTimeOffsetSchema,\n })\n .strict()\n\nexport type CmsMenuItem = {\n label: string\n url: string\n order: number\n target: string | null\n visible: boolean | null\n children: CmsMenuItem[] | null\n}\n\nexport const CmsMenuItemSchema: z.ZodType<CmsMenuItem> = z.lazy(() =>\n z\n .object({\n label: z.string(),\n url: z.string(),\n order: z.number().int(),\n target: z.string().nullable(),\n visible: z.boolean().nullable(),\n children: z.array(CmsMenuItemSchema).nullable(),\n })\n .strict(),\n)\n\nexport const CmsMenuDtoSchema = z\n .object({\n key: z.string(),\n name: z.string(),\n items: z.array(CmsMenuItemSchema),\n })\n .strict()\n\nexport type CmsMenuDto = z.infer<typeof CmsMenuDtoSchema>\n\nexport const CmsBlockDtoSchema = z\n .object({\n id: z.string().uuid(),\n type: z.string(),\n order: z.number().int(),\n settings: JsonElementSchema,\n })\n .strict()\n\nexport type CmsBlockDto = z.infer<typeof CmsBlockDtoSchema>\n\nexport const CmsSectionDtoSchema = z\n .object({\n id: z.string().uuid(),\n type: z.string(),\n order: z.number().int(),\n settings: JsonElementSchema,\n blocks: z.array(CmsBlockDtoSchema),\n })\n .strict()\n\nexport type CmsSectionDto = z.infer<typeof CmsSectionDtoSchema>\n\nexport const CmsContentChannelSchema = z.enum(['storefront', 'pos'])\nexport const CmsPageStatusSchema = z.enum(['draft', 'published', 'archived'])\n\nexport const CmsPageDetailsDtoSchema = z\n .object({\n id: z.string().uuid(),\n name: z.string(),\n slug: z.string(),\n channel: CmsContentChannelSchema,\n layout: z.string(),\n version: z.number().int().nullable(),\n settings: JsonElementSchema,\n sections: z.array(CmsSectionDtoSchema),\n status: CmsPageStatusSchema,\n hasPublishedVersion: z.boolean(),\n publishedOn: NullableDateTimeOffsetSchema,\n publishedBy: NullableUuidSchema,\n createdOn: DateTimeOffsetSchema,\n updatedOn: NullableDateTimeOffsetSchema,\n createdBy: NullableUuidSchema,\n updatedBy: NullableUuidSchema,\n lastModifiedBy: z.string().nullable(),\n })\n .strict()\n\nexport type CmsPageDetailsDto = z.infer<typeof CmsPageDetailsDtoSchema>\n\nexport const CmsSnapshotDtoSchema = z\n .object({\n settings: CmsSiteSettingsDtoSchema,\n pages: z.array(CmsPageDetailsDtoSchema),\n menus: z.array(CmsMenuDtoSchema),\n })\n .strict()\n\nexport type CmsSnapshotDto = z.infer<typeof CmsSnapshotDtoSchema>\n\nconst StoreSettingsSnapshotV1Schema = z\n .object({\n schemaVersion: z.literal(1),\n generatedAt: DateTimeOffsetSchema,\n store: z.object(StorefrontStoreShape),\n cms: CmsSnapshotDtoSchema,\n })\n .strict()\n\nconst StoreSettingsSnapshotV2Schema = z\n .object({\n schemaVersion: z.literal(2),\n generatedAt: DateTimeOffsetSchema,\n store: StoreModelSchema,\n cms: CmsSnapshotDtoSchema,\n })\n .strict()\n\nexport const StoreSettingsSnapshotDtoSchema = z.discriminatedUnion(\n 'schemaVersion',\n [StoreSettingsSnapshotV1Schema, StoreSettingsSnapshotV2Schema],\n)\n\nexport type StoreSettingsSnapshotDto = z.infer<\n typeof StoreSettingsSnapshotDtoSchema\n>\n\nexport const StorefrontCheckoutSettingsSchema = StoreCheckoutSettingsSchema\nexport const StorefrontFeaturesEnabledSchema = StoreFeatureFlagsSchema\nexport const StorefrontCmsBrandingSchema = CmsBrandingSettingsDtoSchema\nexport const StorefrontThemeConfigSchema = StoreThemeSettingsSchema\nexport const StorefrontStoreTypeSchema = StoreTypeSchema\nexport const StorefrontStoreSchema = StoreModelSchema\nexport const StorefrontCmsSeoSchema = CmsSeoSettingsDtoSchema\nexport const StorefrontCmsSocialLinksSchema = CmsSocialLinksDtoSchema\nexport const StorefrontCmsContactSchema = CmsContactSettingsDtoSchema\nexport const StorefrontCmsTrackingSchema = CmsTrackingSettingsDtoSchema\nexport const StorefrontCmsCustomScriptsSchema = CmsCustomScriptsDtoSchema\nexport const StorefrontCmsSettingsSchema = CmsSiteSettingsDtoSchema\nexport const StorefrontMenuItemSchema = CmsMenuItemSchema\nexport const StorefrontMenuSchema = CmsMenuDtoSchema\nexport const StorefrontCmsPageSchema = CmsPageDetailsDtoSchema\nexport const StorefrontSettingsSchema = StoreSettingsSnapshotDtoSchema\n\nexport type StorefrontMenuItem = z.infer<typeof StorefrontMenuItemSchema>\nexport type StorefrontMenu = z.infer<typeof StorefrontMenuSchema>\nexport type StorefrontSettings = z.infer<typeof StorefrontSettingsSchema>\n\nexport function getMenuItems(\n settings: StorefrontSettings | null | undefined,\n key: string,\n): StorefrontMenuItem[] {\n const menu = settings?.cms.menus.find((candidate) => candidate.key === key)\n return (menu?.items ?? [])\n .filter((item) => item.visible !== false)\n .slice()\n .sort((a, b) => a.order - b.order)\n}\n","import type { Api } from '../libs/api'\nimport {\n ProductDetailParamsSchema,\n ProductDetailSchema,\n type ProductDetailParams,\n ProductSummariesSchema,\n type ProductsParamsInput,\n ProductsParamsSchema,\n ProductsResponseSchema,\n type RelatedProductsParams,\n RelatedProductsParamsSchema,\n} from '../models/products'\n\nexport async function getProducts(api: Api, params: ProductsParamsInput = {}) {\n const input = ProductsParamsSchema.parse(params)\n const query = new URLSearchParams()\n query.set('page', String(input.page))\n query.set('pageSize', String(input.pageSize))\n\n if (input.sort) query.set('sort', input.sort)\n if (input.sellerId) query.set('sellerId', input.sellerId)\n if (input.search) query.set('search', input.search)\n if (input.collection) query.set('collection', input.collection)\n for (const collection of input.collections ?? []) {\n query.append('collections', collection)\n }\n if (input.collectionId) query.set('collectionId', input.collectionId)\n if (input.category) query.set('category', input.category)\n for (const category of input.categories ?? []) {\n query.append('categories', category)\n }\n if (input.brand) query.set('brand', input.brand)\n for (const brand of input.brands ?? []) {\n query.append('brands', brand)\n }\n if (input.productType) query.set('productType', input.productType)\n for (const productType of input.productTypes ?? []) {\n query.append('productTypes', productType)\n }\n if (input.tag) query.set('tag', input.tag)\n for (const tag of input.tags ?? []) {\n query.append('tags', tag)\n }\n for (const filter of input.filters ?? []) {\n query.append('filters', filter)\n }\n if (input.locationId) query.set('locationId', input.locationId)\n if (input.inStock !== undefined) query.set('inStock', String(input.inStock))\n if (input.minPrice !== undefined) query.set('minPrice', String(input.minPrice))\n if (input.maxPrice !== undefined) query.set('maxPrice', String(input.maxPrice))\n\n return api.get(`products?${query.toString()}`, ProductsResponseSchema)\n}\n\nexport async function getProductBySlug(\n api: Api,\n slug: string,\n params: ProductDetailParams = {},\n) {\n const input = ProductDetailParamsSchema.parse(params)\n const query = new URLSearchParams()\n if (input.sellerId) query.set('sellerId', input.sellerId)\n\n const path = `products/${encodeURIComponent(slug)}`\n const search = query.toString()\n if (search) {\n return api.get(`${path}?${search}`, ProductDetailSchema)\n }\n return api.get(path, ProductDetailSchema)\n}\n\nexport async function getRelatedProducts(\n api: Api,\n params: RelatedProductsParams,\n) {\n const input = RelatedProductsParamsSchema.parse(params)\n return api.get(\n `products/${encodeURIComponent(input.productId)}/related`,\n ProductSummariesSchema,\n {\n query: {\n limit: input.limit,\n sellerId: input.sellerId,\n },\n },\n )\n}\n","import { z } from 'zod'\n\nimport { ProductPublicIdSchema } from './products'\n\nexport const ProductAutocompleteParamsSchema = z.object({\n search: z.string().min(2).max(80),\n limit: z.number().int().positive().max(20).default(8),\n sellerId: z.string().uuid().optional(),\n})\n\nexport const ProductSuggestionSchema = z.object({\n id: ProductPublicIdSchema,\n name: z.string(),\n slug: z.string(),\n imageUrl: z.string(),\n})\n\nexport const ProductSuggestionsSchema = z.array(ProductSuggestionSchema)\n\nexport type ProductAutocompleteParams = z.input<typeof ProductAutocompleteParamsSchema>\nexport type ProductSuggestion = z.infer<typeof ProductSuggestionSchema>\n","import type { Api } from '../libs/api'\nimport {\n type ProductAutocompleteParams,\n ProductAutocompleteParamsSchema,\n ProductSuggestionsSchema,\n} from '../models/search'\n\nexport async function autocompleteProducts(\n api: Api,\n params: ProductAutocompleteParams,\n) {\n const input = ProductAutocompleteParamsSchema.parse(params)\n return api.get('search/autocomplete', ProductSuggestionsSchema, {\n query: {\n search: input.search,\n limit: input.limit,\n sellerId: input.sellerId,\n },\n })\n}\n","import { z } from 'zod'\n\nimport { ProductPublicIdSchema } from './products'\n\nexport const StorefrontReviewSchema = z.object({\n id: ProductPublicIdSchema,\n productId: ProductPublicIdSchema,\n isVerifiedPurchase: z.boolean(),\n rating: z.number().int().min(1).max(5),\n title: z.string().nullable(),\n content: z.string(),\n reviewerName: z.string().nullable(),\n createdOn: z.string().datetime({ offset: true }),\n})\n\nexport const StorefrontReviewsSchema = z.object({\n data: z.array(StorefrontReviewSchema),\n hasNextPage: z.boolean(),\n nextCursor: z.string().nullable(),\n totalCount: z.number().int().nonnegative().nullable(),\n})\n\nexport const ListProductReviewsParamsSchema = z.object({\n productId: ProductPublicIdSchema,\n limit: z.number().int().min(1).max(200).optional(),\n cursor: z.string().optional(),\n search: z.string().optional(),\n sortBy: z.enum(['rating', 'createdOn']).optional(),\n sortDirection: z.enum(['asc', 'desc']).optional(),\n rating: z.number().int().min(1).max(5).optional(),\n})\n\nexport const CreateProductReviewParamsSchema = z.object({\n productId: ProductPublicIdSchema,\n rating: z.number().int().min(1).max(5),\n content: z.string().min(1).max(4000),\n title: z.string().max(200).optional(),\n reviewerName: z.string().min(1).max(200),\n reviewerEmail: z.string().email().max(320),\n orderId: z.number().int().safe().positive().optional(),\n})\n\nexport type StorefrontReview = z.infer<typeof StorefrontReviewSchema>\nexport type StorefrontReviews = z.infer<typeof StorefrontReviewsSchema>\nexport type ListProductReviewsParams = z.input<typeof ListProductReviewsParamsSchema>\nexport type CreateProductReviewParams = z.input<typeof CreateProductReviewParamsSchema>\n","import type { Api } from '../libs/api'\nimport {\n type CreateProductReviewParams,\n CreateProductReviewParamsSchema,\n type ListProductReviewsParams,\n ListProductReviewsParamsSchema,\n StorefrontReviewSchema,\n StorefrontReviewsSchema,\n} from '../models/storefront-reviews'\n\nexport async function listProductReviews(\n api: Api,\n params: ListProductReviewsParams,\n) {\n const input = ListProductReviewsParamsSchema.parse(params)\n return api.get(\n `products/${encodeURIComponent(input.productId)}/reviews`,\n StorefrontReviewsSchema,\n {\n query: {\n limit: input.limit,\n cursor: input.cursor,\n search: input.search,\n sortBy: input.sortBy,\n sortDirection: input.sortDirection,\n rating: input.rating,\n },\n },\n )\n}\n\nexport async function createProductReview(\n api: Api,\n params: CreateProductReviewParams,\n) {\n const input = CreateProductReviewParamsSchema.parse(params)\n return api.post(\n `products/${encodeURIComponent(input.productId)}/reviews`,\n {\n rating: input.rating,\n content: input.content,\n title: input.title,\n reviewerName: input.reviewerName,\n reviewerEmail: input.reviewerEmail,\n orderId: input.orderId,\n },\n StorefrontReviewSchema,\n )\n}\n","import { z } from 'zod'\n\nexport function cartVariantIdFromProduct(variantId: string): number {\n if (!/^\\d+$/.test(variantId)) {\n throw new RangeError('El variant ID debe ser un integer decimal positivo.')\n }\n\n const value = BigInt(variantId)\n if (value <= 0n || value > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw new RangeError('El variant ID no cabe en un integer seguro de JavaScript.')\n }\n\n return Number(value)\n}\n\nexport const StorefrontAddressSchema = z.object({\n name: z.string().nullable(),\n address1: z.string(),\n city: z.string(),\n countryCode: z.string(),\n company: z.string().nullable(),\n address2: z.string().nullable(),\n province: z.string().nullable(),\n postalCode: z.string().nullable(),\n district: z.string().nullable(),\n phone: z.string().nullable(),\n latitude: z.number().nullable(),\n longitude: z.number().nullable(),\n})\n\nexport const StorefrontCartBundleItemSchema = z.object({\n productId: z.number().int().safe().nonnegative(),\n variantId: z.number().int().safe().nonnegative(),\n productName: z.string(),\n variantName: z.string().nullable(),\n sku: z.string().nullable(),\n brand: z.string().nullable(),\n imageUrl: z.string().nullable(),\n quantity: z.number().int().positive(),\n})\n\nexport const StorefrontCartItemSchema = z.object({\n id: z.string().uuid(),\n productId: z.number().int().safe().nonnegative(),\n title: z.string(),\n variantLabel: z.string().nullable(),\n productHandle: z.string().nullable(),\n thumbnail: z.string().nullable(),\n quantity: z.number().int().positive(),\n variantId: z.number().int().safe().nonnegative(),\n variantSku: z.string().nullable(),\n unitPrice: z.number(),\n compareAtUnitPrice: z.number().nullable(),\n bundleItems: z.array(StorefrontCartBundleItemSchema),\n})\n\nexport const StorefrontCartShippingMethodSchema = z.object({\n id: z.string().uuid(),\n shippingMethodId: z.string().uuid().nullable(),\n rateId: z.string().uuid().nullable(),\n name: z.string(),\n description: z.string().nullable(),\n total: z.number(),\n locationId: z.string().uuid().nullable(),\n estimatedDays: z.number().int().nullable(),\n pickupPointId: z.string().uuid().nullable(),\n scheduledDate: z.string().nullable(),\n scheduledTime: z.string().nullable(),\n serviceCode: z.string().nullable(),\n sellerId: z.string().uuid().nullable(),\n shippingProfileId: z.string().uuid().nullable(),\n})\n\nexport const StorefrontCartTotalsSchema = z.object({\n subtotal: z.number(),\n discountTotal: z.number(),\n shippingOriginalTotal: z.number(),\n shippingTotal: z.number(),\n taxTotal: z.number(),\n warrantyTotal: z.number(),\n total: z.number(),\n})\n\nexport const StorefrontCartStatusSchema = z.enum([\n 'inProgress',\n 'pending',\n 'completed',\n 'abandoned',\n 'cancelled',\n 'expired',\n 'failed',\n])\n\nexport const StorefrontCartSchema = z.object({\n id: z.string().uuid(),\n cartNumber: z.string(),\n email: z.string().nullable(),\n phone: z.string().nullable(),\n firstName: z.string().nullable(),\n lastName: z.string().nullable(),\n currencyCode: z.string(),\n status: StorefrontCartStatusSchema,\n completedAt: z.string().datetime({ offset: true }).nullable(),\n shippingAddress: StorefrontAddressSchema.nullable(),\n billingAddress: StorefrontAddressSchema.nullable(),\n promotionCodes: z.array(z.string()),\n items: z.array(StorefrontCartItemSchema),\n shippingMethods: z.array(StorefrontCartShippingMethodSchema),\n totals: StorefrontCartTotalsSchema,\n})\n\nexport const CreateCartParamsSchema = z.object({\n currencyCode: z.string().length(3),\n salesChannelId: z.string().optional(),\n email: z.string().email().optional(),\n})\n\nexport const GetCartParamsSchema = z.object({\n cartId: z.string().uuid(),\n})\n\nexport const CartItemModifierSchema = z.object({\n modifierGroupId: z.number().int().safe().positive(),\n optionIds: z.array(z.number().int().safe().positive()).min(1),\n})\n\nexport const AddCartItemParamsSchema = z.object({\n cartId: z.string().uuid(),\n variantId: z.number().int().safe().positive(),\n quantity: z.number().int().positive(),\n modifiers: z.array(CartItemModifierSchema).optional(),\n})\n\nexport const UpdateCartItemQuantityParamsSchema = z.object({\n cartId: z.string().uuid(),\n cartItemId: z.string().uuid(),\n quantity: z.number().int().nonnegative(),\n})\n\nexport const RemoveCartItemParamsSchema = z.object({\n cartId: z.string().uuid(),\n cartItemId: z.string().uuid(),\n})\n\nexport type StorefrontAddress = z.infer<typeof StorefrontAddressSchema>\nexport type StorefrontCartBundleItem = z.infer<typeof StorefrontCartBundleItemSchema>\nexport type StorefrontCartItem = z.infer<typeof StorefrontCartItemSchema>\nexport type StorefrontCartShippingMethod = z.infer<typeof StorefrontCartShippingMethodSchema>\nexport type StorefrontCartTotals = z.infer<typeof StorefrontCartTotalsSchema>\nexport type StorefrontCart = z.infer<typeof StorefrontCartSchema>\nexport type CreateCartParams = z.input<typeof CreateCartParamsSchema>\nexport type GetCartParams = z.input<typeof GetCartParamsSchema>\nexport type AddCartItemParams = z.input<typeof AddCartItemParamsSchema>\nexport type UpdateCartItemQuantityParams = z.input<typeof UpdateCartItemQuantityParamsSchema>\nexport type RemoveCartItemParams = z.input<typeof RemoveCartItemParamsSchema>\n","import type { Api } from '../libs/api'\nimport {\n type AddCartItemParams,\n AddCartItemParamsSchema,\n type CreateCartParams,\n CreateCartParamsSchema,\n type GetCartParams,\n GetCartParamsSchema,\n type RemoveCartItemParams,\n RemoveCartItemParamsSchema,\n StorefrontCartSchema,\n type UpdateCartItemQuantityParams,\n UpdateCartItemQuantityParamsSchema,\n} from '../models/storefront-cart'\n\nexport async function createCart(api: Api, params: CreateCartParams) {\n const input = CreateCartParamsSchema.parse(params)\n return api.post(\n 'carts',\n {\n currencyCode: input.currencyCode,\n salesChannelId: input.salesChannelId,\n email: input.email,\n },\n StorefrontCartSchema,\n )\n}\n\nexport async function getCart(api: Api, params: GetCartParams) {\n const input = GetCartParamsSchema.parse(params)\n return api.get(\n `carts/${encodeURIComponent(input.cartId)}`,\n StorefrontCartSchema,\n )\n}\n\nexport async function addCartItem(api: Api, params: AddCartItemParams) {\n const input = AddCartItemParamsSchema.parse(params)\n return api.post(\n `carts/${encodeURIComponent(input.cartId)}/items`,\n {\n variantId: input.variantId,\n quantity: input.quantity,\n modifiers: input.modifiers,\n },\n StorefrontCartSchema,\n )\n}\n\nexport async function updateCartItemQuantity(\n api: Api,\n params: UpdateCartItemQuantityParams,\n) {\n const input = UpdateCartItemQuantityParamsSchema.parse(params)\n return api.request(\n 'PATCH',\n `carts/${encodeURIComponent(input.cartId)}/items/${encodeURIComponent(input.cartItemId)}`,\n StorefrontCartSchema,\n { body: { quantity: input.quantity } },\n )\n}\n\nexport async function removeCartItem(api: Api, params: RemoveCartItemParams) {\n const input = RemoveCartItemParamsSchema.parse(params)\n return api.request(\n 'DELETE',\n `carts/${encodeURIComponent(input.cartId)}/items/${encodeURIComponent(input.cartItemId)}`,\n StorefrontCartSchema,\n )\n}\n","import { Api } from \"../libs/api\";\nimport {\n CollectionSchema,\n CollectionsSchema,\n type Collection,\n type Collections,\n} from \"../models/collections\";\n\n/** GET /v1/collections */\nexport async function getCollections(api: Api): Promise<Collections> {\n return api.get(\"collections\", CollectionsSchema);\n}\n\n/** GET /v1/collections/by-slug/:collectionSlug */\nexport async function getCollectionBySlug(\n api: Api,\n collectionSlug: string,\n): Promise<Collection> {\n return api.get(`collections/${encodeURIComponent(collectionSlug)}`, CollectionSchema);\n}\n","import type { Api } from '../libs/api'\nimport {\n CmsPageDetailsDtoSchema,\n type CmsPageDetailsDto,\n} from '../models/settings'\n\n/** GET /v1/pages/{slug} */\nexport async function getPageBySlug(\n api: Api,\n pageSlug: string,\n): Promise<CmsPageDetailsDto> {\n return api.get(`pages/${encodeURIComponent(pageSlug)}`, CmsPageDetailsDtoSchema)\n}\n","import { z } from 'zod'\nimport { StorefrontCartSchema } from './storefront-cart'\n\nexport const CartBuyerParamsSchema = z.object({\n cartId: z.string().uuid(),\n email: z.string().email(),\n firstName: z.string().min(1),\n lastName: z.string().min(1),\n phone: z.string().min(1),\n})\n\nexport type CartBuyerParams = z.input<typeof CartBuyerParamsSchema>\n\nexport const CartAddressWriteSchema = z.object({\n name: z.string().min(1),\n address1: z.string().min(1),\n city: z.string().min(1),\n countryCode: z.string().length(2),\n company: z.string().nullable().optional(),\n address2: z.string().nullable().optional(),\n province: z.string().nullable().optional(),\n postalCode: z.string().nullable().optional(),\n district: z.string().nullable().optional(),\n phone: z.string().nullable().optional(),\n latitude: z.number().nullable().optional(),\n longitude: z.number().nullable().optional(),\n geo: z\n .object({\n departmentCode: z.string().nullable().optional(),\n provinceCode: z.string().nullable().optional(),\n districtCode: z.string().nullable().optional(),\n })\n .nullable()\n .optional(),\n})\n\nexport type CartAddressWrite = z.input<typeof CartAddressWriteSchema>\n\nexport const CartAddressesParamsSchema = z.object({\n cartId: z.string().uuid(),\n shippingAddress: CartAddressWriteSchema,\n billingAddress: CartAddressWriteSchema,\n})\n\nexport type CartAddressesParams = z.input<typeof CartAddressesParamsSchema>\n\nexport const CartPaymentMethodSchema = z.object({\n code: z.string(),\n name: z.string(),\n description: z.string().nullable().optional(),\n kind: z.string(),\n providerMethodCode: z.string().nullable().optional(),\n isActive: z.boolean(),\n isDefault: z.boolean(),\n isManual: z.boolean(),\n sortOrder: z.number(),\n phoneNumber: z.string().nullable().optional(),\n accountHolder: z.string().nullable().optional(),\n qrImageUrl: z.string().nullable().optional(),\n})\n\nexport type CartPaymentMethod = z.infer<typeof CartPaymentMethodSchema>\n\nexport const StorefrontOrderBumpSchema = z.object({\n id: z.string(),\n productPublicId: z.coerce.string(),\n variantPublicId: z.coerce.string(),\n productName: z.string(),\n variantName: z.string().nullable().optional(),\n imageUrl: z.string().nullable().optional(),\n currencyCode: z.string(),\n regularPrice: z.number(),\n offerPrice: z.number(),\n badgeLabel: z.string().nullable().optional(),\n callToAction: z.string(),\n description: z.string().nullable().optional(),\n})\n\nexport type StorefrontOrderBump = z.infer<typeof StorefrontOrderBumpSchema>\n\nexport const CartCheckoutReadParamsSchema = z.object({\n cartId: z.string().uuid(),\n})\n\nexport type CartCheckoutReadParams = z.input<typeof CartCheckoutReadParamsSchema>\n\nexport const CartCheckoutReadResponseSchema = z.object({\n cart: StorefrontCartSchema,\n paymentMethods: z.object({\n methods: z.array(CartPaymentMethodSchema),\n }),\n orderBumps: z.array(StorefrontOrderBumpSchema).optional().default([]),\n})\n\nexport type CartCheckoutReadResponse = z.infer<typeof CartCheckoutReadResponseSchema>\n\nexport const CartCheckoutPaymentActionSchema = z\n .object({\n publicConfiguration: z\n .object({\n publishableKey: z.string().nullable().optional(),\n checkoutMode: z.string().nullable().optional(),\n phoneNumber: z.string().nullable().optional(),\n accountHolder: z.string().nullable().optional(),\n qrImageUrl: z.string().nullable().optional(),\n })\n .passthrough()\n .nullable()\n .optional(),\n url: z.string().nullable().optional(),\n html: z.string().nullable().optional(),\n clientSecret: z.string().nullable().optional(),\n qrCode: z.string().nullable().optional(),\n expiresAt: z.string().nullable().optional(),\n })\n .passthrough()\n\nexport const CartCheckoutPaymentSchema = z\n .object({\n transactionId: z.string(),\n paymentMethodCode: z.string(),\n providerId: z.string().nullable().optional(),\n status: z.string(),\n amount: z.number(),\n reference: z.string(),\n actionType: z.string(),\n receiptUrl: z.string().nullable().optional(),\n action: CartCheckoutPaymentActionSchema.nullable().optional(),\n })\n .passthrough()\n\nexport type CartCheckoutPayment = z.infer<typeof CartCheckoutPaymentSchema>\n\nexport const CartCheckoutResponseSchema = z\n .object({\n publicKey: z.string().optional(),\n publishableKey: z.string().optional(),\n stripePublicKey: z.string().optional(),\n clientSecret: z.string().optional(),\n intentClientSecret: z.string().optional(),\n orderId: z.coerce.string().optional(),\n orderGroup: z.string().optional(),\n orderIds: z.array(z.coerce.string()).optional(),\n payment: CartCheckoutPaymentSchema.optional(),\n cart: StorefrontCartSchema.optional(),\n })\n .passthrough()\n\nexport type CartCheckoutResponse = z.infer<typeof CartCheckoutResponseSchema>\n\nexport const CartCheckoutParamsSchema = z.object({\n cartId: z.string().uuid(),\n paymentMethodCode: z.string().min(1),\n externalRef: z.string().min(1),\n receiptUrl: z.string().min(1).optional(),\n})\n\nexport type CartCheckoutParams = z.input<typeof CartCheckoutParamsSchema>\n\nexport const ShippingRateSchema = z\n .object({\n shippingMethodId: z.string(),\n name: z.string(),\n displayName: z.string().optional(),\n type: z.string().optional(),\n price: z.number(),\n currency: z.string().optional(),\n sortOrder: z.number().optional(),\n rateId: z.string(),\n description: z.string().nullable().optional(),\n deliveryLocationId: z.string().nullable().optional(),\n deliveryLocationName: z.string().nullable().optional(),\n estimatedDeliveryDays: z.number().nullable().optional(),\n serviceCode: z.string().nullable().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .passthrough()\n\nexport type ShippingRate = z.infer<typeof ShippingRateSchema>\n\nexport const ShippingOptionGroupSchema = z\n .object({\n sellerId: z.string(),\n shippingProfileId: z.string().nullable().optional(),\n orderAmount: z.number().optional(),\n totalWeight: z.number().optional(),\n itemIds: z.array(z.string()).optional(),\n rates: z.array(ShippingRateSchema),\n })\n .passthrough()\n\nexport type ShippingOptionGroup = z.infer<typeof ShippingOptionGroupSchema>\n\nexport const ShippingOptionsResponseSchema = z.object({\n groups: z.array(ShippingOptionGroupSchema),\n})\n\nexport type ShippingOptionsResponse = z.infer<typeof ShippingOptionsResponseSchema>\n\nexport const GetShippingOptionsParamsSchema = z.object({\n cartId: z.string().uuid(),\n postalCode: z.string().min(1),\n})\n\nexport type GetShippingOptionsParams = z.input<typeof GetShippingOptionsParamsSchema>\n\nexport const PutShippingMethodParamsSchema = z.object({\n cartId: z.string().uuid(),\n rateId: z.string().min(1),\n shippingMethodId: z.string().min(1),\n serviceCode: z.string().nullable().optional(),\n sellerId: z.string().nullable().optional(),\n shippingProfileId: z.string().nullable().optional(),\n locationId: z.string().nullable().optional(),\n pickupPointId: z.string().nullable().optional(),\n scheduledDate: z.string().nullable().optional(),\n scheduledTime: z.string().nullable().optional(),\n})\n\nexport type PutShippingMethodParams = z.input<typeof PutShippingMethodParamsSchema>\n\nexport const CartPaymentReceiptResponseSchema = z.object({\n id: z.string(),\n url: z.string(),\n})\n\nexport type CartPaymentReceiptResponse = z.infer<typeof CartPaymentReceiptResponseSchema>\n\nexport type UploadPaymentReceiptParams = {\n cartId: string\n file: Blob\n fileName?: string\n}\n\nexport const CartPromotionCodeParamsSchema = z.object({\n cartId: z.string().uuid(),\n code: z.string().min(1),\n})\n\nexport type CartPromotionCodeParams = z.input<typeof CartPromotionCodeParamsSchema>\n","import type { Api } from '../libs/api'\nimport { StorefrontCartSchema } from '../models/storefront-cart'\nimport {\n CartAddressesParamsSchema,\n CartBuyerParamsSchema,\n CartCheckoutParamsSchema,\n CartCheckoutReadParamsSchema,\n CartCheckoutReadResponseSchema,\n CartCheckoutResponseSchema,\n CartPaymentReceiptResponseSchema,\n CartPromotionCodeParamsSchema,\n GetShippingOptionsParamsSchema,\n PutShippingMethodParamsSchema,\n ShippingOptionsResponseSchema,\n type CartAddressesParams,\n type CartBuyerParams,\n type CartCheckoutParams,\n type CartCheckoutReadParams,\n type CartCheckoutReadResponse,\n type CartCheckoutResponse,\n type CartPaymentReceiptResponse,\n type CartPromotionCodeParams,\n type GetShippingOptionsParams,\n type PutShippingMethodParams,\n type ShippingOptionsResponse,\n type UploadPaymentReceiptParams,\n} from '../models/storefront-checkout'\n\n/** GET /v1/carts/{id}/checkout */\nexport async function getCartCheckout(\n api: Api,\n params: CartCheckoutReadParams,\n): Promise<CartCheckoutReadResponse> {\n const input = CartCheckoutReadParamsSchema.parse(params)\n return api.get(\n `carts/${encodeURIComponent(input.cartId)}/checkout`,\n CartCheckoutReadResponseSchema,\n )\n}\n\n/** GET /v1/carts/{id}/shipping-options?postalCode= */\nexport async function getShippingOptions(\n api: Api,\n params: GetShippingOptionsParams,\n): Promise<ShippingOptionsResponse> {\n const input = GetShippingOptionsParamsSchema.parse(params)\n return api.get(\n `carts/${encodeURIComponent(input.cartId)}/shipping-options`,\n ShippingOptionsResponseSchema,\n { query: { postalCode: input.postalCode } },\n )\n}\n\n/** PUT /v1/carts/{id}/shipping-method */\nexport async function putCartShippingMethod(\n api: Api,\n params: PutShippingMethodParams,\n) {\n const input = PutShippingMethodParamsSchema.parse(params)\n const { cartId, ...body } = input\n return api.request(\n 'PUT',\n `carts/${encodeURIComponent(cartId)}/shipping-method`,\n StorefrontCartSchema,\n { body },\n )\n}\n\n/** PATCH /v1/carts/{id}/buyer */\nexport async function patchCartBuyer(api: Api, params: CartBuyerParams) {\n const input = CartBuyerParamsSchema.parse(params)\n const { cartId, ...body } = input\n return api.request(\n 'PATCH',\n `carts/${encodeURIComponent(cartId)}/buyer`,\n StorefrontCartSchema,\n { body },\n )\n}\n\n/** PATCH /v1/carts/{id}/addresses */\nexport async function patchCartAddresses(api: Api, params: CartAddressesParams) {\n const input = CartAddressesParamsSchema.parse(params)\n const { cartId, shippingAddress, billingAddress } = input\n return api.request(\n 'PATCH',\n `carts/${encodeURIComponent(cartId)}/addresses`,\n StorefrontCartSchema,\n { body: { shippingAddress, billingAddress } },\n )\n}\n\n/** POST /v1/carts/{id}/checkout */\nexport async function checkoutCart(\n api: Api,\n params: CartCheckoutParams,\n): Promise<CartCheckoutResponse> {\n const input = CartCheckoutParamsSchema.parse(params)\n const { cartId, ...body } = input\n return api.post(\n `carts/${encodeURIComponent(cartId)}/checkout`,\n body,\n CartCheckoutResponseSchema,\n )\n}\n\n/** POST /v1/carts/{id}/payment-receipt (multipart) */\nexport async function uploadPaymentReceipt(\n api: Api,\n params: UploadPaymentReceiptParams,\n): Promise<CartPaymentReceiptResponse> {\n const cartId = CartCheckoutReadParamsSchema.shape.cartId.parse(params.cartId)\n if (!(params.file instanceof Blob)) {\n throw new TypeError('uploadPaymentReceipt requiere un archivo (Blob/File)')\n }\n const form = new FormData()\n const name = params.fileName ?? (params.file instanceof File ? params.file.name : 'receipt')\n form.append('file', params.file, name)\n return api.postForm(\n `carts/${encodeURIComponent(cartId)}/payment-receipt`,\n form,\n CartPaymentReceiptResponseSchema,\n )\n}\n\n/** POST /v1/carts/{id}/promotion-codes */\nexport async function addCartPromotionCode(\n api: Api,\n params: CartPromotionCodeParams,\n) {\n const input = CartPromotionCodeParamsSchema.parse(params)\n return api.post(\n `carts/${encodeURIComponent(input.cartId)}/promotion-codes`,\n { code: input.code },\n StorefrontCartSchema,\n )\n}\n\n/** DELETE /v1/carts/{id}/promotion-codes/{code} */\nexport async function removeCartPromotionCode(\n api: Api,\n params: CartPromotionCodeParams,\n) {\n const input = CartPromotionCodeParamsSchema.parse(params)\n return api.request(\n 'DELETE',\n `carts/${encodeURIComponent(input.cartId)}/promotion-codes/${encodeURIComponent(input.code)}`,\n StorefrontCartSchema,\n )\n}\n","import { z } from 'zod'\n\n/** País ISO 3166-1 alpha-2 (`GET /v1/geo/countries`). */\nexport const CountrySchema = z\n .object({\n code: z.string().length(2),\n name: z.string().min(1),\n })\n .strict()\n\nexport type Country = z.infer<typeof CountrySchema>\n\nexport const CountriesSchema = z.array(CountrySchema)\n\nexport type Countries = z.infer<typeof CountriesSchema>\n\n/** Nivel administrativo geo (`level1` = departamento, etc.). */\nexport const GeoDivisionTypeSchema = z.enum(['level1', 'level2', 'level3'])\n\nexport type GeoDivisionType = z.infer<typeof GeoDivisionTypeSchema>\n\n/** División administrativa (`GET /v1/geo/departments`, …). */\nexport const GeoDivisionSchema = z\n .object({\n id: z.string().uuid(),\n countryCode: z.string().length(2),\n type: GeoDivisionTypeSchema,\n code: z.string().min(1),\n name: z.string().min(1),\n parentId: z.string().uuid().nullable(),\n source: z.string().min(1),\n })\n .strict()\n\nexport type GeoDivision = z.infer<typeof GeoDivisionSchema>\n\n/** Alias de departamento (level1). */\nexport const DepartmentSchema = GeoDivisionSchema\nexport type Department = GeoDivision\n\nexport const DepartmentsSchema = z.array(DepartmentSchema)\nexport type Departments = z.infer<typeof DepartmentsSchema>\n\n/** Query de `GET /v1/geo/departments`. */\nexport const GetDepartmentsParamsSchema = z.object({\n countryCode: z.string().length(2),\n source: z.string().min(1).default('inei'),\n search: z.string().default(''),\n limit: z.number().int().positive().max(500).default(200),\n})\n\nexport type GetDepartmentsParams = z.input<typeof GetDepartmentsParamsSchema>\nexport type GetDepartmentsParamsParsed = z.output<typeof GetDepartmentsParamsSchema>\n\n/** Alias de provincia (level2). */\nexport const ProvinceSchema = GeoDivisionSchema\nexport type Province = GeoDivision\n\nexport const ProvincesSchema = z.array(ProvinceSchema)\nexport type Provinces = z.infer<typeof ProvincesSchema>\n\n/** Query de `GET /v1/geo/provinces`. */\nexport const GetProvincesParamsSchema = z.object({\n countryCode: z.string().length(2),\n departmentCode: z.string().min(1),\n source: z.string().min(1).default('inei'),\n search: z.string().default(''),\n limit: z.number().int().positive().max(500).default(200),\n})\n\nexport type GetProvincesParams = z.input<typeof GetProvincesParamsSchema>\nexport type GetProvincesParamsParsed = z.output<typeof GetProvincesParamsSchema>\n\n/** Alias de distrito (level3). */\nexport const DistrictSchema = GeoDivisionSchema\nexport type District = GeoDivision\n\nexport const DistrictsSchema = z.array(DistrictSchema)\nexport type Districts = z.infer<typeof DistrictsSchema>\n\n/** Query de `GET /v1/geo/districts`. */\nexport const GetDistrictsParamsSchema = z.object({\n countryCode: z.string().length(2),\n provinceCode: z.string().min(1),\n source: z.string().min(1).default('inei'),\n search: z.string().default(''),\n limit: z.number().int().positive().max(500).default(200),\n})\n\nexport type GetDistrictsParams = z.input<typeof GetDistrictsParamsSchema>\nexport type GetDistrictsParamsParsed = z.output<typeof GetDistrictsParamsSchema>\n","import type { Api } from '../libs/api'\nimport {\n CountriesSchema,\n DepartmentsSchema,\n DistrictsSchema,\n GetDepartmentsParamsSchema,\n GetDistrictsParamsSchema,\n GetProvincesParamsSchema,\n ProvincesSchema,\n type Countries,\n type Departments,\n type Districts,\n type GetDepartmentsParams,\n type GetDistrictsParams,\n type GetProvincesParams,\n type Provinces,\n} from '../models/geo'\n\n/** GET /v1/geo/countries */\nexport async function getCountries(api: Api): Promise<Countries> {\n return api.get('geo/countries', CountriesSchema)\n}\n\n/** GET /v1/geo/departments?countryCode=&source=&search=&limit= */\nexport async function getDepartments(\n api: Api,\n params: GetDepartmentsParams,\n): Promise<Departments> {\n const input = GetDepartmentsParamsSchema.parse(params)\n return api.get('geo/departments', DepartmentsSchema, {\n query: {\n countryCode: input.countryCode,\n source: input.source,\n search: input.search,\n limit: input.limit,\n },\n })\n}\n\n/** GET /v1/geo/provinces?countryCode=&departmentCode=&source=&search=&limit= */\nexport async function getProvinces(\n api: Api,\n params: GetProvincesParams,\n): Promise<Provinces> {\n const input = GetProvincesParamsSchema.parse(params)\n return api.get('geo/provinces', ProvincesSchema, {\n query: {\n countryCode: input.countryCode,\n departmentCode: input.departmentCode,\n source: input.source,\n search: input.search,\n limit: input.limit,\n },\n })\n}\n\n/** GET /v1/geo/districts?countryCode=&provinceCode=&source=&search=&limit= */\nexport async function getDistricts(\n api: Api,\n params: GetDistrictsParams,\n): Promise<Districts> {\n const input = GetDistrictsParamsSchema.parse(params)\n return api.get('geo/districts', DistrictsSchema, {\n query: {\n countryCode: input.countryCode,\n provinceCode: input.provinceCode,\n source: input.source,\n search: input.search,\n limit: input.limit,\n },\n })\n}\n","import { z } from 'zod'\n\n/** Payload alineado con POST/PUT `/v1/customer/me/addresses` (vía proxy `customer/addresses`). */\nexport const CustomerAddressUpsertInputSchema = z.object({\n addressKey: z.string().trim().min(1),\n countryIsoCode: z.string().trim().length(2),\n addressLine: z.string().trim().min(1),\n addressNumber: z.string().trim().min(1),\n department: z.string().trim().min(1),\n province: z.string().trim().min(1),\n district: z.string().trim().min(1),\n phone: z.string().trim(),\n cellPhone: z.string().trim(),\n postalCode: z.string().trim().min(1),\n reference: z.string().trim(),\n latitude: z.number().nullable(),\n longitude: z.number().nullable(),\n isDefault: z.boolean(),\n})\n\nexport type CustomerAddressUpsertInput = z.infer<typeof CustomerAddressUpsertInputSchema>\n\n/** Dirección en listados / respuestas (id presente cuando el upstream lo expone). */\nexport const CustomerAddressSchema = CustomerAddressUpsertInputSchema.extend({\n id: z.union([z.string(), z.number()]).transform(String).optional(),\n})\n\nexport type CustomerAddress = z.infer<typeof CustomerAddressSchema>\n\nexport const CustomerAddressesSchema = z.array(CustomerAddressSchema)\n\nexport type CustomerAddresses = z.infer<typeof CustomerAddressesSchema>\n\n/** Dirección guardada con id (requerido para PUT/DELETE). */\nexport type CustomerSavedAddress = CustomerAddressUpsertInput & {\n id: string\n}\n\nexport function toCustomerSavedAddresses(\n addresses: CustomerAddresses,\n): CustomerSavedAddress[] {\n const saved: CustomerSavedAddress[] = []\n for (const address of addresses) {\n if (!address.id?.trim()) continue\n const { id, ...rest } = address\n saved.push({ id: id.trim(), ...rest })\n }\n return saved\n}\n","import { z } from 'zod'\nimport type { Api } from '../libs/api'\nimport {\n CustomerAddressSchema,\n CustomerAddressesSchema,\n CustomerAddressUpsertInputSchema,\n type CustomerAddresses,\n type CustomerAddressUpsertInput,\n} from '../models/customer-address'\n\n/**\n * Rutas privadas de customer addresses.\n * Upstream documentado como `/v1/customer/me/addresses`; el proxy storefront\n * usa `customer/addresses` (mismo contrato que el storefront de referencia).\n */\nconst ADDRESSES_PATH = 'customer/addresses'\n\n/** POST/PUT a menudo responde solo `{ id }` (no el body completo). */\nexport const CustomerAddressMutationResponseSchema = z.union([\n CustomerAddressSchema,\n z.object({\n id: z.union([z.string(), z.number()]).transform(String),\n }),\n z.null(),\n])\n\nexport type CustomerAddressMutationResponse = z.infer<\n typeof CustomerAddressMutationResponseSchema\n>\n\nexport type CustomerAddressRequestOptions = {\n headers?: Record<string, string>\n signal?: AbortSignal\n}\n\n/** GET /v1/customer/me/addresses → proxy `customer/addresses` */\nexport async function getCustomerAddresses(\n api: Api,\n options: CustomerAddressRequestOptions = {},\n): Promise<CustomerAddresses> {\n return api.get(ADDRESSES_PATH, CustomerAddressesSchema, {\n headers: options.headers,\n signal: options.signal,\n })\n}\n\n/** POST /v1/customer/me/addresses → proxy `customer/addresses` */\nexport async function createCustomerAddress(\n api: Api,\n data: CustomerAddressUpsertInput,\n options: CustomerAddressRequestOptions = {},\n): Promise<CustomerAddressMutationResponse> {\n const payload = CustomerAddressUpsertInputSchema.parse(data)\n return api.post(ADDRESSES_PATH, payload, CustomerAddressMutationResponseSchema, {\n headers: options.headers,\n signal: options.signal,\n })\n}\n\n/** PUT /v1/customer/me/addresses/{id} → proxy `customer/addresses/{id}` */\nexport async function updateCustomerAddress(\n api: Api,\n addressId: string,\n data: CustomerAddressUpsertInput,\n options: CustomerAddressRequestOptions = {},\n): Promise<CustomerAddressMutationResponse> {\n const id = addressId.trim()\n if (!id) throw new Error('addressId requerido')\n const payload = CustomerAddressUpsertInputSchema.parse(data)\n return api.request(\n 'PUT',\n `${ADDRESSES_PATH}/${encodeURIComponent(id)}`,\n CustomerAddressMutationResponseSchema,\n {\n body: payload,\n headers: options.headers,\n signal: options.signal,\n },\n )\n}\n\n/** DELETE /v1/customer/me/addresses/{id} → proxy `customer/addresses/{id}` */\nexport async function deleteCustomerAddress(\n api: Api,\n addressId: string,\n options: CustomerAddressRequestOptions = {},\n): Promise<void> {\n const id = addressId.trim()\n if (!id) throw new Error('addressId requerido')\n await api.request(\n 'DELETE',\n `${ADDRESSES_PATH}/${encodeURIComponent(id)}`,\n z.null(),\n {\n headers: options.headers,\n signal: options.signal,\n },\n )\n}\n","import { z } from 'zod'\n\nconst DEFAULT_COUNTRY_CODE = 'PE'\n\n/** Cuerpo de `POST /v1/customer/register` (proxy `customer/register`). */\nexport const CustomerRegisterRequestSchema = z.object({\n email: z.string().email(),\n firstName: z.string().trim().min(1),\n lastName: z.string().trim().min(1),\n countryIsoCode: z.string().trim().length(2),\n password: z.string().min(1),\n phone: z.string().trim().min(1).optional(),\n})\n\nexport type CustomerRegisterRequest = z.infer<typeof CustomerRegisterRequestSchema>\n\n/** Cuerpo de `PATCH /v1/customer` (proxy `customer`). */\nexport const CustomerProfilePatchSchema = z.object({\n firstName: z.string().trim().min(1),\n lastName: z.string().trim().min(1),\n phone: z.string().trim(),\n identificationNumber: z.string().nullable(),\n identificationType: z.string().nullable(),\n entityName: z.string().nullable(),\n entityIdentificationNumber: z.string().nullable(),\n gender: z.string().nullable(),\n role: z.string().nullable(),\n companyName: z.string().nullable(),\n dateOfBirth: z.string().nullable(),\n consent: z.boolean(),\n countryIsoCode: z.string().trim().length(2),\n})\n\nexport type CustomerProfilePatch = z.infer<typeof CustomerProfilePatchSchema>\n\n/** Perfil mostrado en cuenta (subset de GET customer). */\nexport const CustomerProfileSchema = z.object({\n firstName: z.string(),\n lastName: z.string(),\n phone: z.string(),\n email: z.string().email(),\n identificationNumber: z.string().nullable(),\n identificationType: z.string().nullable(),\n countryIsoCode: z.string(),\n consent: z.boolean(),\n entityName: z.string().nullable(),\n entityIdentificationNumber: z.string().nullable(),\n gender: z.string().nullable(),\n role: z.string().nullable(),\n companyName: z.string().nullable(),\n dateOfBirth: z.string().nullable(),\n})\n\nexport type CustomerProfile = z.infer<typeof CustomerProfileSchema>\n\nconst nullableString = z.string().nullable().optional().transform((v) => v ?? null)\n\n/** Respuesta de `GET /v1/customer/me` (proxy `customer`). */\nexport const CustomerMeSchema = z\n .object({\n id: z.union([z.string(), z.number()]),\n storeId: z.string().optional(),\n email: z.string().email(),\n firstName: z.string(),\n lastName: z.string(),\n phone: z\n .union([z.string(), z.null()])\n .optional()\n .transform((v) => v ?? ''),\n identificationNumber: nullableString,\n identificationType: nullableString,\n entityName: nullableString,\n entityIdentificationNumber: nullableString,\n gender: nullableString,\n role: nullableString,\n companyName: nullableString,\n dateOfBirth: nullableString,\n countryIsoCode: z\n .string()\n .optional()\n .transform((v) => (v?.trim().length === 2 ? v.trim() : DEFAULT_COUNTRY_CODE)),\n consent: z.boolean().optional().transform((v) => v ?? false),\n })\n .passthrough()\n\nexport type CustomerMe = z.infer<typeof CustomerMeSchema>\n\nexport function customerMeToProfile(me: CustomerMe): CustomerProfile {\n return CustomerProfileSchema.parse({\n firstName: me.firstName,\n lastName: me.lastName,\n phone: me.phone,\n email: me.email,\n identificationNumber: me.identificationNumber,\n identificationType: me.identificationType,\n countryIsoCode: me.countryIsoCode,\n consent: me.consent,\n entityName: me.entityName,\n entityIdentificationNumber: me.entityIdentificationNumber,\n gender: me.gender,\n role: me.role,\n companyName: me.companyName,\n dateOfBirth: me.dateOfBirth,\n })\n}\n\nexport function customerMeToProfilePatch(me: CustomerMe): CustomerProfilePatch {\n return CustomerProfilePatchSchema.parse({\n firstName: me.firstName,\n lastName: me.lastName,\n phone: me.phone,\n identificationNumber: me.identificationNumber,\n identificationType: me.identificationType,\n entityName: me.entityName,\n entityIdentificationNumber: me.entityIdentificationNumber,\n gender: me.gender,\n role: me.role,\n companyName: me.companyName,\n dateOfBirth: me.dateOfBirth,\n consent: me.consent,\n countryIsoCode: me.countryIsoCode || DEFAULT_COUNTRY_CODE,\n })\n}\n\nexport function customerProfileToPatch(profile: CustomerProfile): CustomerProfilePatch {\n return CustomerProfilePatchSchema.parse({\n firstName: profile.firstName,\n lastName: profile.lastName,\n phone: profile.phone,\n identificationNumber: profile.identificationNumber,\n identificationType: profile.identificationType,\n entityName: profile.entityName,\n entityIdentificationNumber: profile.entityIdentificationNumber,\n gender: profile.gender,\n role: profile.role,\n companyName: profile.companyName,\n dateOfBirth: profile.dateOfBirth,\n consent: profile.consent,\n countryIsoCode: profile.countryIsoCode || DEFAULT_COUNTRY_CODE,\n })\n}\n","import { z } from 'zod'\nimport type { Api } from '../libs/api'\nimport {\n CustomerMeSchema,\n CustomerProfilePatchSchema,\n CustomerRegisterRequestSchema,\n type CustomerMe,\n type CustomerProfilePatch,\n type CustomerRegisterRequest,\n} from '../models/customer-profile'\n\n/**\n * Perfil customer autenticado.\n * GET `/v1/customer/me` y PATCH `/v1/customer` vía proxy `customer`.\n * Registro público: POST `/v1/customer/register` → proxy `customer/register`.\n */\nconst CUSTOMER_PATH = 'customer'\nconst CUSTOMER_REGISTER_PATH = 'customer/register'\n\nexport type CustomerRequestOptions = {\n headers?: Record<string, string>\n signal?: AbortSignal\n}\n\n/** POST /v1/customer/register → proxy `customer/register` (público). */\nexport async function registerCustomer(\n api: Api,\n data: CustomerRegisterRequest,\n options: CustomerRequestOptions = {},\n): Promise<unknown> {\n const payload = CustomerRegisterRequestSchema.parse(data)\n return api.post(CUSTOMER_REGISTER_PATH, payload, z.unknown(), {\n headers: options.headers,\n signal: options.signal,\n })\n}\n\n/** GET /v1/customer/me → proxy `customer` */\nexport async function getCustomerMe(\n api: Api,\n options: CustomerRequestOptions = {},\n): Promise<CustomerMe> {\n return api.get(CUSTOMER_PATH, CustomerMeSchema, {\n headers: options.headers,\n signal: options.signal,\n })\n}\n\n/** PATCH /v1/customer → proxy `customer` (204). */\nexport async function patchCustomer(\n api: Api,\n data: CustomerProfilePatch,\n options: CustomerRequestOptions = {},\n): Promise<void> {\n const payload = CustomerProfilePatchSchema.parse(data)\n await api.request('PATCH', CUSTOMER_PATH, z.null(), {\n body: payload,\n headers: options.headers,\n signal: options.signal,\n })\n}\n","import { z } from 'zod'\n\nexport const CustomerOrderShippingAddressSchema = z\n .object({\n name: z.string().nullable().optional(),\n company: z.string().nullable().optional(),\n address1: z.string(),\n address2: z.string().nullable().optional(),\n city: z.string().nullable().optional(),\n countryCode: z.string().min(2).max(2),\n province: z.string().nullable().optional(),\n postalCode: z.string().nullable().optional(),\n district: z.string().nullable().optional(),\n phone: z.string().nullable().optional(),\n latitude: z.number().nullable().optional(),\n longitude: z.number().nullable().optional(),\n metadata: z.record(z.unknown()).nullable().optional(),\n })\n .passthrough()\n\nexport type CustomerOrderShippingAddress = z.infer<\n typeof CustomerOrderShippingAddressSchema\n>\n\nexport const CustomerOrderLineItemSchema = z.object({\n id: z.string(),\n orderId: z.coerce.string(),\n productId: z.coerce.string().nullable(),\n variantId: z.coerce.string().nullable(),\n title: z.string(),\n subtitle: z.string().nullable().optional(),\n thumbnail: z.string().nullable().optional(),\n variantTitle: z.string().nullable().optional(),\n productHandle: z.string().nullable().optional(),\n quantity: z.number(),\n unitPrice: z.number(),\n total: z.number(),\n status: z.string(),\n})\n\nexport type CustomerOrderLineItem = z.infer<typeof CustomerOrderLineItemSchema>\n\n/** GET /v1/customer/orders (listado agrupado vía proxy `customer/orders`). */\nexport const CustomerOrderListItemSchema = z.object({\n orderId: z.coerce.string(),\n orderNumber: z.string(),\n orderGroup: z.string(),\n orderIds: z.array(z.coerce.string()),\n status: z.string(),\n total: z.number(),\n totalPaid: z.number(),\n currencyCode: z.string(),\n orderDate: z.string(),\n createdOn: z.string(),\n updatedOn: z.string().nullable().optional(),\n paymentAt: z.string().nullable().optional(),\n shippingAddress: CustomerOrderShippingAddressSchema.nullable().optional(),\n shippingAddressSummary: z.string().nullable().optional(),\n items: z.array(CustomerOrderLineItemSchema),\n})\n\nexport type CustomerOrderListItem = z.infer<typeof CustomerOrderListItemSchema>\n/** @deprecated Alias del tipo canónico. */\nexport type CustomerOrderListItemDto = CustomerOrderListItem\n\nexport const CustomerOrderListSchema = z.array(CustomerOrderListItemSchema)\n\nexport type CustomerOrderList = z.infer<typeof CustomerOrderListSchema>\n\nexport const CustomerOrderPaymentSchema = z.object({\n id: z.string(),\n paymentMethod: z.string(),\n paymentCode: z.string(),\n amount: z.number(),\n paymentStatus: z.string(),\n receiptUrl: z.string().nullable().optional(),\n createdOn: z.string(),\n})\n\nexport type CustomerOrderPayment = z.infer<typeof CustomerOrderPaymentSchema>\n\nexport const CustomerOrderStatusTimelineSchema = z.object({\n key: z.string(),\n label: z.string(),\n occurredAt: z.string(),\n description: z.string().nullable().optional(),\n status: z.string(),\n source: z.string(),\n})\n\nexport type CustomerOrderStatusTimelineEntry = z.infer<\n typeof CustomerOrderStatusTimelineSchema\n>\n\n/** GET /v1/customer/orders/{orderId} (detalle vía proxy). */\nexport const CustomerOrderDetailSchema = z.object({\n id: z.coerce.string(),\n orderNumber: z.string(),\n orderGroup: z.string(),\n status: z.string(),\n total: z.number(),\n totalPaid: z.number(),\n currencyCode: z.string(),\n orderDate: z.string(),\n createdOn: z.string(),\n updatedOn: z.string().nullable().optional(),\n paymentAt: z.string().nullable().optional(),\n subTotal: z.number(),\n discount: z.number(),\n shipping: z.number(),\n tax: z.number(),\n email: z.string(),\n phone: z.string(),\n firstName: z.string(),\n lastName: z.string(),\n shippingAddress: CustomerOrderShippingAddressSchema.nullable().optional(),\n shippingAddressSummary: z.string().nullable().optional(),\n billingAddress: CustomerOrderShippingAddressSchema.nullable().optional(),\n items: z.array(CustomerOrderLineItemSchema),\n payments: z.array(CustomerOrderPaymentSchema),\n statusTimeline: z.array(CustomerOrderStatusTimelineSchema),\n})\n\nexport type CustomerOrderDetail = z.infer<typeof CustomerOrderDetailSchema>\n/** @deprecated Alias del tipo canónico. */\nexport type CustomerOrderDetailDto = CustomerOrderDetail\n\n/** Etiquetas en español para estados de pedido (upstream suele enviar PascalCase). */\nconst ORDER_STATUS_LABELS: Record<string, string> = {\n New: 'Pedido realizado',\n Confirmed: 'Confirmado',\n Processing: 'En preparación',\n InTransit: 'En camino',\n Delivered: 'Entregado',\n Cancelled: 'Cancelado',\n Canceled: 'Cancelado',\n Refunded: 'Reembolsado',\n Pending: 'Pendiente',\n PendingToConfirm: 'Pendiente de confirmación',\n Paid: 'Pagado',\n Captured: 'Pago confirmado',\n}\n\nexport function formatCustomerOrderStatus(status: string): string {\n const trimmed = status.trim()\n if (!trimmed) return 'Desconocido'\n return (\n ORDER_STATUS_LABELS[trimmed] ??\n trimmed.replace(/([A-Z])/g, ' $1').trim()\n )\n}\n\nexport function customerOrderStatusTone(\n status: string,\n): 'default' | 'success' | 'warning' | 'danger' | 'info' {\n const s = status.toLowerCase()\n if (s.includes('cancel') || s.includes('refund')) return 'danger'\n if (s.includes('deliver')) return 'success'\n if (s.includes('transit') || s.includes('ship')) return 'info'\n if (s.includes('confirm') || s.includes('paid') || s.includes('capture'))\n return 'success'\n if (s.includes('pending') || s.includes('new') || s.includes('process'))\n return 'warning'\n return 'default'\n}\n\nexport function formatOrderDate(iso: string, locale = 'es-PE'): string {\n const d = new Date(iso)\n if (Number.isNaN(d.getTime())) return iso\n return new Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n }).format(d)\n}\n\nexport function formatOrderDateTime(iso: string, locale = 'es-PE'): string {\n const d = new Date(iso)\n if (Number.isNaN(d.getTime())) return iso\n return new Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n }).format(d)\n}\n","import type { Api } from '../libs/api'\nimport {\n CustomerOrderDetailSchema,\n CustomerOrderListSchema,\n type CustomerOrderDetail,\n type CustomerOrderList,\n} from '../models/customer-order'\n\nconst ORDERS_PATH = 'customer/orders'\n\nexport type CustomerOrderRequestOptions = {\n headers?: Record<string, string>\n signal?: AbortSignal\n}\n\n/** GET /v1/customer/orders → proxy `customer/orders` */\nexport async function getCustomerOrders(\n api: Api,\n options: CustomerOrderRequestOptions = {},\n): Promise<CustomerOrderList> {\n return api.get(ORDERS_PATH, CustomerOrderListSchema, {\n headers: options.headers,\n signal: options.signal,\n })\n}\n\n/** GET /v1/customer/orders/{orderId} → proxy `customer/orders/{orderId}` */\nexport async function getCustomerOrder(\n api: Api,\n orderId: string,\n options: CustomerOrderRequestOptions = {},\n): Promise<CustomerOrderDetail> {\n const id = orderId.trim()\n if (!id) throw new Error('orderId requerido')\n return api.get(\n `${ORDERS_PATH}/${encodeURIComponent(id)}`,\n CustomerOrderDetailSchema,\n {\n headers: options.headers,\n signal: options.signal,\n },\n )\n}\n","import { createApi, type Api, type CreateApiOptions } from './libs/api'\nimport { type Collection, type Collections } from './models/collections'\nimport {\n type ProductDetail,\n type ProductDetailParams,\n type ProductSummary,\n type ProductsParamsInput,\n type ProductsResponse,\n type RelatedProductsParams,\n} from './models/products'\nimport type {\n ProductAutocompleteParams,\n ProductSuggestion,\n} from './models/search'\nimport type {\n CreateProductReviewParams,\n ListProductReviewsParams,\n StorefrontReview,\n StorefrontReviews,\n} from './models/storefront-reviews'\nimport type {\n AddCartItemParams,\n CreateCartParams,\n GetCartParams,\n RemoveCartItemParams,\n StorefrontCart,\n UpdateCartItemQuantityParams,\n} from './models/storefront-cart'\nimport type {\n CartAddressesParams,\n CartBuyerParams,\n CartCheckoutParams,\n CartCheckoutReadParams,\n CartCheckoutReadResponse,\n CartCheckoutResponse,\n CartPaymentReceiptResponse,\n CartPromotionCodeParams,\n GetShippingOptionsParams,\n PutShippingMethodParams,\n ShippingOptionsResponse,\n UploadPaymentReceiptParams,\n} from './models/storefront-checkout'\nimport type {\n Countries,\n Departments,\n Districts,\n GetDepartmentsParams,\n GetDistrictsParams,\n GetProvincesParams,\n Provinces,\n} from './models/geo'\nimport type {\n CustomerAddress,\n CustomerAddresses,\n CustomerAddressUpsertInput,\n} from './models/customer-address'\nimport type { CustomerAddressRequestOptions } from './services/customer-address.service'\nimport type {\n CustomerAddressMutationResponse,\n} from './services/customer-address.service'\nimport type { CustomerMe, CustomerProfilePatch } from './models/customer-profile'\nimport type { CustomerRequestOptions } from './services/customer.service'\nimport type {\n CustomerOrderDetail,\n CustomerOrderList,\n} from './models/customer-order'\nimport type { CustomerOrderRequestOptions } from './services/customer-order.service'\nimport {\n StorefrontSettingsSchema,\n type CmsPageDetailsDto,\n type StorefrontSettings,\n} from './models/settings'\nimport {\n getProductBySlug as getProductBySlugService,\n getProducts as getProductsService,\n getRelatedProducts as getRelatedProductsService,\n} from './services/product.service'\nimport { autocompleteProducts as autocompleteProductsService } from './services/search.service'\nimport {\n createProductReview as createProductReviewService,\n listProductReviews as listProductReviewsService,\n} from './services/review.service'\nimport {\n addCartItem as addCartItemService,\n createCart as createCartService,\n getCart as getCartService,\n removeCartItem as removeCartItemService,\n updateCartItemQuantity as updateCartItemQuantityService,\n} from './services/cart.service'\nimport {\n getCollections as getCollectionsService,\n getCollectionBySlug as getCollectionBySlugService,\n} from './services/collection.service'\nimport { getPageBySlug as getPageBySlugService } from './services/page.service'\nimport {\n addCartPromotionCode as addCartPromotionCodeService,\n checkoutCart as checkoutCartService,\n getCartCheckout as getCartCheckoutService,\n getShippingOptions as getShippingOptionsService,\n patchCartAddresses as patchCartAddressesService,\n patchCartBuyer as patchCartBuyerService,\n putCartShippingMethod as putCartShippingMethodService,\n removeCartPromotionCode as removeCartPromotionCodeService,\n uploadPaymentReceipt as uploadPaymentReceiptService,\n} from './services/checkout.service'\nimport {\n getCountries as getCountriesService,\n getDepartments as getDepartmentsService,\n getDistricts as getDistrictsService,\n getProvinces as getProvincesService,\n} from './services/geo.service'\nimport {\n createCustomerAddress as createCustomerAddressService,\n deleteCustomerAddress as deleteCustomerAddressService,\n getCustomerAddresses as getCustomerAddressesService,\n updateCustomerAddress as updateCustomerAddressService,\n} from './services/customer-address.service'\nimport {\n getCustomerMe as getCustomerMeService,\n patchCustomer as patchCustomerService,\n} from './services/customer.service'\nimport {\n getCustomerOrder as getCustomerOrderService,\n getCustomerOrders as getCustomerOrdersService,\n} from './services/customer-order.service'\n\nconst DEFAULT_SETTINGS_CACHE_TTL_MS = 30_000\n\nexport interface CreateClientOptions extends CreateApiOptions {\n /**\n * Dominio/slug de la tienda (header x-Store-Domain).\n * Debe venir de ecomiq.config.js (`config.domain`).\n * Acepta `marketplace`, `marketplace.ecomiq.app` o `marketplace.pe`.\n */\n domain: string\n settingsCacheTtlMs?: number\n}\n\nexport interface StorefrontClient extends Api {\n getSettings(): Promise<StorefrontSettings>\n /** store.id desde settings (asegura cache). */\n getStoreId(): Promise<string>\n /** GET /v1/collections */\n getCollections(): Promise<Collections>\n /** GET /v1/collections/by-slug/:slug */\n getCollectionBySlug(slug: string): Promise<Collection>\n /** GET /v1/pages/{slug} */\n getPageBySlug(slug: string): Promise<CmsPageDetailsDto>\n /** Invalida el cache de settings. */\n clearCache(): void\n getProducts(params?: ProductsParamsInput): Promise<ProductsResponse>\n /** GET product by slug con x-Store-Id. */\n getProductBySlug(slug: string, params?: ProductDetailParams): Promise<ProductDetail>\n getRelatedProducts(params: RelatedProductsParams): Promise<ProductSummary[]>\n autocompleteProducts(params: ProductAutocompleteParams): Promise<ProductSuggestion[]>\n listProductReviews(params: ListProductReviewsParams): Promise<StorefrontReviews>\n createProductReview(params: CreateProductReviewParams): Promise<StorefrontReview>\n createCart(params: CreateCartParams): Promise<StorefrontCart>\n getCart(params: GetCartParams): Promise<StorefrontCart>\n addCartItem(params: AddCartItemParams): Promise<StorefrontCart>\n updateCartItemQuantity(params: UpdateCartItemQuantityParams): Promise<StorefrontCart>\n removeCartItem(params: RemoveCartItemParams): Promise<StorefrontCart>\n /** GET /v1/carts/{id}/checkout */\n getCartCheckout(params: CartCheckoutReadParams): Promise<CartCheckoutReadResponse>\n /** GET /v1/carts/{id}/shipping-options */\n getShippingOptions(params: GetShippingOptionsParams): Promise<ShippingOptionsResponse>\n /** PUT /v1/carts/{id}/shipping-method */\n putCartShippingMethod(params: PutShippingMethodParams): Promise<StorefrontCart>\n /** PATCH /v1/carts/{id}/buyer */\n patchCartBuyer(params: CartBuyerParams): Promise<StorefrontCart>\n /** PATCH /v1/carts/{id}/addresses */\n patchCartAddresses(params: CartAddressesParams): Promise<StorefrontCart>\n /** POST /v1/carts/{id}/checkout */\n checkoutCart(params: CartCheckoutParams): Promise<CartCheckoutResponse>\n /** POST /v1/carts/{id}/payment-receipt */\n uploadPaymentReceipt(params: UploadPaymentReceiptParams): Promise<CartPaymentReceiptResponse>\n /** POST /v1/carts/{id}/promotion-codes */\n addCartPromotionCode(params: CartPromotionCodeParams): Promise<StorefrontCart>\n /** DELETE /v1/carts/{id}/promotion-codes/{code} */\n removeCartPromotionCode(params: CartPromotionCodeParams): Promise<StorefrontCart>\n /** GET /v1/geo/countries */\n getCountries(): Promise<Countries>\n /** GET /v1/geo/departments */\n getDepartments(params: GetDepartmentsParams): Promise<Departments>\n /** GET /v1/geo/provinces */\n getProvinces(params: GetProvincesParams): Promise<Provinces>\n /** GET /v1/geo/districts */\n getDistricts(params: GetDistrictsParams): Promise<Districts>\n /** GET customer addresses (requiere Authorization Bearer). */\n getCustomerAddresses(options?: CustomerAddressRequestOptions): Promise<CustomerAddresses>\n /** POST customer address. */\n createCustomerAddress(\n data: CustomerAddressUpsertInput,\n options?: CustomerAddressRequestOptions,\n ): Promise<CustomerAddressMutationResponse>\n /** PUT customer address. */\n updateCustomerAddress(\n addressId: string,\n data: CustomerAddressUpsertInput,\n options?: CustomerAddressRequestOptions,\n ): Promise<CustomerAddressMutationResponse>\n /** DELETE customer address. */\n deleteCustomerAddress(\n addressId: string,\n options?: CustomerAddressRequestOptions,\n ): Promise<void>\n /** GET /v1/customer/me */\n getCustomerMe(options?: CustomerRequestOptions): Promise<CustomerMe>\n /** PATCH /v1/customer */\n patchCustomer(\n data: CustomerProfilePatch,\n options?: CustomerRequestOptions,\n ): Promise<void>\n /** GET /v1/customer/orders */\n getCustomerOrders(options?: CustomerOrderRequestOptions): Promise<CustomerOrderList>\n /** GET /v1/customer/orders/{orderId} */\n getCustomerOrder(\n orderId: string,\n options?: CustomerOrderRequestOptions,\n ): Promise<CustomerOrderDetail>\n}\n\ninterface SettingsCacheEntry {\n data: StorefrontSettings\n expiresAt: number\n}\n\n/**\n * Crea el cliente storefront de bajo nivel (requiere domain).\n * En apps Ecomiq usa `createClient()` de `@ecomiq/storefront`, que toma el domain del config.\n *\n * ```ts\n * const api = createClient({ domain: 'marketplace' })\n * const collections = await api.getCollections()\n * ```\n */\nexport function createClient(options: CreateClientOptions): StorefrontClient {\n const {\n domain,\n settingsCacheTtlMs = DEFAULT_SETTINGS_CACHE_TTL_MS,\n ...apiOptions\n } = options\n if (!domain?.trim()) {\n throw new Error('createClient requiere `domain` (config.domain de ecomiq.config.js)')\n }\n if (!Number.isFinite(settingsCacheTtlMs) || settingsCacheTtlMs < 0) {\n throw new Error('settingsCacheTtlMs debe ser un número mayor o igual a 0')\n }\n\n const api = createApi(apiOptions)\n\n const apiClient = async () => {\n const storeId = await getStoreId()\n return createApi({\n ...apiOptions,\n headers: {\n ...apiOptions.headers,\n 'x-Store-Id': storeId,\n },\n })\n }\n\n let cache: SettingsCacheEntry | null = null\n let inflight: Promise<StorefrontSettings> | null = null\n\n function clearCache() {\n cache = null\n inflight = null\n }\n\n async function getSettings(): Promise<StorefrontSettings> {\n const now = Date.now()\n if (cache && cache.expiresAt > now) return cache.data\n if (inflight) return inflight\n const previous = cache?.data\n\n inflight = api\n .get('settings', StorefrontSettingsSchema, {\n headers: { 'x-Store-Domain': domain },\n })\n .then((data) => {\n cache = { data, expiresAt: Date.now() + settingsCacheTtlMs }\n return data\n })\n .catch((error: unknown) => {\n if (previous) return previous\n throw error\n })\n .finally(() => {\n inflight = null\n })\n\n return inflight\n }\n\n async function getStoreId(): Promise<string> {\n const settings = await getSettings()\n return settings.store.id\n }\n\n async function getCollections(): Promise<Collections> {\n const client = await apiClient()\n return getCollectionsService(client)\n }\n\n async function getCollectionBySlug(collectionSlug: string): Promise<Collection> {\n const client = await apiClient()\n return getCollectionBySlugService(client, collectionSlug)\n }\n\n async function getPageBySlug(pageSlug: string): Promise<CmsPageDetailsDto> {\n const client = await apiClient()\n return getPageBySlugService(client, pageSlug)\n }\n\n async function getProducts(params: ProductsParamsInput = {}): Promise<ProductsResponse> {\n const client = await apiClient()\n return getProductsService(client, params)\n }\n\n async function getProductBySlug(\n productSlug: string,\n params: ProductDetailParams = {},\n ): Promise<ProductDetail> {\n const client = await apiClient()\n return getProductBySlugService(client, productSlug, params)\n }\n\n async function getRelatedProducts(\n params: RelatedProductsParams,\n ): Promise<ProductSummary[]> {\n const client = await apiClient()\n return getRelatedProductsService(client, params)\n }\n\n async function autocompleteProducts(\n params: ProductAutocompleteParams,\n ): Promise<ProductSuggestion[]> {\n const client = await apiClient()\n return autocompleteProductsService(client, params)\n }\n\n async function listProductReviews(\n params: ListProductReviewsParams,\n ): Promise<StorefrontReviews> {\n const client = await apiClient()\n return listProductReviewsService(client, params)\n }\n\n async function createProductReview(\n params: CreateProductReviewParams,\n ): Promise<StorefrontReview> {\n const client = await apiClient()\n return createProductReviewService(client, params)\n }\n\n async function createCart(params: CreateCartParams): Promise<StorefrontCart> {\n const client = await apiClient()\n return createCartService(client, params)\n }\n\n async function getCart(params: GetCartParams): Promise<StorefrontCart> {\n const client = await apiClient()\n return getCartService(client, params)\n }\n\n async function addCartItem(params: AddCartItemParams): Promise<StorefrontCart> {\n const client = await apiClient()\n return addCartItemService(client, params)\n }\n\n async function updateCartItemQuantity(\n params: UpdateCartItemQuantityParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return updateCartItemQuantityService(client, params)\n }\n\n async function removeCartItem(\n params: RemoveCartItemParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return removeCartItemService(client, params)\n }\n\n async function getCartCheckout(\n params: CartCheckoutReadParams,\n ): Promise<CartCheckoutReadResponse> {\n const client = await apiClient()\n return getCartCheckoutService(client, params)\n }\n\n async function getShippingOptions(\n params: GetShippingOptionsParams,\n ): Promise<ShippingOptionsResponse> {\n const client = await apiClient()\n return getShippingOptionsService(client, params)\n }\n\n async function putCartShippingMethod(\n params: PutShippingMethodParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return putCartShippingMethodService(client, params)\n }\n\n async function patchCartBuyer(params: CartBuyerParams): Promise<StorefrontCart> {\n const client = await apiClient()\n return patchCartBuyerService(client, params)\n }\n\n async function patchCartAddresses(\n params: CartAddressesParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return patchCartAddressesService(client, params)\n }\n\n async function checkoutCart(\n params: CartCheckoutParams,\n ): Promise<CartCheckoutResponse> {\n const client = await apiClient()\n return checkoutCartService(client, params)\n }\n\n async function uploadPaymentReceipt(\n params: UploadPaymentReceiptParams,\n ): Promise<CartPaymentReceiptResponse> {\n const client = await apiClient()\n return uploadPaymentReceiptService(client, params)\n }\n\n async function addCartPromotionCode(\n params: CartPromotionCodeParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return addCartPromotionCodeService(client, params)\n }\n\n async function removeCartPromotionCode(\n params: CartPromotionCodeParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return removeCartPromotionCodeService(client, params)\n }\n\n async function getCountries(): Promise<Countries> {\n return getCountriesService(api)\n }\n\n async function getDepartments(\n params: GetDepartmentsParams,\n ): Promise<Departments> {\n return getDepartmentsService(api, params)\n }\n\n async function getProvinces(\n params: GetProvincesParams,\n ): Promise<Provinces> {\n return getProvincesService(api, params)\n }\n\n async function getDistricts(\n params: GetDistrictsParams,\n ): Promise<Districts> {\n return getDistrictsService(api, params)\n }\n\n async function getCustomerAddresses(\n options: CustomerAddressRequestOptions = {},\n ): Promise<CustomerAddresses> {\n const client = await apiClient()\n return getCustomerAddressesService(client, options)\n }\n\n async function createCustomerAddress(\n data: CustomerAddressUpsertInput,\n options: CustomerAddressRequestOptions = {},\n ): Promise<CustomerAddressMutationResponse> {\n const client = await apiClient()\n return createCustomerAddressService(client, data, options)\n }\n\n async function updateCustomerAddress(\n addressId: string,\n data: CustomerAddressUpsertInput,\n options: CustomerAddressRequestOptions = {},\n ): Promise<CustomerAddressMutationResponse> {\n const client = await apiClient()\n return updateCustomerAddressService(client, addressId, data, options)\n }\n\n async function deleteCustomerAddress(\n addressId: string,\n options: CustomerAddressRequestOptions = {},\n ): Promise<void> {\n const client = await apiClient()\n return deleteCustomerAddressService(client, addressId, options)\n }\n\n async function getCustomerMe(\n options: CustomerRequestOptions = {},\n ): Promise<CustomerMe> {\n const client = await apiClient()\n return getCustomerMeService(client, options)\n }\n\n async function patchCustomer(\n data: CustomerProfilePatch,\n options: CustomerRequestOptions = {},\n ): Promise<void> {\n const client = await apiClient()\n return patchCustomerService(client, data, options)\n }\n\n async function getCustomerOrders(\n options: CustomerOrderRequestOptions = {},\n ): Promise<CustomerOrderList> {\n const client = await apiClient()\n return getCustomerOrdersService(client, options)\n }\n\n async function getCustomerOrder(\n orderId: string,\n options: CustomerOrderRequestOptions = {},\n ): Promise<CustomerOrderDetail> {\n const client = await apiClient()\n return getCustomerOrderService(client, orderId, options)\n }\n\n return {\n ...api,\n getSettings,\n getStoreId,\n getCollections,\n getCollectionBySlug,\n getPageBySlug,\n clearCache,\n getProducts,\n getProductBySlug,\n getRelatedProducts,\n autocompleteProducts,\n listProductReviews,\n createProductReview,\n createCart,\n getCart,\n addCartItem,\n updateCartItemQuantity,\n removeCartItem,\n getCartCheckout,\n getShippingOptions,\n putCartShippingMethod,\n patchCartBuyer,\n patchCartAddresses,\n checkoutCart,\n uploadPaymentReceipt,\n addCartPromotionCode,\n removeCartPromotionCode,\n getCountries,\n getDepartments,\n getProvinces,\n getDistricts,\n getCustomerAddresses,\n createCustomerAddress,\n updateCustomerAddress,\n deleteCustomerAddress,\n getCustomerMe,\n patchCustomer,\n getCustomerOrders,\n getCustomerOrder,\n }\n}\n\n/** @deprecated Usa createClient. Alias de compatibilidad con el plan. */\nexport const createStorefrontClient = createClient\n","import sanitize from 'sanitize-html'\n\nconst STOREFRONT_HTML_ALLOWLIST: sanitize.IOptions = {\n allowedTags: [\n 'a',\n 'b',\n 'blockquote',\n 'br',\n 'code',\n 'col',\n 'colgroup',\n 'div',\n 'em',\n 'figcaption',\n 'figure',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'hr',\n 'i',\n 'img',\n 'li',\n 'ol',\n 'p',\n 'pre',\n 's',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'tr',\n 'u',\n 'ul',\n ],\n allowedAttributes: {\n a: ['href', 'rel', 'target', 'title'],\n col: ['span'],\n img: ['alt', 'height', 'loading', 'src', 'title', 'width'],\n td: ['colspan', 'rowspan'],\n th: ['colspan', 'rowspan', 'scope'],\n },\n allowedSchemes: ['http', 'https', 'mailto', 'tel'],\n allowedSchemesAppliedToAttributes: ['href', 'src'],\n allowProtocolRelative: false,\n disallowedTagsMode: 'discard',\n enforceHtmlBoundary: true,\n parseStyleAttributes: false,\n transformTags: {\n a: (tagName, attributes) => {\n if (attributes.target !== '_blank') return { tagName, attribs: attributes }\n return {\n tagName,\n attribs: {\n ...attributes,\n rel: 'noopener noreferrer',\n },\n }\n },\n },\n}\n\nexport function sanitizeHtml(html: string) {\n return sanitize(html, STOREFRONT_HTML_ALLOWLIST)\n}\n\n/** Convierte HTML en texto plano (metadata, JSON-LD). */\nexport function stripHtml(html: string) {\n return html\n .replace(/<br\\s*\\/?>/gi, ' ')\n .replace(/<[^>]+>/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim()\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/libs/api.ts","../src/models/collections.ts","../src/models/ids.ts","../src/models/products.ts","../src/models/settings.ts","../src/services/product.service.ts","../src/models/search.ts","../src/services/search.service.ts","../src/models/storefront-reviews.ts","../src/services/review.service.ts","../src/models/storefront-cart.ts","../src/services/cart.service.ts","../src/services/collection.service.ts","../src/services/page.service.ts","../src/models/storefront-checkout.ts","../src/services/checkout.service.ts","../src/models/geo.ts","../src/services/geo.service.ts","../src/models/customer-address.ts","../src/services/customer-address.service.ts","../src/models/customer-profile.ts","../src/services/customer.service.ts","../src/models/customer-order.ts","../src/services/customer-order.service.ts","../src/client.ts","../src/utils.ts"],"names":["bodyText","z","getCollections","getCollectionBySlug","getPageBySlug","getProducts","getProductBySlug","getRelatedProducts","autocompleteProducts","listProductReviews","createProductReview","createCart","getCart","addCartItem","updateCartItemQuantity","removeCartItem","getCartCheckout","getShippingOptions","putCartShippingMethod","patchCartBuyer","patchCartAddresses","checkoutCart","uploadPaymentReceipt","addCartPromotionCode","removeCartPromotionCode","getCountries","getDepartments","getProvinces","getDistricts","getCustomerAddresses","options","createCustomerAddress","updateCustomerAddress","deleteCustomerAddress","getCustomerMe","patchCustomer","getCustomerOrders","getCustomerOrder","sanitize"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Cliente HTTP de Ecomiq para servicios externos.\n * fetch nativo (funciona en Node, navegador y Cloudflare Workers)\n * + validación de respuestas con Zod.\n */\nimport type { z } from 'zod'\n\nexport const DEFAULT_API_BASE_URL = 'https://storefront.ecomiq.pe'\nexport const DEFAULT_API_VERSION = 'v1'\n\nexport class ApiError extends Error {\n constructor(\n message: string,\n public readonly status: number,\n public readonly url: string,\n public readonly body?: unknown,\n ) {\n super(message)\n this.name = 'ApiError'\n }\n}\n\nexport interface CreateApiOptions {\n /** Default: https://storefront.ecomiq.pe */\n baseUrl?: string\n /** Segmento de path, default 'v1' → {baseUrl}/v1/... */\n version?: string\n headers?: Record<string, string>\n timeoutMs?: number\n}\n\ninterface RequestOptions {\n query?: Record<string, string | number | boolean | undefined>\n headers?: Record<string, string>\n signal?: AbortSignal\n}\n\nexport interface Api {\n get<S extends z.ZodTypeAny>(\n path: string,\n schema: S,\n options?: RequestOptions,\n ): Promise<z.output<S>>\n post<S extends z.ZodTypeAny>(\n path: string,\n body: unknown,\n schema: S,\n options?: RequestOptions,\n ): Promise<z.output<S>>\n /** POST multipart; no fuerza `content-type: application/json`. */\n postForm<S extends z.ZodTypeAny>(\n path: string,\n body: FormData,\n schema: S,\n options?: RequestOptions,\n ): Promise<z.output<S>>\n request<S extends z.ZodTypeAny>(\n method: string,\n path: string,\n schema: S,\n options?: RequestOptions & { body?: unknown },\n ): Promise<z.output<S>>\n}\n\n/** Une baseUrl + version en la base efectiva del cliente, ej. https://storefront.ecomiq.pe/v1/ */\nexport function resolveApiBaseUrl(\n baseUrl: string = DEFAULT_API_BASE_URL,\n version: string = DEFAULT_API_VERSION,\n): string {\n const root = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`\n const segment = version.replace(/^\\/+|\\/+$/g, '')\n // Sin segmento: conservar la base tal cual (p. ej. BFF `/api/` same-origin).\n // `new URL('/', root)` reemplazaría el pathname entero.\n if (!segment) return root\n return new URL(`${segment}/`, root).toString()\n}\n\n/**\n * Crea un cliente HTTP tipado con Zod.\n *\n * ```ts\n * const api = createApi()\n * const data = await api.get('settings', schema)\n * // → GET https://storefront.ecomiq.pe/v1/settings\n * ```\n */\nexport function createApi(options: CreateApiOptions = {}): Api {\n const {\n baseUrl = DEFAULT_API_BASE_URL,\n version = DEFAULT_API_VERSION,\n headers: baseHeaders = {},\n timeoutMs = 10_000,\n } = options\n\n const effectiveBaseUrl = resolveApiBaseUrl(baseUrl, version)\n\n async function request<S extends z.ZodTypeAny>(\n method: string,\n path: string,\n schema: S,\n opts: RequestOptions & { body?: unknown } = {},\n ): Promise<z.output<S>> {\n const url = new URL(path.replace(/^\\//, ''), effectiveBaseUrl)\n for (const [key, value] of Object.entries(opts.query ?? {})) {\n if (value !== undefined) url.searchParams.set(key, String(value))\n }\n\n const controller = new AbortController()\n const timeout = setTimeout(() => controller.abort(), timeoutMs)\n if (opts.signal) opts.signal.addEventListener('abort', () => controller.abort(), { once: true })\n\n const isFormData =\n typeof FormData !== 'undefined' && opts.body instanceof FormData\n\n let response: Response\n try {\n response = await fetch(url.toString(), {\n method,\n headers: {\n accept: 'application/json',\n ...(opts.body !== undefined && !isFormData\n ? { 'content-type': 'application/json' }\n : {}),\n ...baseHeaders,\n ...opts.headers,\n },\n body:\n opts.body === undefined\n ? undefined\n : isFormData\n ? (opts.body as FormData)\n : JSON.stringify(opts.body),\n signal: controller.signal,\n })\n } catch (err) {\n throw new ApiError(\n err instanceof DOMException && err.name === 'AbortError'\n ? `Timeout tras ${timeoutMs}ms: ${url}`\n : `No se pudo conectar con ${url}`,\n 0,\n url.toString(),\n )\n } finally {\n clearTimeout(timeout)\n }\n\n if (!response.ok) {\n const bodyText = await response.text().catch(() => undefined)\n let body: unknown = bodyText\n if (bodyText) {\n try {\n body = JSON.parse(bodyText)\n } catch {}\n }\n throw new ApiError(`${method} ${url} → ${response.status}`, response.status, url.toString(), body)\n }\n\n const bodyText = await response.text()\n let json: unknown = null\n if (bodyText.trim()) {\n try {\n json = JSON.parse(bodyText)\n } catch {\n throw new ApiError(\n `Respuesta no JSON de ${url}`,\n response.status,\n url.toString(),\n bodyText,\n )\n }\n }\n\n const parsed = schema.safeParse(json)\n if (!parsed.success) {\n throw new ApiError(\n `Respuesta inesperada de ${url}: ${parsed.error.issues[0]?.path.join('.')} ${parsed.error.issues[0]?.message}`,\n response.status,\n url.toString(),\n json,\n )\n }\n return parsed.data as z.output<S>\n }\n\n return {\n request,\n get: (path, schema, opts) => request('GET', path, schema, opts),\n post: (path, body, schema, opts) => request('POST', path, schema, { ...opts, body }),\n postForm: (path, body, schema, opts) =>\n request('POST', path, schema, { ...opts, body }),\n }\n}\n","import { z } from 'zod'\n\nexport const CollectionSchema = z.object({\n id: z.number(),\n slug: z.string(),\n name: z.string(),\n description: z.string().nullable().optional(),\n imageUrl: z.string().nullable().optional(),\n type: z.string(),\n productCount: z.number().optional(),\n})\n\nexport const CollectionsSchema = z.array(CollectionSchema)\n\nexport type Collection = z.infer<typeof CollectionSchema>\nexport type Collections = z.infer<typeof CollectionsSchema>\n","import { z } from 'zod'\n\n/**\n * UUID o id numérico de la API (p. ej. `\"2\"`, snowflake `\"74400…\"`).\n * Usar en lugar de `z.string().uuid()` para ids de entidades.\n */\nexport const EntityIdSchema = z.union([\n z.string().uuid(),\n z.string().regex(/^\\d+$/, 'Expected numeric id'),\n])\n\nexport const NullableEntityIdSchema = EntityIdSchema.nullable()\nexport const OptionalEntityIdSchema = EntityIdSchema.optional()\n\nexport type EntityId = z.infer<typeof EntityIdSchema>\n","import { z } from 'zod'\nimport {\n OptionalEntityIdSchema,\n} from './ids'\n\nexport const ProductPublicIdSchema = z\n .union([\n z.string().regex(/^[1-9]\\d*$/),\n z.number().int().safe().positive(),\n ])\n .transform(String)\n\nexport const ProductSummarySchema = z.object({\n id: ProductPublicIdSchema,\n name: z.string(),\n slug: z.string(),\n productType: z.string(),\n imageUrl: z.string(),\n price: z.number().nonnegative(),\n compareAtPrice: z.number().nonnegative().nullable(),\n variantCount: z.number().int().nonnegative(),\n isAvailable: z.boolean(),\n totalInventory: z.number().int().nonnegative(),\n bundleItemsCount: z.number().int().nonnegative(),\n brand: z.string(),\n category: z.string(),\n status: z.string(),\n collections: z.array(z.string()),\n tags: z.array(z.string()),\n})\n\nexport const ProductSummariesSchema = z.array(ProductSummarySchema)\n\nexport const ProductSchema = ProductSummarySchema\n\nexport const FacetItemSchema = z.object({\n value: z.string(),\n count: z.number().int().nonnegative(),\n label: z.string().nullable(),\n selected: z.boolean(),\n})\n\nexport const FacetSchema = FacetItemSchema\n\nexport const SearchFilterSchema = z.object({\n id: z.string(),\n label: z.string(),\n type: z.enum(['list', 'price_range']),\n values: z.array(FacetItemSchema),\n min: z.number().nonnegative().nullable(),\n max: z.number().nonnegative().nullable(),\n selectedMin: z.number().nonnegative().nullable(),\n selectedMax: z.number().nonnegative().nullable(),\n})\n\nexport const ProductsResponseSchema = z.object({\n pageIndex: z.number().int().positive(),\n pageSize: z.number().int().positive().max(100),\n totalCount: z.number().int().nonnegative(),\n totalPages: z.number().int().nonnegative(),\n products: z.array(ProductSummarySchema),\n filters: z.array(SearchFilterSchema),\n})\n\nexport const ProductSortSchema = z.enum([\n 'price_asc',\n 'price_desc',\n 'name_asc',\n 'name_desc',\n 'newest',\n])\n\nexport const ProductsParamsSchema = z.object({\n page: z.number().int().positive().default(1),\n pageSize: z.number().int().positive().max(100).default(24),\n sort: ProductSortSchema.optional(),\n sellerId: OptionalEntityIdSchema,\n search: z.string().optional(),\n collection: z.string().optional(),\n collections: z.array(z.string()).optional(),\n collectionId: ProductPublicIdSchema.optional(),\n category: z.string().optional(),\n categories: z.array(z.string()).optional(),\n brand: z.string().optional(),\n brands: z.array(z.string()).optional(),\n productType: z.string().optional(),\n productTypes: z.array(z.string()).optional(),\n tag: z.string().optional(),\n tags: z.array(z.string()).optional(),\n filters: z.array(z.string()).optional(),\n locationId: OptionalEntityIdSchema,\n inStock: z.boolean().optional(),\n minPrice: z.number().nonnegative().optional(),\n maxPrice: z.number().nonnegative().optional(),\n})\n\nexport const ProductDetailParamsSchema = z.object({\n sellerId: OptionalEntityIdSchema,\n})\n\nexport const RelatedProductsParamsSchema = z.object({\n productId: ProductPublicIdSchema,\n limit: z.number().int().positive().max(12).default(8),\n sellerId: OptionalEntityIdSchema,\n})\n\nexport const SpecItemSchema = z.object({\n key: z.string(),\n name: z.string(),\n value: z.string(),\n})\n\nexport const VariantOptionSchema = SpecItemSchema\n\nexport const ProductImageSchema = z.object({\n url: z.string(),\n name: z.string(),\n order: z.number().int().nonnegative(),\n})\n\nexport const VariantItemSchema = z.object({\n id: z.string().nullable(),\n sku: z.string(),\n status: z.string(),\n price: z.number().nonnegative(),\n compareAtPrice: z.number().nonnegative().nullable(),\n quantity: z.number().int().nonnegative(),\n options: z.array(SpecItemSchema),\n images: z.array(ProductImageSchema),\n})\n\nexport const VariantSchema = VariantItemSchema\n\nexport const ProductPriceTierSchema = z.object({\n variantId: z.string(),\n minQuantity: z.number().int().positive(),\n maxQuantity: z.number().int().positive().nullable(),\n unitPrice: z.number().nonnegative(),\n})\n\nexport const PriceTierSchema = ProductPriceTierSchema\n\nexport const BundleItemSchema = z.object({\n productId: ProductPublicIdSchema,\n variantId: ProductPublicIdSchema,\n productName: z.string(),\n variantName: z.string().nullable(),\n sku: z.string().nullable(),\n brand: z.string().nullable(),\n imageUrl: z.string().nullable(),\n quantity: z.number().int().positive(),\n available: z.number().int().nonnegative(),\n allowBackorders: z.boolean(),\n requiresShipping: z.boolean(),\n})\n\nexport const SizeGuideMeasurementSchema = z.object({\n key: z.string(),\n name: z.string(),\n min: z.number().nullable(),\n max: z.number().nullable(),\n value: z.number().nullable(),\n description: z.string().nullable(),\n})\n\nexport const SizeGuideRowSchema = z.object({\n label: z.string(),\n sizeKey: z.string(),\n order: z.number().int().nonnegative(),\n measurements: z.array(SizeGuideMeasurementSchema),\n})\n\nexport const SizeGuideSchema = z.object({\n id: z.string(),\n name: z.string(),\n slug: z.string(),\n description: z.string().nullable(),\n imageUrl: z.string().nullable(),\n gender: z.string(),\n measurementType: z.string(),\n unit: z.string(),\n notes: z.string().nullable(),\n rows: z.array(SizeGuideRowSchema),\n})\n\nexport const ProductDetailSchema = z.object({\n id: ProductPublicIdSchema,\n name: z.string(),\n slug: z.string(),\n description: z.string(),\n productType: z.string(),\n status: z.string(),\n imageUrl: z.string(),\n price: z.number().nonnegative(),\n compareAtPrice: z.number().nonnegative().nullable(),\n isAvailable: z.boolean(),\n totalInventory: z.number().int().nonnegative(),\n brand: z.string(),\n category: z.string(),\n categoryId: ProductPublicIdSchema.nullable(),\n tags: z.array(z.string()),\n specifications: z.array(SpecItemSchema),\n variants: z.array(VariantItemSchema),\n images: z.array(ProductImageSchema),\n bundleItems: z.array(BundleItemSchema),\n sizeGuide: SizeGuideSchema.nullable(),\n priceTiers: z.array(ProductPriceTierSchema),\n createdAt: z.string().datetime({ offset: true }).nullable(),\n updatedAt: z.string().datetime({ offset: true }).nullable(),\n})\n\nexport type ProductSummary = z.infer<typeof ProductSummarySchema>\nexport type Product = ProductSummary\nexport type FacetItem = z.infer<typeof FacetItemSchema>\nexport type Facet = FacetItem\nexport type SearchFilter = z.infer<typeof SearchFilterSchema>\nexport type ProductsResponse = z.infer<typeof ProductsResponseSchema>\nexport type ProductsParams = z.infer<typeof ProductsParamsSchema>\nexport type ProductsParamsInput = z.input<typeof ProductsParamsSchema>\nexport type ProductDetailParams = z.input<typeof ProductDetailParamsSchema>\nexport type RelatedProductsParams = z.input<typeof RelatedProductsParamsSchema>\nexport type ProductSort = z.infer<typeof ProductSortSchema>\nexport type SpecItem = z.infer<typeof SpecItemSchema>\nexport type VariantOption = SpecItem\nexport type VariantItem = z.infer<typeof VariantItemSchema>\nexport type Variant = VariantItem\nexport type ProductImage = z.infer<typeof ProductImageSchema>\nexport type ProductPriceTier = z.infer<typeof ProductPriceTierSchema>\nexport type PriceTier = ProductPriceTier\nexport type BundleItem = z.infer<typeof BundleItemSchema>\nexport type SizeGuideMeasurement = z.infer<typeof SizeGuideMeasurementSchema>\nexport type SizeGuideRow = z.infer<typeof SizeGuideRowSchema>\nexport type SizeGuide = z.infer<typeof SizeGuideSchema>\nexport type ProductDetail = z.infer<typeof ProductDetailSchema>\n","import { z } from 'zod'\nimport {\n EntityIdSchema,\n NullableEntityIdSchema,\n} from './ids'\n\nexport type { EntityId } from './ids'\nexport { EntityIdSchema, NullableEntityIdSchema, OptionalEntityIdSchema } from './ids'\n\nexport type JsonElement =\n | null\n | boolean\n | number\n | string\n | JsonElement[]\n | { [key: string]: JsonElement }\n\nexport const JsonElementSchema: z.ZodType<JsonElement> = z.lazy(() =>\n z.union([\n z.null(),\n z.boolean(),\n z.number().finite(),\n z.string(),\n z.array(JsonElementSchema),\n z.record(z.string(), JsonElementSchema),\n ]),\n)\n\nconst DateTimeOffsetSchema = z.string().datetime({ offset: true })\nconst NullableDateTimeOffsetSchema = DateTimeOffsetSchema.nullable()\n\nexport const StoreTypeSchema = z.enum([\n 'b2C',\n 'marketplace',\n 'retail',\n 'b2B',\n 'social',\n 'hub',\n 'restaurant',\n])\n\nexport const StoreVisibilitySchema = z.enum(['public', 'private'])\n\nexport const StoreThemeSettingsSchema = z\n .object({\n name: z.string().nullable(),\n mode: z.string().nullable(),\n colors: z.record(z.string(), z.string()),\n fonts: z.record(z.string(), z.string()),\n assets: z.record(z.string(), z.string()),\n })\n .strict()\n\nexport const StoreFeatureFlagsSchema = z\n .object({\n flags: z.record(z.string(), z.boolean()),\n })\n .strict()\n\nexport const StoreCheckoutGeneralSettingsSchema = z\n .object({\n allowGuestCheckout: z.boolean(),\n identityScope: z.enum(['store', 'tenant', 'global']),\n signInMethods: z.array(z.enum(['password', 'emailOtp', 'google'])),\n useSequentialOrderNumbers: z.boolean(),\n automaticallySelectFirstAddress: z.boolean(),\n alwaysRequestCustomerAddress: z.boolean(),\n requestCustomerDateOfBirth: z.boolean(),\n automaticallySelectBestPromotion: z.boolean(),\n })\n .strict()\n\nexport const StoreCheckoutShippingSettingsSchema = z\n .object({\n showDeliveryTime: z.boolean(),\n showDeliveryTimeInDays: z.boolean(),\n useBusinessDaysForDeliveryTime: z.boolean(),\n showEstimatedDeliveryDateInThankYouAndEmails: z.boolean(),\n showOriginalShippingPriceWhenFree: z.boolean(),\n })\n .strict()\n\nexport const StoreCheckoutCartPageSettingsSchema = z\n .object({\n showShippingCostCalculation: z.boolean(),\n allowProductLinks: z.boolean(),\n redirectToCartPage: z.boolean(),\n })\n .strict()\n\nexport const StoreCheckoutOrderBumpSettingsSchema = z\n .object({\n mergeOrderBumpOrders: z.boolean(),\n allowOnlyOneAdditionalOffer: z.boolean(),\n maxVisibleOffers: z.number().int(),\n })\n .strict()\n\nexport const StoreCheckoutOrdersAndPaymentsSettingsSchema = z\n .object({\n allowPurchasesFrom: z.enum(['any', 'individual', 'company']),\n creditCardDailyOrderLimitPerIp: z.number().int().nullable(),\n maximumItemsPerOrder: z.number().int().nullable(),\n deliveryNoteText: z.string().nullable(),\n boletoPaymentNoteText: z.string().nullable(),\n })\n .strict()\n\nexport const StoreCheckoutSettingsSchema = z\n .object({\n general: StoreCheckoutGeneralSettingsSchema,\n shipping: StoreCheckoutShippingSettingsSchema,\n cartPage: StoreCheckoutCartPageSettingsSchema,\n orderBumps: StoreCheckoutOrderBumpSettingsSchema,\n ordersAndPayments: StoreCheckoutOrdersAndPaymentsSettingsSchema,\n })\n .strict()\n\nconst StorefrontStoreShape = {\n id: EntityIdSchema,\n tenantId: EntityIdSchema,\n sellerId: NullableEntityIdSchema,\n type: StoreTypeSchema,\n isActive: z.boolean(),\n name: z.string(),\n description: z.string(),\n logo: z.string().nullable(),\n icon: z.string().nullable(),\n slug: z.string().nullable(),\n domain: z.string().nullable(),\n domains: z.array(z.string()),\n timeZone: z.string(),\n currency: z.string(),\n language: z.string(),\n visibility: StoreVisibilitySchema,\n themeConfig: StoreThemeSettingsSchema,\n featuresEnabled: StoreFeatureFlagsSchema,\n checkoutSettings: StoreCheckoutSettingsSchema,\n}\n\nexport const StoreModelSchema = z.object(StorefrontStoreShape).strict()\n\nexport type StoreModel = z.infer<typeof StoreModelSchema>\n\nexport const CmsBrandingSettingsDtoSchema = z\n .object({\n logoUrl: z.string().nullable(),\n logoDarkUrl: z.string().nullable(),\n faviconUrl: z.string().nullable(),\n socialImageUrl: z.string().nullable(),\n })\n .strict()\n\nexport const CmsSeoSettingsDtoSchema = z\n .object({\n siteName: z.string().nullable(),\n metaTitle: z.string().nullable(),\n metaDescription: z.string().nullable(),\n titleTemplate: z.string().nullable(),\n robotsIndex: z.boolean(),\n })\n .strict()\n\nexport const CmsSocialLinksDtoSchema = z\n .object({\n instagram: z.string().nullable(),\n facebook: z.string().nullable(),\n tiktok: z.string().nullable(),\n youtube: z.string().nullable(),\n x: z.string().nullable(),\n })\n .strict()\n\nexport const CmsContactSettingsDtoSchema = z\n .object({\n supportEmail: z.string().nullable(),\n phone: z.string().nullable(),\n whatsapp: z.string().nullable(),\n address: z.string().nullable(),\n socialLinks: CmsSocialLinksDtoSchema,\n })\n .strict()\n\nexport const CmsTrackingSettingsDtoSchema = z\n .object({\n googleAnalyticsMeasurementId: z.string().nullable(),\n metaPixelId: z.string().nullable(),\n googleTagManagerContainerId: z.string().nullable(),\n })\n .strict()\n\nexport const CmsCustomScriptsDtoSchema = z\n .object({\n enabled: z.boolean(),\n head: z.string().nullable(),\n bodyEnd: z.string().nullable(),\n })\n .strict()\n\nexport const CmsSiteSettingsDtoSchema = z\n .object({\n themeKey: z.string(),\n branding: CmsBrandingSettingsDtoSchema,\n seo: CmsSeoSettingsDtoSchema,\n contact: CmsContactSettingsDtoSchema,\n tracking: CmsTrackingSettingsDtoSchema,\n customScripts: CmsCustomScriptsDtoSchema,\n updatedOn: NullableDateTimeOffsetSchema,\n })\n .strict()\n\nexport type CmsMenuItem = {\n label: string\n url: string\n order: number\n target: string | null\n visible: boolean | null\n children: CmsMenuItem[] | null\n}\n\nexport const CmsMenuItemSchema: z.ZodType<CmsMenuItem> = z.lazy(() =>\n z\n .object({\n label: z.string(),\n url: z.string(),\n order: z.number().int(),\n target: z.string().nullable(),\n visible: z.boolean().nullable(),\n children: z.array(CmsMenuItemSchema).nullable(),\n })\n .strict(),\n)\n\nexport const CmsMenuDtoSchema = z\n .object({\n key: z.string(),\n name: z.string(),\n items: z.array(CmsMenuItemSchema),\n })\n .strict()\n\nexport type CmsMenuDto = z.infer<typeof CmsMenuDtoSchema>\n\nexport const CmsBlockDtoSchema = z\n .object({\n id: EntityIdSchema,\n type: z.string(),\n order: z.number().int(),\n settings: JsonElementSchema,\n })\n .strict()\n\nexport type CmsBlockDto = z.infer<typeof CmsBlockDtoSchema>\n\nexport const CmsSectionDtoSchema = z\n .object({\n id: EntityIdSchema,\n type: z.string(),\n order: z.number().int(),\n settings: JsonElementSchema,\n blocks: z.array(CmsBlockDtoSchema),\n })\n .strict()\n\nexport type CmsSectionDto = z.infer<typeof CmsSectionDtoSchema>\n\nexport const CmsContentChannelSchema = z.enum(['storefront', 'pos'])\nexport const CmsPageStatusSchema = z.enum(['draft', 'published', 'archived'])\n\nexport const CmsPageDetailsDtoSchema = z\n .object({\n id: EntityIdSchema,\n name: z.string(),\n slug: z.string(),\n channel: CmsContentChannelSchema,\n layout: z.string(),\n version: z.number().int().nullable(),\n settings: JsonElementSchema,\n sections: z.array(CmsSectionDtoSchema),\n status: CmsPageStatusSchema,\n hasPublishedVersion: z.boolean(),\n publishedOn: NullableDateTimeOffsetSchema,\n publishedBy: NullableEntityIdSchema,\n createdOn: DateTimeOffsetSchema,\n updatedOn: NullableDateTimeOffsetSchema,\n createdBy: NullableEntityIdSchema,\n updatedBy: NullableEntityIdSchema,\n lastModifiedBy: z.string().nullable(),\n })\n .strict()\n\nexport type CmsPageDetailsDto = z.infer<typeof CmsPageDetailsDtoSchema>\n\nexport const CmsSnapshotDtoSchema = z\n .object({\n settings: CmsSiteSettingsDtoSchema,\n pages: z.array(CmsPageDetailsDtoSchema),\n menus: z.array(CmsMenuDtoSchema),\n })\n .strict()\n\nexport type CmsSnapshotDto = z.infer<typeof CmsSnapshotDtoSchema>\n\nconst StoreSettingsSnapshotV1Schema = z\n .object({\n schemaVersion: z.literal(1),\n generatedAt: DateTimeOffsetSchema,\n store: z.object(StorefrontStoreShape),\n cms: CmsSnapshotDtoSchema,\n })\n .strict()\n\nconst StoreSettingsSnapshotV2Schema = z\n .object({\n schemaVersion: z.literal(2),\n generatedAt: DateTimeOffsetSchema,\n store: StoreModelSchema,\n cms: CmsSnapshotDtoSchema,\n })\n .strict()\n\nexport const StoreSettingsSnapshotDtoSchema = z.discriminatedUnion(\n 'schemaVersion',\n [StoreSettingsSnapshotV1Schema, StoreSettingsSnapshotV2Schema],\n)\n\nexport type StoreSettingsSnapshotDto = z.infer<\n typeof StoreSettingsSnapshotDtoSchema\n>\n\nexport const StorefrontCheckoutSettingsSchema = StoreCheckoutSettingsSchema\nexport const StorefrontFeaturesEnabledSchema = StoreFeatureFlagsSchema\nexport const StorefrontCmsBrandingSchema = CmsBrandingSettingsDtoSchema\nexport const StorefrontThemeConfigSchema = StoreThemeSettingsSchema\nexport const StorefrontStoreTypeSchema = StoreTypeSchema\nexport const StorefrontStoreSchema = StoreModelSchema\nexport const StorefrontCmsSeoSchema = CmsSeoSettingsDtoSchema\nexport const StorefrontCmsSocialLinksSchema = CmsSocialLinksDtoSchema\nexport const StorefrontCmsContactSchema = CmsContactSettingsDtoSchema\nexport const StorefrontCmsTrackingSchema = CmsTrackingSettingsDtoSchema\nexport const StorefrontCmsCustomScriptsSchema = CmsCustomScriptsDtoSchema\nexport const StorefrontCmsSettingsSchema = CmsSiteSettingsDtoSchema\nexport const StorefrontMenuItemSchema = CmsMenuItemSchema\nexport const StorefrontMenuSchema = CmsMenuDtoSchema\nexport const StorefrontCmsPageSchema = CmsPageDetailsDtoSchema\nexport const StorefrontSettingsSchema = StoreSettingsSnapshotDtoSchema\n\nexport type StorefrontMenuItem = z.infer<typeof StorefrontMenuItemSchema>\nexport type StorefrontMenu = z.infer<typeof StorefrontMenuSchema>\nexport type StorefrontSettings = z.infer<typeof StorefrontSettingsSchema>\n\nexport function getMenuItems(\n settings: StorefrontSettings | null | undefined,\n key: string,\n): StorefrontMenuItem[] {\n const menu = settings?.cms.menus.find((candidate) => candidate.key === key)\n return (menu?.items ?? [])\n .filter((item) => item.visible !== false)\n .slice()\n .sort((a, b) => a.order - b.order)\n}\n","import type { Api } from '../libs/api'\nimport {\n ProductDetailParamsSchema,\n ProductDetailSchema,\n type ProductDetailParams,\n ProductSummariesSchema,\n type ProductsParamsInput,\n ProductsParamsSchema,\n ProductsResponseSchema,\n type RelatedProductsParams,\n RelatedProductsParamsSchema,\n} from '../models/products'\n\nexport async function getProducts(api: Api, params: ProductsParamsInput = {}) {\n const input = ProductsParamsSchema.parse(params)\n const query = new URLSearchParams()\n query.set('page', String(input.page))\n query.set('pageSize', String(input.pageSize))\n\n if (input.sort) query.set('sort', input.sort)\n if (input.sellerId) query.set('sellerId', input.sellerId)\n if (input.search) query.set('search', input.search)\n if (input.collection) query.set('collection', input.collection)\n for (const collection of input.collections ?? []) {\n query.append('collections', collection)\n }\n if (input.collectionId) query.set('collectionId', input.collectionId)\n if (input.category) query.set('category', input.category)\n for (const category of input.categories ?? []) {\n query.append('categories', category)\n }\n if (input.brand) query.set('brand', input.brand)\n for (const brand of input.brands ?? []) {\n query.append('brands', brand)\n }\n if (input.productType) query.set('productType', input.productType)\n for (const productType of input.productTypes ?? []) {\n query.append('productTypes', productType)\n }\n if (input.tag) query.set('tag', input.tag)\n for (const tag of input.tags ?? []) {\n query.append('tags', tag)\n }\n for (const filter of input.filters ?? []) {\n query.append('filters', filter)\n }\n if (input.locationId) query.set('locationId', input.locationId)\n if (input.inStock !== undefined) query.set('inStock', String(input.inStock))\n if (input.minPrice !== undefined) query.set('minPrice', String(input.minPrice))\n if (input.maxPrice !== undefined) query.set('maxPrice', String(input.maxPrice))\n\n return api.get(`products?${query.toString()}`, ProductsResponseSchema)\n}\n\nexport async function getProductBySlug(\n api: Api,\n slug: string,\n params: ProductDetailParams = {},\n) {\n const input = ProductDetailParamsSchema.parse(params)\n const query = new URLSearchParams()\n if (input.sellerId) query.set('sellerId', input.sellerId)\n\n const path = `products/${encodeURIComponent(slug)}`\n const search = query.toString()\n if (search) {\n return api.get(`${path}?${search}`, ProductDetailSchema)\n }\n return api.get(path, ProductDetailSchema)\n}\n\nexport async function getRelatedProducts(\n api: Api,\n params: RelatedProductsParams,\n) {\n const input = RelatedProductsParamsSchema.parse(params)\n return api.get(\n `products/${encodeURIComponent(input.productId)}/related`,\n ProductSummariesSchema,\n {\n query: {\n limit: input.limit,\n sellerId: input.sellerId,\n },\n },\n )\n}\n","import { z } from 'zod'\nimport {\n OptionalEntityIdSchema,\n} from './ids'\n\nimport { ProductPublicIdSchema } from './products'\n\nexport const ProductAutocompleteParamsSchema = z.object({\n search: z.string().min(2).max(80),\n limit: z.number().int().positive().max(20).default(8),\n sellerId: OptionalEntityIdSchema,\n})\n\nexport const ProductSuggestionSchema = z.object({\n id: ProductPublicIdSchema,\n name: z.string(),\n slug: z.string(),\n imageUrl: z.string(),\n})\n\nexport const ProductSuggestionsSchema = z.array(ProductSuggestionSchema)\n\nexport type ProductAutocompleteParams = z.input<typeof ProductAutocompleteParamsSchema>\nexport type ProductSuggestion = z.infer<typeof ProductSuggestionSchema>\n","import type { Api } from '../libs/api'\nimport {\n type ProductAutocompleteParams,\n ProductAutocompleteParamsSchema,\n ProductSuggestionsSchema,\n} from '../models/search'\n\nexport async function autocompleteProducts(\n api: Api,\n params: ProductAutocompleteParams,\n) {\n const input = ProductAutocompleteParamsSchema.parse(params)\n return api.get('search/autocomplete', ProductSuggestionsSchema, {\n query: {\n search: input.search,\n limit: input.limit,\n sellerId: input.sellerId,\n },\n })\n}\n","import { z } from 'zod'\n\nimport { ProductPublicIdSchema } from './products'\n\nexport const StorefrontReviewSchema = z.object({\n id: ProductPublicIdSchema,\n productId: ProductPublicIdSchema,\n isVerifiedPurchase: z.boolean(),\n rating: z.number().int().min(1).max(5),\n title: z.string().nullable(),\n content: z.string(),\n reviewerName: z.string().nullable(),\n createdOn: z.string().datetime({ offset: true }),\n})\n\nexport const StorefrontReviewsSchema = z.object({\n data: z.array(StorefrontReviewSchema),\n hasNextPage: z.boolean(),\n nextCursor: z.string().nullable(),\n totalCount: z.number().int().nonnegative().nullable(),\n})\n\nexport const ListProductReviewsParamsSchema = z.object({\n productId: ProductPublicIdSchema,\n limit: z.number().int().min(1).max(200).optional(),\n cursor: z.string().optional(),\n search: z.string().optional(),\n sortBy: z.enum(['rating', 'createdOn']).optional(),\n sortDirection: z.enum(['asc', 'desc']).optional(),\n rating: z.number().int().min(1).max(5).optional(),\n})\n\nexport const CreateProductReviewParamsSchema = z.object({\n productId: ProductPublicIdSchema,\n rating: z.number().int().min(1).max(5),\n content: z.string().min(1).max(4000),\n title: z.string().max(200).optional(),\n reviewerName: z.string().min(1).max(200),\n reviewerEmail: z.string().email().max(320),\n orderId: z.number().int().safe().positive().optional(),\n})\n\nexport type StorefrontReview = z.infer<typeof StorefrontReviewSchema>\nexport type StorefrontReviews = z.infer<typeof StorefrontReviewsSchema>\nexport type ListProductReviewsParams = z.input<typeof ListProductReviewsParamsSchema>\nexport type CreateProductReviewParams = z.input<typeof CreateProductReviewParamsSchema>\n","import type { Api } from '../libs/api'\nimport {\n type CreateProductReviewParams,\n CreateProductReviewParamsSchema,\n type ListProductReviewsParams,\n ListProductReviewsParamsSchema,\n StorefrontReviewSchema,\n StorefrontReviewsSchema,\n} from '../models/storefront-reviews'\n\nexport async function listProductReviews(\n api: Api,\n params: ListProductReviewsParams,\n) {\n const input = ListProductReviewsParamsSchema.parse(params)\n return api.get(\n `products/${encodeURIComponent(input.productId)}/reviews`,\n StorefrontReviewsSchema,\n {\n query: {\n limit: input.limit,\n cursor: input.cursor,\n search: input.search,\n sortBy: input.sortBy,\n sortDirection: input.sortDirection,\n rating: input.rating,\n },\n },\n )\n}\n\nexport async function createProductReview(\n api: Api,\n params: CreateProductReviewParams,\n) {\n const input = CreateProductReviewParamsSchema.parse(params)\n return api.post(\n `products/${encodeURIComponent(input.productId)}/reviews`,\n {\n rating: input.rating,\n content: input.content,\n title: input.title,\n reviewerName: input.reviewerName,\n reviewerEmail: input.reviewerEmail,\n orderId: input.orderId,\n },\n StorefrontReviewSchema,\n )\n}\n","import { z } from 'zod'\nimport {\n EntityIdSchema,\n NullableEntityIdSchema,\n} from './ids'\n\nexport function cartVariantIdFromProduct(variantId: string): number {\n if (!/^\\d+$/.test(variantId)) {\n throw new RangeError('El variant ID debe ser un integer decimal positivo.')\n }\n\n const value = BigInt(variantId)\n if (value <= 0n || value > BigInt(Number.MAX_SAFE_INTEGER)) {\n throw new RangeError('El variant ID no cabe en un integer seguro de JavaScript.')\n }\n\n return Number(value)\n}\n\nexport const StorefrontAddressSchema = z.object({\n name: z.string().nullable(),\n address1: z.string(),\n city: z.string(),\n countryCode: z.string(),\n company: z.string().nullable(),\n address2: z.string().nullable(),\n province: z.string().nullable(),\n postalCode: z.string().nullable(),\n district: z.string().nullable(),\n phone: z.string().nullable(),\n latitude: z.number().nullable(),\n longitude: z.number().nullable(),\n})\n\nexport const StorefrontCartBundleItemSchema = z.object({\n productId: z.number().int().safe().nonnegative(),\n variantId: z.number().int().safe().nonnegative(),\n productName: z.string(),\n variantName: z.string().nullable(),\n sku: z.string().nullable(),\n brand: z.string().nullable(),\n imageUrl: z.string().nullable(),\n quantity: z.number().int().positive(),\n})\n\nexport const StorefrontCartItemSchema = z.object({\n id: EntityIdSchema,\n productId: z.number().int().safe().nonnegative(),\n title: z.string(),\n variantLabel: z.string().nullable(),\n productHandle: z.string().nullable(),\n thumbnail: z.string().nullable(),\n quantity: z.number().int().positive(),\n variantId: z.number().int().safe().nonnegative(),\n variantSku: z.string().nullable(),\n unitPrice: z.number(),\n compareAtUnitPrice: z.number().nullable(),\n bundleItems: z.array(StorefrontCartBundleItemSchema),\n})\n\nexport const StorefrontCartShippingMethodSchema = z.object({\n id: EntityIdSchema,\n shippingMethodId: NullableEntityIdSchema,\n rateId: NullableEntityIdSchema,\n name: z.string(),\n description: z.string().nullable(),\n total: z.number(),\n locationId: NullableEntityIdSchema,\n estimatedDays: z.number().int().nullable(),\n pickupPointId: NullableEntityIdSchema,\n scheduledDate: z.string().nullable(),\n scheduledTime: z.string().nullable(),\n serviceCode: z.string().nullable(),\n sellerId: NullableEntityIdSchema,\n shippingProfileId: NullableEntityIdSchema,\n})\n\nexport const StorefrontCartTotalsSchema = z.object({\n subtotal: z.number(),\n discountTotal: z.number(),\n shippingOriginalTotal: z.number(),\n shippingTotal: z.number(),\n taxTotal: z.number(),\n warrantyTotal: z.number(),\n total: z.number(),\n})\n\nexport const StorefrontCartStatusSchema = z.enum([\n 'inProgress',\n 'pending',\n 'completed',\n 'abandoned',\n 'cancelled',\n 'expired',\n 'failed',\n])\n\nexport const StorefrontCartSchema = z.object({\n id: EntityIdSchema,\n cartNumber: z.string(),\n email: z.string().nullable(),\n phone: z.string().nullable(),\n firstName: z.string().nullable(),\n lastName: z.string().nullable(),\n currencyCode: z.string(),\n status: StorefrontCartStatusSchema,\n completedAt: z.string().datetime({ offset: true }).nullable(),\n shippingAddress: StorefrontAddressSchema.nullable(),\n billingAddress: StorefrontAddressSchema.nullable(),\n promotionCodes: z.array(z.string()),\n items: z.array(StorefrontCartItemSchema),\n shippingMethods: z.array(StorefrontCartShippingMethodSchema),\n totals: StorefrontCartTotalsSchema,\n})\n\nexport const CreateCartParamsSchema = z.object({\n currencyCode: z.string().length(3),\n salesChannelId: z.string().optional(),\n email: z.string().email().optional(),\n})\n\nexport const GetCartParamsSchema = z.object({\n cartId: EntityIdSchema,\n})\n\nexport const CartItemModifierSchema = z.object({\n modifierGroupId: z.number().int().safe().positive(),\n optionIds: z.array(z.number().int().safe().positive()).min(1),\n})\n\nexport const AddCartItemParamsSchema = z.object({\n cartId: EntityIdSchema,\n variantId: z.number().int().safe().positive(),\n quantity: z.number().int().positive(),\n modifiers: z.array(CartItemModifierSchema).optional(),\n})\n\nexport const UpdateCartItemQuantityParamsSchema = z.object({\n cartId: EntityIdSchema,\n cartItemId: EntityIdSchema,\n quantity: z.number().int().nonnegative(),\n})\n\nexport const RemoveCartItemParamsSchema = z.object({\n cartId: EntityIdSchema,\n cartItemId: EntityIdSchema,\n})\n\nexport type StorefrontAddress = z.infer<typeof StorefrontAddressSchema>\nexport type StorefrontCartBundleItem = z.infer<typeof StorefrontCartBundleItemSchema>\nexport type StorefrontCartItem = z.infer<typeof StorefrontCartItemSchema>\nexport type StorefrontCartShippingMethod = z.infer<typeof StorefrontCartShippingMethodSchema>\nexport type StorefrontCartTotals = z.infer<typeof StorefrontCartTotalsSchema>\nexport type StorefrontCart = z.infer<typeof StorefrontCartSchema>\nexport type CreateCartParams = z.input<typeof CreateCartParamsSchema>\nexport type GetCartParams = z.input<typeof GetCartParamsSchema>\nexport type AddCartItemParams = z.input<typeof AddCartItemParamsSchema>\nexport type UpdateCartItemQuantityParams = z.input<typeof UpdateCartItemQuantityParamsSchema>\nexport type RemoveCartItemParams = z.input<typeof RemoveCartItemParamsSchema>\n","import type { Api } from '../libs/api'\nimport {\n type AddCartItemParams,\n AddCartItemParamsSchema,\n type CreateCartParams,\n CreateCartParamsSchema,\n type GetCartParams,\n GetCartParamsSchema,\n type RemoveCartItemParams,\n RemoveCartItemParamsSchema,\n StorefrontCartSchema,\n type UpdateCartItemQuantityParams,\n UpdateCartItemQuantityParamsSchema,\n} from '../models/storefront-cart'\n\nexport async function createCart(api: Api, params: CreateCartParams) {\n const input = CreateCartParamsSchema.parse(params)\n return api.post(\n 'carts',\n {\n currencyCode: input.currencyCode,\n salesChannelId: input.salesChannelId,\n email: input.email,\n },\n StorefrontCartSchema,\n )\n}\n\nexport async function getCart(api: Api, params: GetCartParams) {\n const input = GetCartParamsSchema.parse(params)\n return api.get(\n `carts/${encodeURIComponent(input.cartId)}`,\n StorefrontCartSchema,\n )\n}\n\nexport async function addCartItem(api: Api, params: AddCartItemParams) {\n const input = AddCartItemParamsSchema.parse(params)\n return api.post(\n `carts/${encodeURIComponent(input.cartId)}/items`,\n {\n variantId: input.variantId,\n quantity: input.quantity,\n modifiers: input.modifiers,\n },\n StorefrontCartSchema,\n )\n}\n\nexport async function updateCartItemQuantity(\n api: Api,\n params: UpdateCartItemQuantityParams,\n) {\n const input = UpdateCartItemQuantityParamsSchema.parse(params)\n return api.request(\n 'PATCH',\n `carts/${encodeURIComponent(input.cartId)}/items/${encodeURIComponent(input.cartItemId)}`,\n StorefrontCartSchema,\n { body: { quantity: input.quantity } },\n )\n}\n\nexport async function removeCartItem(api: Api, params: RemoveCartItemParams) {\n const input = RemoveCartItemParamsSchema.parse(params)\n return api.request(\n 'DELETE',\n `carts/${encodeURIComponent(input.cartId)}/items/${encodeURIComponent(input.cartItemId)}`,\n StorefrontCartSchema,\n )\n}\n","import { Api } from \"../libs/api\";\nimport {\n CollectionSchema,\n CollectionsSchema,\n type Collection,\n type Collections,\n} from \"../models/collections\";\n\n/** GET /v1/collections */\nexport async function getCollections(api: Api): Promise<Collections> {\n return api.get(\"collections\", CollectionsSchema);\n}\n\n/** GET /v1/collections/by-slug/:collectionSlug */\nexport async function getCollectionBySlug(\n api: Api,\n collectionSlug: string,\n): Promise<Collection> {\n return api.get(`collections/${encodeURIComponent(collectionSlug)}`, CollectionSchema);\n}\n","import type { Api } from '../libs/api'\nimport {\n CmsPageDetailsDtoSchema,\n type CmsPageDetailsDto,\n} from '../models/settings'\n\n/** GET /v1/pages/{slug} */\nexport async function getPageBySlug(\n api: Api,\n pageSlug: string,\n): Promise<CmsPageDetailsDto> {\n return api.get(`pages/${encodeURIComponent(pageSlug)}`, CmsPageDetailsDtoSchema)\n}\n","import { z } from 'zod'\nimport {\n EntityIdSchema,\n} from './ids'\nimport { StorefrontCartSchema } from './storefront-cart'\n\nexport const CartBuyerParamsSchema = z.object({\n cartId: EntityIdSchema,\n email: z.string().email(),\n firstName: z.string().min(1),\n lastName: z.string().min(1),\n phone: z.string().min(1),\n})\n\nexport type CartBuyerParams = z.input<typeof CartBuyerParamsSchema>\n\nexport const CartAddressWriteSchema = z.object({\n name: z.string().min(1),\n address1: z.string().min(1),\n city: z.string().min(1),\n countryCode: z.string().length(2),\n company: z.string().nullable().optional(),\n address2: z.string().nullable().optional(),\n province: z.string().nullable().optional(),\n postalCode: z.string().nullable().optional(),\n district: z.string().nullable().optional(),\n phone: z.string().nullable().optional(),\n latitude: z.number().nullable().optional(),\n longitude: z.number().nullable().optional(),\n geo: z\n .object({\n departmentCode: z.string().nullable().optional(),\n provinceCode: z.string().nullable().optional(),\n districtCode: z.string().nullable().optional(),\n })\n .nullable()\n .optional(),\n})\n\nexport type CartAddressWrite = z.input<typeof CartAddressWriteSchema>\n\nexport const CartAddressesParamsSchema = z.object({\n cartId: EntityIdSchema,\n shippingAddress: CartAddressWriteSchema,\n billingAddress: CartAddressWriteSchema,\n})\n\nexport type CartAddressesParams = z.input<typeof CartAddressesParamsSchema>\n\nexport const CartPaymentMethodSchema = z.object({\n code: z.string(),\n name: z.string(),\n description: z.string().nullable().optional(),\n kind: z.string(),\n providerMethodCode: z.string().nullable().optional(),\n isActive: z.boolean(),\n isDefault: z.boolean(),\n isManual: z.boolean(),\n sortOrder: z.number(),\n phoneNumber: z.string().nullable().optional(),\n accountHolder: z.string().nullable().optional(),\n qrImageUrl: z.string().nullable().optional(),\n})\n\nexport type CartPaymentMethod = z.infer<typeof CartPaymentMethodSchema>\n\nexport const StorefrontOrderBumpSchema = z.object({\n id: z.string(),\n productPublicId: z.coerce.string(),\n variantPublicId: z.coerce.string(),\n productName: z.string(),\n variantName: z.string().nullable().optional(),\n imageUrl: z.string().nullable().optional(),\n currencyCode: z.string(),\n regularPrice: z.number(),\n offerPrice: z.number(),\n badgeLabel: z.string().nullable().optional(),\n callToAction: z.string(),\n description: z.string().nullable().optional(),\n})\n\nexport type StorefrontOrderBump = z.infer<typeof StorefrontOrderBumpSchema>\n\nexport const CartCheckoutReadParamsSchema = z.object({\n cartId: EntityIdSchema,\n})\n\nexport type CartCheckoutReadParams = z.input<typeof CartCheckoutReadParamsSchema>\n\nexport const CartCheckoutReadResponseSchema = z.object({\n cart: StorefrontCartSchema,\n paymentMethods: z.object({\n methods: z.array(CartPaymentMethodSchema),\n }),\n orderBumps: z.array(StorefrontOrderBumpSchema).optional().default([]),\n})\n\nexport type CartCheckoutReadResponse = z.infer<typeof CartCheckoutReadResponseSchema>\n\nexport const CartCheckoutPaymentActionSchema = z\n .object({\n publicConfiguration: z\n .object({\n publishableKey: z.string().nullable().optional(),\n checkoutMode: z.string().nullable().optional(),\n phoneNumber: z.string().nullable().optional(),\n accountHolder: z.string().nullable().optional(),\n qrImageUrl: z.string().nullable().optional(),\n })\n .passthrough()\n .nullable()\n .optional(),\n url: z.string().nullable().optional(),\n html: z.string().nullable().optional(),\n clientSecret: z.string().nullable().optional(),\n qrCode: z.string().nullable().optional(),\n expiresAt: z.string().nullable().optional(),\n })\n .passthrough()\n\nexport const CartCheckoutPaymentSchema = z\n .object({\n transactionId: z.string(),\n paymentMethodCode: z.string(),\n providerId: z.string().nullable().optional(),\n status: z.string(),\n amount: z.number(),\n reference: z.string(),\n actionType: z.string(),\n receiptUrl: z.string().nullable().optional(),\n action: CartCheckoutPaymentActionSchema.nullable().optional(),\n })\n .passthrough()\n\nexport type CartCheckoutPayment = z.infer<typeof CartCheckoutPaymentSchema>\n\nexport const CartCheckoutResponseSchema = z\n .object({\n publicKey: z.string().optional(),\n publishableKey: z.string().optional(),\n stripePublicKey: z.string().optional(),\n clientSecret: z.string().optional(),\n intentClientSecret: z.string().optional(),\n orderId: z.coerce.string().optional(),\n orderGroup: z.string().optional(),\n orderIds: z.array(z.coerce.string()).optional(),\n payment: CartCheckoutPaymentSchema.optional(),\n cart: StorefrontCartSchema.optional(),\n })\n .passthrough()\n\nexport type CartCheckoutResponse = z.infer<typeof CartCheckoutResponseSchema>\n\nexport const CartCheckoutParamsSchema = z.object({\n cartId: EntityIdSchema,\n paymentMethodCode: z.string().min(1),\n externalRef: z.string().min(1),\n receiptUrl: z.string().min(1).optional(),\n})\n\nexport type CartCheckoutParams = z.input<typeof CartCheckoutParamsSchema>\n\nexport const ShippingRateSchema = z\n .object({\n shippingMethodId: z.string(),\n name: z.string(),\n displayName: z.string().optional(),\n type: z.string().optional(),\n price: z.number(),\n currency: z.string().optional(),\n sortOrder: z.number().optional(),\n rateId: z.string(),\n description: z.string().nullable().optional(),\n deliveryLocationId: z.string().nullable().optional(),\n deliveryLocationName: z.string().nullable().optional(),\n estimatedDeliveryDays: z.number().nullable().optional(),\n serviceCode: z.string().nullable().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .passthrough()\n\nexport type ShippingRate = z.infer<typeof ShippingRateSchema>\n\nexport const ShippingOptionGroupSchema = z\n .object({\n sellerId: z.string(),\n shippingProfileId: z.string().nullable().optional(),\n orderAmount: z.number().optional(),\n totalWeight: z.number().optional(),\n itemIds: z.array(z.string()).optional(),\n rates: z.array(ShippingRateSchema),\n })\n .passthrough()\n\nexport type ShippingOptionGroup = z.infer<typeof ShippingOptionGroupSchema>\n\nexport const ShippingOptionsResponseSchema = z.object({\n groups: z.array(ShippingOptionGroupSchema),\n})\n\nexport type ShippingOptionsResponse = z.infer<typeof ShippingOptionsResponseSchema>\n\nexport const GetShippingOptionsParamsSchema = z.object({\n cartId: EntityIdSchema,\n postalCode: z.string().min(1),\n})\n\nexport type GetShippingOptionsParams = z.input<typeof GetShippingOptionsParamsSchema>\n\nexport const PutShippingMethodParamsSchema = z.object({\n cartId: EntityIdSchema,\n rateId: z.string().min(1),\n shippingMethodId: z.string().min(1),\n serviceCode: z.string().nullable().optional(),\n sellerId: z.string().nullable().optional(),\n shippingProfileId: z.string().nullable().optional(),\n locationId: z.string().nullable().optional(),\n pickupPointId: z.string().nullable().optional(),\n scheduledDate: z.string().nullable().optional(),\n scheduledTime: z.string().nullable().optional(),\n})\n\nexport type PutShippingMethodParams = z.input<typeof PutShippingMethodParamsSchema>\n\nexport const CartPaymentReceiptResponseSchema = z.object({\n id: z.string(),\n url: z.string(),\n})\n\nexport type CartPaymentReceiptResponse = z.infer<typeof CartPaymentReceiptResponseSchema>\n\nexport type UploadPaymentReceiptParams = {\n cartId: string\n file: Blob\n fileName?: string\n}\n\nexport const CartPromotionCodeParamsSchema = z.object({\n cartId: EntityIdSchema,\n code: z.string().min(1),\n})\n\nexport type CartPromotionCodeParams = z.input<typeof CartPromotionCodeParamsSchema>\n","import type { Api } from '../libs/api'\nimport { StorefrontCartSchema } from '../models/storefront-cart'\nimport {\n CartAddressesParamsSchema,\n CartBuyerParamsSchema,\n CartCheckoutParamsSchema,\n CartCheckoutReadParamsSchema,\n CartCheckoutReadResponseSchema,\n CartCheckoutResponseSchema,\n CartPaymentReceiptResponseSchema,\n CartPromotionCodeParamsSchema,\n GetShippingOptionsParamsSchema,\n PutShippingMethodParamsSchema,\n ShippingOptionsResponseSchema,\n type CartAddressesParams,\n type CartBuyerParams,\n type CartCheckoutParams,\n type CartCheckoutReadParams,\n type CartCheckoutReadResponse,\n type CartCheckoutResponse,\n type CartPaymentReceiptResponse,\n type CartPromotionCodeParams,\n type GetShippingOptionsParams,\n type PutShippingMethodParams,\n type ShippingOptionsResponse,\n type UploadPaymentReceiptParams,\n} from '../models/storefront-checkout'\n\n/** GET /v1/carts/{id}/checkout */\nexport async function getCartCheckout(\n api: Api,\n params: CartCheckoutReadParams,\n): Promise<CartCheckoutReadResponse> {\n const input = CartCheckoutReadParamsSchema.parse(params)\n return api.get(\n `carts/${encodeURIComponent(input.cartId)}/checkout`,\n CartCheckoutReadResponseSchema,\n )\n}\n\n/** GET /v1/carts/{id}/shipping-options?postalCode= */\nexport async function getShippingOptions(\n api: Api,\n params: GetShippingOptionsParams,\n): Promise<ShippingOptionsResponse> {\n const input = GetShippingOptionsParamsSchema.parse(params)\n return api.get(\n `carts/${encodeURIComponent(input.cartId)}/shipping-options`,\n ShippingOptionsResponseSchema,\n { query: { postalCode: input.postalCode } },\n )\n}\n\n/** PUT /v1/carts/{id}/shipping-method */\nexport async function putCartShippingMethod(\n api: Api,\n params: PutShippingMethodParams,\n) {\n const input = PutShippingMethodParamsSchema.parse(params)\n const { cartId, ...body } = input\n return api.request(\n 'PUT',\n `carts/${encodeURIComponent(cartId)}/shipping-method`,\n StorefrontCartSchema,\n { body },\n )\n}\n\n/** PATCH /v1/carts/{id}/buyer */\nexport async function patchCartBuyer(api: Api, params: CartBuyerParams) {\n const input = CartBuyerParamsSchema.parse(params)\n const { cartId, ...body } = input\n return api.request(\n 'PATCH',\n `carts/${encodeURIComponent(cartId)}/buyer`,\n StorefrontCartSchema,\n { body },\n )\n}\n\n/** PATCH /v1/carts/{id}/addresses */\nexport async function patchCartAddresses(api: Api, params: CartAddressesParams) {\n const input = CartAddressesParamsSchema.parse(params)\n const { cartId, shippingAddress, billingAddress } = input\n return api.request(\n 'PATCH',\n `carts/${encodeURIComponent(cartId)}/addresses`,\n StorefrontCartSchema,\n { body: { shippingAddress, billingAddress } },\n )\n}\n\n/** POST /v1/carts/{id}/checkout */\nexport async function checkoutCart(\n api: Api,\n params: CartCheckoutParams,\n): Promise<CartCheckoutResponse> {\n const input = CartCheckoutParamsSchema.parse(params)\n const { cartId, ...body } = input\n return api.post(\n `carts/${encodeURIComponent(cartId)}/checkout`,\n body,\n CartCheckoutResponseSchema,\n )\n}\n\n/** POST /v1/carts/{id}/payment-receipt (multipart) */\nexport async function uploadPaymentReceipt(\n api: Api,\n params: UploadPaymentReceiptParams,\n): Promise<CartPaymentReceiptResponse> {\n const cartId = CartCheckoutReadParamsSchema.shape.cartId.parse(params.cartId)\n if (!(params.file instanceof Blob)) {\n throw new TypeError('uploadPaymentReceipt requiere un archivo (Blob/File)')\n }\n const form = new FormData()\n const name = params.fileName ?? (params.file instanceof File ? params.file.name : 'receipt')\n form.append('file', params.file, name)\n return api.postForm(\n `carts/${encodeURIComponent(cartId)}/payment-receipt`,\n form,\n CartPaymentReceiptResponseSchema,\n )\n}\n\n/** POST /v1/carts/{id}/promotion-codes */\nexport async function addCartPromotionCode(\n api: Api,\n params: CartPromotionCodeParams,\n) {\n const input = CartPromotionCodeParamsSchema.parse(params)\n return api.post(\n `carts/${encodeURIComponent(input.cartId)}/promotion-codes`,\n { code: input.code },\n StorefrontCartSchema,\n )\n}\n\n/** DELETE /v1/carts/{id}/promotion-codes/{code} */\nexport async function removeCartPromotionCode(\n api: Api,\n params: CartPromotionCodeParams,\n) {\n const input = CartPromotionCodeParamsSchema.parse(params)\n return api.request(\n 'DELETE',\n `carts/${encodeURIComponent(input.cartId)}/promotion-codes/${encodeURIComponent(input.code)}`,\n StorefrontCartSchema,\n )\n}\n","import { z } from 'zod'\nimport {\n EntityIdSchema,\n NullableEntityIdSchema,\n} from './ids'\n\n/** País ISO 3166-1 alpha-2 (`GET /v1/geo/countries`). */\nexport const CountrySchema = z\n .object({\n code: z.string().length(2),\n name: z.string().min(1),\n })\n .strict()\n\nexport type Country = z.infer<typeof CountrySchema>\n\nexport const CountriesSchema = z.array(CountrySchema)\n\nexport type Countries = z.infer<typeof CountriesSchema>\n\n/** Nivel administrativo geo (`level1` = departamento, etc.). */\nexport const GeoDivisionTypeSchema = z.enum(['level1', 'level2', 'level3'])\n\nexport type GeoDivisionType = z.infer<typeof GeoDivisionTypeSchema>\n\n/** División administrativa (`GET /v1/geo/departments`, …). */\nexport const GeoDivisionSchema = z\n .object({\n id: EntityIdSchema,\n countryCode: z.string().length(2),\n type: GeoDivisionTypeSchema,\n code: z.string().min(1),\n name: z.string().min(1),\n parentId: NullableEntityIdSchema,\n source: z.string().min(1),\n })\n .strict()\n\nexport type GeoDivision = z.infer<typeof GeoDivisionSchema>\n\n/** Alias de departamento (level1). */\nexport const DepartmentSchema = GeoDivisionSchema\nexport type Department = GeoDivision\n\nexport const DepartmentsSchema = z.array(DepartmentSchema)\nexport type Departments = z.infer<typeof DepartmentsSchema>\n\n/** Query de `GET /v1/geo/departments`. */\nexport const GetDepartmentsParamsSchema = z.object({\n countryCode: z.string().length(2),\n source: z.string().min(1).default('inei'),\n search: z.string().default(''),\n limit: z.number().int().positive().max(500).default(200),\n})\n\nexport type GetDepartmentsParams = z.input<typeof GetDepartmentsParamsSchema>\nexport type GetDepartmentsParamsParsed = z.output<typeof GetDepartmentsParamsSchema>\n\n/** Alias de provincia (level2). */\nexport const ProvinceSchema = GeoDivisionSchema\nexport type Province = GeoDivision\n\nexport const ProvincesSchema = z.array(ProvinceSchema)\nexport type Provinces = z.infer<typeof ProvincesSchema>\n\n/** Query de `GET /v1/geo/provinces`. */\nexport const GetProvincesParamsSchema = z.object({\n countryCode: z.string().length(2),\n departmentCode: z.string().min(1),\n source: z.string().min(1).default('inei'),\n search: z.string().default(''),\n limit: z.number().int().positive().max(500).default(200),\n})\n\nexport type GetProvincesParams = z.input<typeof GetProvincesParamsSchema>\nexport type GetProvincesParamsParsed = z.output<typeof GetProvincesParamsSchema>\n\n/** Alias de distrito (level3). */\nexport const DistrictSchema = GeoDivisionSchema\nexport type District = GeoDivision\n\nexport const DistrictsSchema = z.array(DistrictSchema)\nexport type Districts = z.infer<typeof DistrictsSchema>\n\n/** Query de `GET /v1/geo/districts`. */\nexport const GetDistrictsParamsSchema = z.object({\n countryCode: z.string().length(2),\n provinceCode: z.string().min(1),\n source: z.string().min(1).default('inei'),\n search: z.string().default(''),\n limit: z.number().int().positive().max(500).default(200),\n})\n\nexport type GetDistrictsParams = z.input<typeof GetDistrictsParamsSchema>\nexport type GetDistrictsParamsParsed = z.output<typeof GetDistrictsParamsSchema>\n","import type { Api } from '../libs/api'\nimport {\n CountriesSchema,\n DepartmentsSchema,\n DistrictsSchema,\n GetDepartmentsParamsSchema,\n GetDistrictsParamsSchema,\n GetProvincesParamsSchema,\n ProvincesSchema,\n type Countries,\n type Departments,\n type Districts,\n type GetDepartmentsParams,\n type GetDistrictsParams,\n type GetProvincesParams,\n type Provinces,\n} from '../models/geo'\n\n/** GET /v1/geo/countries */\nexport async function getCountries(api: Api): Promise<Countries> {\n return api.get('geo/countries', CountriesSchema)\n}\n\n/** GET /v1/geo/departments?countryCode=&source=&search=&limit= */\nexport async function getDepartments(\n api: Api,\n params: GetDepartmentsParams,\n): Promise<Departments> {\n const input = GetDepartmentsParamsSchema.parse(params)\n return api.get('geo/departments', DepartmentsSchema, {\n query: {\n countryCode: input.countryCode,\n source: input.source,\n search: input.search,\n limit: input.limit,\n },\n })\n}\n\n/** GET /v1/geo/provinces?countryCode=&departmentCode=&source=&search=&limit= */\nexport async function getProvinces(\n api: Api,\n params: GetProvincesParams,\n): Promise<Provinces> {\n const input = GetProvincesParamsSchema.parse(params)\n return api.get('geo/provinces', ProvincesSchema, {\n query: {\n countryCode: input.countryCode,\n departmentCode: input.departmentCode,\n source: input.source,\n search: input.search,\n limit: input.limit,\n },\n })\n}\n\n/** GET /v1/geo/districts?countryCode=&provinceCode=&source=&search=&limit= */\nexport async function getDistricts(\n api: Api,\n params: GetDistrictsParams,\n): Promise<Districts> {\n const input = GetDistrictsParamsSchema.parse(params)\n return api.get('geo/districts', DistrictsSchema, {\n query: {\n countryCode: input.countryCode,\n provinceCode: input.provinceCode,\n source: input.source,\n search: input.search,\n limit: input.limit,\n },\n })\n}\n","import { z } from 'zod'\n\n/** Payload alineado con POST/PUT `/v1/customer/me/addresses` (vía proxy `customer/addresses`). */\nexport const CustomerAddressUpsertInputSchema = z.object({\n addressKey: z.string().trim().min(1),\n countryIsoCode: z.string().trim().length(2),\n addressLine: z.string().trim().min(1),\n addressNumber: z.string().trim().min(1),\n department: z.string().trim().min(1),\n province: z.string().trim().min(1),\n district: z.string().trim().min(1),\n phone: z.string().trim(),\n cellPhone: z.string().trim(),\n postalCode: z.string().trim().min(1),\n reference: z.string().trim(),\n latitude: z.number().nullable(),\n longitude: z.number().nullable(),\n isDefault: z.boolean(),\n})\n\nexport type CustomerAddressUpsertInput = z.infer<typeof CustomerAddressUpsertInputSchema>\n\n/** Dirección en listados / respuestas (id presente cuando el upstream lo expone). */\nexport const CustomerAddressSchema = CustomerAddressUpsertInputSchema.extend({\n id: z.union([z.string(), z.number()]).transform(String).optional(),\n})\n\nexport type CustomerAddress = z.infer<typeof CustomerAddressSchema>\n\nexport const CustomerAddressesSchema = z.array(CustomerAddressSchema)\n\nexport type CustomerAddresses = z.infer<typeof CustomerAddressesSchema>\n\n/** Dirección guardada con id (requerido para PUT/DELETE). */\nexport type CustomerSavedAddress = CustomerAddressUpsertInput & {\n id: string\n}\n\nexport function toCustomerSavedAddresses(\n addresses: CustomerAddresses,\n): CustomerSavedAddress[] {\n const saved: CustomerSavedAddress[] = []\n for (const address of addresses) {\n if (!address.id?.trim()) continue\n const { id, ...rest } = address\n saved.push({ id: id.trim(), ...rest })\n }\n return saved\n}\n","import { z } from 'zod'\nimport type { Api } from '../libs/api'\nimport {\n CustomerAddressSchema,\n CustomerAddressesSchema,\n CustomerAddressUpsertInputSchema,\n type CustomerAddresses,\n type CustomerAddressUpsertInput,\n} from '../models/customer-address'\n\n/**\n * Rutas privadas de customer addresses.\n * Upstream documentado como `/v1/customer/me/addresses`; el proxy storefront\n * usa `customer/addresses` (mismo contrato que el storefront de referencia).\n */\nconst ADDRESSES_PATH = 'customer/addresses'\n\n/** POST/PUT a menudo responde solo `{ id }` (no el body completo). */\nexport const CustomerAddressMutationResponseSchema = z.union([\n CustomerAddressSchema,\n z.object({\n id: z.union([z.string(), z.number()]).transform(String),\n }),\n z.null(),\n])\n\nexport type CustomerAddressMutationResponse = z.infer<\n typeof CustomerAddressMutationResponseSchema\n>\n\nexport type CustomerAddressRequestOptions = {\n headers?: Record<string, string>\n signal?: AbortSignal\n}\n\n/** GET /v1/customer/me/addresses → proxy `customer/addresses` */\nexport async function getCustomerAddresses(\n api: Api,\n options: CustomerAddressRequestOptions = {},\n): Promise<CustomerAddresses> {\n return api.get(ADDRESSES_PATH, CustomerAddressesSchema, {\n headers: options.headers,\n signal: options.signal,\n })\n}\n\n/** POST /v1/customer/me/addresses → proxy `customer/addresses` */\nexport async function createCustomerAddress(\n api: Api,\n data: CustomerAddressUpsertInput,\n options: CustomerAddressRequestOptions = {},\n): Promise<CustomerAddressMutationResponse> {\n const payload = CustomerAddressUpsertInputSchema.parse(data)\n return api.post(ADDRESSES_PATH, payload, CustomerAddressMutationResponseSchema, {\n headers: options.headers,\n signal: options.signal,\n })\n}\n\n/** PUT /v1/customer/me/addresses/{id} → proxy `customer/addresses/{id}` */\nexport async function updateCustomerAddress(\n api: Api,\n addressId: string,\n data: CustomerAddressUpsertInput,\n options: CustomerAddressRequestOptions = {},\n): Promise<CustomerAddressMutationResponse> {\n const id = addressId.trim()\n if (!id) throw new Error('addressId requerido')\n const payload = CustomerAddressUpsertInputSchema.parse(data)\n return api.request(\n 'PUT',\n `${ADDRESSES_PATH}/${encodeURIComponent(id)}`,\n CustomerAddressMutationResponseSchema,\n {\n body: payload,\n headers: options.headers,\n signal: options.signal,\n },\n )\n}\n\n/** DELETE /v1/customer/me/addresses/{id} → proxy `customer/addresses/{id}` */\nexport async function deleteCustomerAddress(\n api: Api,\n addressId: string,\n options: CustomerAddressRequestOptions = {},\n): Promise<void> {\n const id = addressId.trim()\n if (!id) throw new Error('addressId requerido')\n await api.request(\n 'DELETE',\n `${ADDRESSES_PATH}/${encodeURIComponent(id)}`,\n z.null(),\n {\n headers: options.headers,\n signal: options.signal,\n },\n )\n}\n","import { z } from 'zod'\n\nconst DEFAULT_COUNTRY_CODE = 'PE'\n\n/** Cuerpo de `POST /v1/customer/register` (proxy `customer/register`). */\nexport const CustomerRegisterRequestSchema = z.object({\n email: z.string().email(),\n firstName: z.string().trim().min(1),\n lastName: z.string().trim().min(1),\n countryIsoCode: z.string().trim().length(2),\n password: z.string().min(1),\n phone: z.string().trim().min(1).optional(),\n})\n\nexport type CustomerRegisterRequest = z.infer<typeof CustomerRegisterRequestSchema>\n\n/** Cuerpo de `PATCH /v1/customer` (proxy `customer`). */\nexport const CustomerProfilePatchSchema = z.object({\n firstName: z.string().trim().min(1),\n lastName: z.string().trim().min(1),\n phone: z.string().trim(),\n identificationNumber: z.string().nullable(),\n identificationType: z.string().nullable(),\n entityName: z.string().nullable(),\n entityIdentificationNumber: z.string().nullable(),\n gender: z.string().nullable(),\n role: z.string().nullable(),\n companyName: z.string().nullable(),\n dateOfBirth: z.string().nullable(),\n consent: z.boolean(),\n countryIsoCode: z.string().trim().length(2),\n})\n\nexport type CustomerProfilePatch = z.infer<typeof CustomerProfilePatchSchema>\n\n/** Perfil mostrado en cuenta (subset de GET customer). */\nexport const CustomerProfileSchema = z.object({\n firstName: z.string(),\n lastName: z.string(),\n phone: z.string(),\n email: z.string().email(),\n identificationNumber: z.string().nullable(),\n identificationType: z.string().nullable(),\n countryIsoCode: z.string(),\n consent: z.boolean(),\n entityName: z.string().nullable(),\n entityIdentificationNumber: z.string().nullable(),\n gender: z.string().nullable(),\n role: z.string().nullable(),\n companyName: z.string().nullable(),\n dateOfBirth: z.string().nullable(),\n})\n\nexport type CustomerProfile = z.infer<typeof CustomerProfileSchema>\n\nconst nullableString = z.string().nullable().optional().transform((v) => v ?? null)\n\n/** Respuesta de `GET /v1/customer/me` (proxy `customer`). */\nexport const CustomerMeSchema = z\n .object({\n id: z.union([z.string(), z.number()]),\n storeId: z.string().optional(),\n email: z.string().email(),\n firstName: z.string(),\n lastName: z.string(),\n phone: z\n .union([z.string(), z.null()])\n .optional()\n .transform((v) => v ?? ''),\n identificationNumber: nullableString,\n identificationType: nullableString,\n entityName: nullableString,\n entityIdentificationNumber: nullableString,\n gender: nullableString,\n role: nullableString,\n companyName: nullableString,\n dateOfBirth: nullableString,\n countryIsoCode: z\n .string()\n .optional()\n .transform((v) => (v?.trim().length === 2 ? v.trim() : DEFAULT_COUNTRY_CODE)),\n consent: z.boolean().optional().transform((v) => v ?? false),\n })\n .passthrough()\n\nexport type CustomerMe = z.infer<typeof CustomerMeSchema>\n\nexport function customerMeToProfile(me: CustomerMe): CustomerProfile {\n return CustomerProfileSchema.parse({\n firstName: me.firstName,\n lastName: me.lastName,\n phone: me.phone,\n email: me.email,\n identificationNumber: me.identificationNumber,\n identificationType: me.identificationType,\n countryIsoCode: me.countryIsoCode,\n consent: me.consent,\n entityName: me.entityName,\n entityIdentificationNumber: me.entityIdentificationNumber,\n gender: me.gender,\n role: me.role,\n companyName: me.companyName,\n dateOfBirth: me.dateOfBirth,\n })\n}\n\nexport function customerMeToProfilePatch(me: CustomerMe): CustomerProfilePatch {\n return CustomerProfilePatchSchema.parse({\n firstName: me.firstName,\n lastName: me.lastName,\n phone: me.phone,\n identificationNumber: me.identificationNumber,\n identificationType: me.identificationType,\n entityName: me.entityName,\n entityIdentificationNumber: me.entityIdentificationNumber,\n gender: me.gender,\n role: me.role,\n companyName: me.companyName,\n dateOfBirth: me.dateOfBirth,\n consent: me.consent,\n countryIsoCode: me.countryIsoCode || DEFAULT_COUNTRY_CODE,\n })\n}\n\nexport function customerProfileToPatch(profile: CustomerProfile): CustomerProfilePatch {\n return CustomerProfilePatchSchema.parse({\n firstName: profile.firstName,\n lastName: profile.lastName,\n phone: profile.phone,\n identificationNumber: profile.identificationNumber,\n identificationType: profile.identificationType,\n entityName: profile.entityName,\n entityIdentificationNumber: profile.entityIdentificationNumber,\n gender: profile.gender,\n role: profile.role,\n companyName: profile.companyName,\n dateOfBirth: profile.dateOfBirth,\n consent: profile.consent,\n countryIsoCode: profile.countryIsoCode || DEFAULT_COUNTRY_CODE,\n })\n}\n","import { z } from 'zod'\nimport type { Api } from '../libs/api'\nimport {\n CustomerMeSchema,\n CustomerProfilePatchSchema,\n CustomerRegisterRequestSchema,\n type CustomerMe,\n type CustomerProfilePatch,\n type CustomerRegisterRequest,\n} from '../models/customer-profile'\n\n/**\n * Perfil customer autenticado.\n * GET `/v1/customer/me` y PATCH `/v1/customer` vía proxy `customer`.\n * Registro público: POST `/v1/customer/register` → proxy `customer/register`.\n */\nconst CUSTOMER_PATH = 'customer'\nconst CUSTOMER_REGISTER_PATH = 'customer/register'\n\nexport type CustomerRequestOptions = {\n headers?: Record<string, string>\n signal?: AbortSignal\n}\n\n/** POST /v1/customer/register → proxy `customer/register` (público). */\nexport async function registerCustomer(\n api: Api,\n data: CustomerRegisterRequest,\n options: CustomerRequestOptions = {},\n): Promise<unknown> {\n const payload = CustomerRegisterRequestSchema.parse(data)\n return api.post(CUSTOMER_REGISTER_PATH, payload, z.unknown(), {\n headers: options.headers,\n signal: options.signal,\n })\n}\n\n/** GET /v1/customer/me → proxy `customer` */\nexport async function getCustomerMe(\n api: Api,\n options: CustomerRequestOptions = {},\n): Promise<CustomerMe> {\n return api.get(CUSTOMER_PATH, CustomerMeSchema, {\n headers: options.headers,\n signal: options.signal,\n })\n}\n\n/** PATCH /v1/customer → proxy `customer` (204). */\nexport async function patchCustomer(\n api: Api,\n data: CustomerProfilePatch,\n options: CustomerRequestOptions = {},\n): Promise<void> {\n const payload = CustomerProfilePatchSchema.parse(data)\n await api.request('PATCH', CUSTOMER_PATH, z.null(), {\n body: payload,\n headers: options.headers,\n signal: options.signal,\n })\n}\n","import { z } from 'zod'\n\nexport const CustomerOrderShippingAddressSchema = z\n .object({\n name: z.string().nullable().optional(),\n company: z.string().nullable().optional(),\n address1: z.string(),\n address2: z.string().nullable().optional(),\n city: z.string().nullable().optional(),\n countryCode: z.string().min(2).max(2),\n province: z.string().nullable().optional(),\n postalCode: z.string().nullable().optional(),\n district: z.string().nullable().optional(),\n phone: z.string().nullable().optional(),\n latitude: z.number().nullable().optional(),\n longitude: z.number().nullable().optional(),\n metadata: z.record(z.unknown()).nullable().optional(),\n })\n .passthrough()\n\nexport type CustomerOrderShippingAddress = z.infer<\n typeof CustomerOrderShippingAddressSchema\n>\n\nexport const CustomerOrderLineItemSchema = z.object({\n id: z.string(),\n orderId: z.coerce.string(),\n productId: z.coerce.string().nullable(),\n variantId: z.coerce.string().nullable(),\n title: z.string(),\n subtitle: z.string().nullable().optional(),\n thumbnail: z.string().nullable().optional(),\n variantTitle: z.string().nullable().optional(),\n productHandle: z.string().nullable().optional(),\n quantity: z.number(),\n unitPrice: z.number(),\n total: z.number(),\n status: z.string(),\n})\n\nexport type CustomerOrderLineItem = z.infer<typeof CustomerOrderLineItemSchema>\n\n/** GET /v1/customer/orders (listado agrupado vía proxy `customer/orders`). */\nexport const CustomerOrderListItemSchema = z.object({\n orderId: z.coerce.string(),\n orderNumber: z.string(),\n orderGroup: z.string(),\n orderIds: z.array(z.coerce.string()),\n status: z.string(),\n total: z.number(),\n totalPaid: z.number(),\n currencyCode: z.string(),\n orderDate: z.string(),\n createdOn: z.string(),\n updatedOn: z.string().nullable().optional(),\n paymentAt: z.string().nullable().optional(),\n shippingAddress: CustomerOrderShippingAddressSchema.nullable().optional(),\n shippingAddressSummary: z.string().nullable().optional(),\n items: z.array(CustomerOrderLineItemSchema),\n})\n\nexport type CustomerOrderListItem = z.infer<typeof CustomerOrderListItemSchema>\n/** @deprecated Alias del tipo canónico. */\nexport type CustomerOrderListItemDto = CustomerOrderListItem\n\nexport const CustomerOrderListSchema = z.array(CustomerOrderListItemSchema)\n\nexport type CustomerOrderList = z.infer<typeof CustomerOrderListSchema>\n\nexport const CustomerOrderPaymentSchema = z.object({\n id: z.string(),\n paymentMethod: z.string(),\n paymentCode: z.string(),\n amount: z.number(),\n paymentStatus: z.string(),\n receiptUrl: z.string().nullable().optional(),\n createdOn: z.string(),\n})\n\nexport type CustomerOrderPayment = z.infer<typeof CustomerOrderPaymentSchema>\n\nexport const CustomerOrderStatusTimelineSchema = z.object({\n key: z.string(),\n label: z.string(),\n occurredAt: z.string(),\n description: z.string().nullable().optional(),\n status: z.string(),\n source: z.string(),\n})\n\nexport type CustomerOrderStatusTimelineEntry = z.infer<\n typeof CustomerOrderStatusTimelineSchema\n>\n\n/** GET /v1/customer/orders/{orderId} (detalle vía proxy). */\nexport const CustomerOrderDetailSchema = z.object({\n id: z.coerce.string(),\n orderNumber: z.string(),\n orderGroup: z.string(),\n status: z.string(),\n total: z.number(),\n totalPaid: z.number(),\n currencyCode: z.string(),\n orderDate: z.string(),\n createdOn: z.string(),\n updatedOn: z.string().nullable().optional(),\n paymentAt: z.string().nullable().optional(),\n subTotal: z.number(),\n discount: z.number(),\n shipping: z.number(),\n tax: z.number(),\n email: z.string(),\n phone: z.string(),\n firstName: z.string(),\n lastName: z.string(),\n shippingAddress: CustomerOrderShippingAddressSchema.nullable().optional(),\n shippingAddressSummary: z.string().nullable().optional(),\n billingAddress: CustomerOrderShippingAddressSchema.nullable().optional(),\n items: z.array(CustomerOrderLineItemSchema),\n payments: z.array(CustomerOrderPaymentSchema),\n statusTimeline: z.array(CustomerOrderStatusTimelineSchema),\n})\n\nexport type CustomerOrderDetail = z.infer<typeof CustomerOrderDetailSchema>\n/** @deprecated Alias del tipo canónico. */\nexport type CustomerOrderDetailDto = CustomerOrderDetail\n\n/** Etiquetas en español para estados de pedido (upstream suele enviar PascalCase). */\nconst ORDER_STATUS_LABELS: Record<string, string> = {\n New: 'Pedido realizado',\n Confirmed: 'Confirmado',\n Processing: 'En preparación',\n InTransit: 'En camino',\n Delivered: 'Entregado',\n Cancelled: 'Cancelado',\n Canceled: 'Cancelado',\n Refunded: 'Reembolsado',\n Pending: 'Pendiente',\n PendingToConfirm: 'Pendiente de confirmación',\n Paid: 'Pagado',\n Captured: 'Pago confirmado',\n}\n\nexport function formatCustomerOrderStatus(status: string): string {\n const trimmed = status.trim()\n if (!trimmed) return 'Desconocido'\n return (\n ORDER_STATUS_LABELS[trimmed] ??\n trimmed.replace(/([A-Z])/g, ' $1').trim()\n )\n}\n\nexport function customerOrderStatusTone(\n status: string,\n): 'default' | 'success' | 'warning' | 'danger' | 'info' {\n const s = status.toLowerCase()\n if (s.includes('cancel') || s.includes('refund')) return 'danger'\n if (s.includes('deliver')) return 'success'\n if (s.includes('transit') || s.includes('ship')) return 'info'\n if (s.includes('confirm') || s.includes('paid') || s.includes('capture'))\n return 'success'\n if (s.includes('pending') || s.includes('new') || s.includes('process'))\n return 'warning'\n return 'default'\n}\n\nexport function formatOrderDate(iso: string, locale = 'es-PE'): string {\n const d = new Date(iso)\n if (Number.isNaN(d.getTime())) return iso\n return new Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n }).format(d)\n}\n\nexport function formatOrderDateTime(iso: string, locale = 'es-PE'): string {\n const d = new Date(iso)\n if (Number.isNaN(d.getTime())) return iso\n return new Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n }).format(d)\n}\n","import type { Api } from '../libs/api'\nimport {\n CustomerOrderDetailSchema,\n CustomerOrderListSchema,\n type CustomerOrderDetail,\n type CustomerOrderList,\n} from '../models/customer-order'\n\nconst ORDERS_PATH = 'customer/orders'\n\nexport type CustomerOrderRequestOptions = {\n headers?: Record<string, string>\n signal?: AbortSignal\n}\n\n/** GET /v1/customer/orders → proxy `customer/orders` */\nexport async function getCustomerOrders(\n api: Api,\n options: CustomerOrderRequestOptions = {},\n): Promise<CustomerOrderList> {\n return api.get(ORDERS_PATH, CustomerOrderListSchema, {\n headers: options.headers,\n signal: options.signal,\n })\n}\n\n/** GET /v1/customer/orders/{orderId} → proxy `customer/orders/{orderId}` */\nexport async function getCustomerOrder(\n api: Api,\n orderId: string,\n options: CustomerOrderRequestOptions = {},\n): Promise<CustomerOrderDetail> {\n const id = orderId.trim()\n if (!id) throw new Error('orderId requerido')\n return api.get(\n `${ORDERS_PATH}/${encodeURIComponent(id)}`,\n CustomerOrderDetailSchema,\n {\n headers: options.headers,\n signal: options.signal,\n },\n )\n}\n","import { createApi, type Api, type CreateApiOptions } from './libs/api'\nimport { type Collection, type Collections } from './models/collections'\nimport {\n type ProductDetail,\n type ProductDetailParams,\n type ProductSummary,\n type ProductsParamsInput,\n type ProductsResponse,\n type RelatedProductsParams,\n} from './models/products'\nimport type {\n ProductAutocompleteParams,\n ProductSuggestion,\n} from './models/search'\nimport type {\n CreateProductReviewParams,\n ListProductReviewsParams,\n StorefrontReview,\n StorefrontReviews,\n} from './models/storefront-reviews'\nimport type {\n AddCartItemParams,\n CreateCartParams,\n GetCartParams,\n RemoveCartItemParams,\n StorefrontCart,\n UpdateCartItemQuantityParams,\n} from './models/storefront-cart'\nimport type {\n CartAddressesParams,\n CartBuyerParams,\n CartCheckoutParams,\n CartCheckoutReadParams,\n CartCheckoutReadResponse,\n CartCheckoutResponse,\n CartPaymentReceiptResponse,\n CartPromotionCodeParams,\n GetShippingOptionsParams,\n PutShippingMethodParams,\n ShippingOptionsResponse,\n UploadPaymentReceiptParams,\n} from './models/storefront-checkout'\nimport type {\n Countries,\n Departments,\n Districts,\n GetDepartmentsParams,\n GetDistrictsParams,\n GetProvincesParams,\n Provinces,\n} from './models/geo'\nimport type {\n CustomerAddress,\n CustomerAddresses,\n CustomerAddressUpsertInput,\n} from './models/customer-address'\nimport type { CustomerAddressRequestOptions } from './services/customer-address.service'\nimport type {\n CustomerAddressMutationResponse,\n} from './services/customer-address.service'\nimport type { CustomerMe, CustomerProfilePatch } from './models/customer-profile'\nimport type { CustomerRequestOptions } from './services/customer.service'\nimport type {\n CustomerOrderDetail,\n CustomerOrderList,\n} from './models/customer-order'\nimport type { CustomerOrderRequestOptions } from './services/customer-order.service'\nimport {\n StorefrontSettingsSchema,\n type CmsPageDetailsDto,\n type StorefrontSettings,\n} from './models/settings'\nimport {\n getProductBySlug as getProductBySlugService,\n getProducts as getProductsService,\n getRelatedProducts as getRelatedProductsService,\n} from './services/product.service'\nimport { autocompleteProducts as autocompleteProductsService } from './services/search.service'\nimport {\n createProductReview as createProductReviewService,\n listProductReviews as listProductReviewsService,\n} from './services/review.service'\nimport {\n addCartItem as addCartItemService,\n createCart as createCartService,\n getCart as getCartService,\n removeCartItem as removeCartItemService,\n updateCartItemQuantity as updateCartItemQuantityService,\n} from './services/cart.service'\nimport {\n getCollections as getCollectionsService,\n getCollectionBySlug as getCollectionBySlugService,\n} from './services/collection.service'\nimport { getPageBySlug as getPageBySlugService } from './services/page.service'\nimport {\n addCartPromotionCode as addCartPromotionCodeService,\n checkoutCart as checkoutCartService,\n getCartCheckout as getCartCheckoutService,\n getShippingOptions as getShippingOptionsService,\n patchCartAddresses as patchCartAddressesService,\n patchCartBuyer as patchCartBuyerService,\n putCartShippingMethod as putCartShippingMethodService,\n removeCartPromotionCode as removeCartPromotionCodeService,\n uploadPaymentReceipt as uploadPaymentReceiptService,\n} from './services/checkout.service'\nimport {\n getCountries as getCountriesService,\n getDepartments as getDepartmentsService,\n getDistricts as getDistrictsService,\n getProvinces as getProvincesService,\n} from './services/geo.service'\nimport {\n createCustomerAddress as createCustomerAddressService,\n deleteCustomerAddress as deleteCustomerAddressService,\n getCustomerAddresses as getCustomerAddressesService,\n updateCustomerAddress as updateCustomerAddressService,\n} from './services/customer-address.service'\nimport {\n getCustomerMe as getCustomerMeService,\n patchCustomer as patchCustomerService,\n} from './services/customer.service'\nimport {\n getCustomerOrder as getCustomerOrderService,\n getCustomerOrders as getCustomerOrdersService,\n} from './services/customer-order.service'\n\nconst DEFAULT_SETTINGS_CACHE_TTL_MS = 30_000\n\nexport interface CreateClientOptions extends CreateApiOptions {\n /**\n * Dominio/slug de la tienda (header x-Store-Domain).\n * Debe venir de ecomiq.config.js (`config.domain`).\n * Acepta `marketplace`, `marketplace.ecomiq.app` o `marketplace.pe`.\n */\n domain: string\n settingsCacheTtlMs?: number\n}\n\nexport interface StorefrontClient extends Api {\n getSettings(): Promise<StorefrontSettings>\n /** store.id desde settings (asegura cache). */\n getStoreId(): Promise<string>\n /** GET /v1/collections */\n getCollections(): Promise<Collections>\n /** GET /v1/collections/by-slug/:slug */\n getCollectionBySlug(slug: string): Promise<Collection>\n /** GET /v1/pages/{slug} */\n getPageBySlug(slug: string): Promise<CmsPageDetailsDto>\n /** Invalida el cache de settings. */\n clearCache(): void\n getProducts(params?: ProductsParamsInput): Promise<ProductsResponse>\n /** GET product by slug con x-Store-Id. */\n getProductBySlug(slug: string, params?: ProductDetailParams): Promise<ProductDetail>\n getRelatedProducts(params: RelatedProductsParams): Promise<ProductSummary[]>\n autocompleteProducts(params: ProductAutocompleteParams): Promise<ProductSuggestion[]>\n listProductReviews(params: ListProductReviewsParams): Promise<StorefrontReviews>\n createProductReview(params: CreateProductReviewParams): Promise<StorefrontReview>\n createCart(params: CreateCartParams): Promise<StorefrontCart>\n getCart(params: GetCartParams): Promise<StorefrontCart>\n addCartItem(params: AddCartItemParams): Promise<StorefrontCart>\n updateCartItemQuantity(params: UpdateCartItemQuantityParams): Promise<StorefrontCart>\n removeCartItem(params: RemoveCartItemParams): Promise<StorefrontCart>\n /** GET /v1/carts/{id}/checkout */\n getCartCheckout(params: CartCheckoutReadParams): Promise<CartCheckoutReadResponse>\n /** GET /v1/carts/{id}/shipping-options */\n getShippingOptions(params: GetShippingOptionsParams): Promise<ShippingOptionsResponse>\n /** PUT /v1/carts/{id}/shipping-method */\n putCartShippingMethod(params: PutShippingMethodParams): Promise<StorefrontCart>\n /** PATCH /v1/carts/{id}/buyer */\n patchCartBuyer(params: CartBuyerParams): Promise<StorefrontCart>\n /** PATCH /v1/carts/{id}/addresses */\n patchCartAddresses(params: CartAddressesParams): Promise<StorefrontCart>\n /** POST /v1/carts/{id}/checkout */\n checkoutCart(params: CartCheckoutParams): Promise<CartCheckoutResponse>\n /** POST /v1/carts/{id}/payment-receipt */\n uploadPaymentReceipt(params: UploadPaymentReceiptParams): Promise<CartPaymentReceiptResponse>\n /** POST /v1/carts/{id}/promotion-codes */\n addCartPromotionCode(params: CartPromotionCodeParams): Promise<StorefrontCart>\n /** DELETE /v1/carts/{id}/promotion-codes/{code} */\n removeCartPromotionCode(params: CartPromotionCodeParams): Promise<StorefrontCart>\n /** GET /v1/geo/countries */\n getCountries(): Promise<Countries>\n /** GET /v1/geo/departments */\n getDepartments(params: GetDepartmentsParams): Promise<Departments>\n /** GET /v1/geo/provinces */\n getProvinces(params: GetProvincesParams): Promise<Provinces>\n /** GET /v1/geo/districts */\n getDistricts(params: GetDistrictsParams): Promise<Districts>\n /** GET customer addresses (requiere Authorization Bearer). */\n getCustomerAddresses(options?: CustomerAddressRequestOptions): Promise<CustomerAddresses>\n /** POST customer address. */\n createCustomerAddress(\n data: CustomerAddressUpsertInput,\n options?: CustomerAddressRequestOptions,\n ): Promise<CustomerAddressMutationResponse>\n /** PUT customer address. */\n updateCustomerAddress(\n addressId: string,\n data: CustomerAddressUpsertInput,\n options?: CustomerAddressRequestOptions,\n ): Promise<CustomerAddressMutationResponse>\n /** DELETE customer address. */\n deleteCustomerAddress(\n addressId: string,\n options?: CustomerAddressRequestOptions,\n ): Promise<void>\n /** GET /v1/customer/me */\n getCustomerMe(options?: CustomerRequestOptions): Promise<CustomerMe>\n /** PATCH /v1/customer */\n patchCustomer(\n data: CustomerProfilePatch,\n options?: CustomerRequestOptions,\n ): Promise<void>\n /** GET /v1/customer/orders */\n getCustomerOrders(options?: CustomerOrderRequestOptions): Promise<CustomerOrderList>\n /** GET /v1/customer/orders/{orderId} */\n getCustomerOrder(\n orderId: string,\n options?: CustomerOrderRequestOptions,\n ): Promise<CustomerOrderDetail>\n}\n\ninterface SettingsCacheEntry {\n data: StorefrontSettings\n expiresAt: number\n}\n\n/**\n * Crea el cliente storefront de bajo nivel (requiere domain).\n * En apps Ecomiq usa `createClient()` de `@ecomiq/storefront`, que toma el domain del config.\n *\n * ```ts\n * const api = createClient({ domain: 'marketplace' })\n * const collections = await api.getCollections()\n * ```\n */\nexport function createClient(options: CreateClientOptions): StorefrontClient {\n const {\n domain,\n settingsCacheTtlMs = DEFAULT_SETTINGS_CACHE_TTL_MS,\n ...apiOptions\n } = options\n if (!domain?.trim()) {\n throw new Error('createClient requiere `domain` (config.domain de ecomiq.config.js)')\n }\n if (!Number.isFinite(settingsCacheTtlMs) || settingsCacheTtlMs < 0) {\n throw new Error('settingsCacheTtlMs debe ser un número mayor o igual a 0')\n }\n\n const api = createApi(apiOptions)\n\n const apiClient = async () => {\n const storeId = await getStoreId()\n return createApi({\n ...apiOptions,\n headers: {\n ...apiOptions.headers,\n 'x-Store-Id': storeId,\n },\n })\n }\n\n let cache: SettingsCacheEntry | null = null\n let inflight: Promise<StorefrontSettings> | null = null\n\n function clearCache() {\n cache = null\n inflight = null\n }\n\n async function getSettings(): Promise<StorefrontSettings> {\n const now = Date.now()\n if (cache && cache.expiresAt > now) return cache.data\n if (inflight) return inflight\n const previous = cache?.data\n\n inflight = api\n .get('settings', StorefrontSettingsSchema, {\n headers: { 'x-Store-Domain': domain },\n })\n .then((data) => {\n cache = { data, expiresAt: Date.now() + settingsCacheTtlMs }\n return data\n })\n .catch((error: unknown) => {\n if (previous) return previous\n throw error\n })\n .finally(() => {\n inflight = null\n })\n\n return inflight\n }\n\n async function getStoreId(): Promise<string> {\n const settings = await getSettings()\n return settings.store.id\n }\n\n async function getCollections(): Promise<Collections> {\n const client = await apiClient()\n return getCollectionsService(client)\n }\n\n async function getCollectionBySlug(collectionSlug: string): Promise<Collection> {\n const client = await apiClient()\n return getCollectionBySlugService(client, collectionSlug)\n }\n\n async function getPageBySlug(pageSlug: string): Promise<CmsPageDetailsDto> {\n const client = await apiClient()\n return getPageBySlugService(client, pageSlug)\n }\n\n async function getProducts(params: ProductsParamsInput = {}): Promise<ProductsResponse> {\n const client = await apiClient()\n return getProductsService(client, params)\n }\n\n async function getProductBySlug(\n productSlug: string,\n params: ProductDetailParams = {},\n ): Promise<ProductDetail> {\n const client = await apiClient()\n return getProductBySlugService(client, productSlug, params)\n }\n\n async function getRelatedProducts(\n params: RelatedProductsParams,\n ): Promise<ProductSummary[]> {\n const client = await apiClient()\n return getRelatedProductsService(client, params)\n }\n\n async function autocompleteProducts(\n params: ProductAutocompleteParams,\n ): Promise<ProductSuggestion[]> {\n const client = await apiClient()\n return autocompleteProductsService(client, params)\n }\n\n async function listProductReviews(\n params: ListProductReviewsParams,\n ): Promise<StorefrontReviews> {\n const client = await apiClient()\n return listProductReviewsService(client, params)\n }\n\n async function createProductReview(\n params: CreateProductReviewParams,\n ): Promise<StorefrontReview> {\n const client = await apiClient()\n return createProductReviewService(client, params)\n }\n\n async function createCart(params: CreateCartParams): Promise<StorefrontCart> {\n const client = await apiClient()\n return createCartService(client, params)\n }\n\n async function getCart(params: GetCartParams): Promise<StorefrontCart> {\n const client = await apiClient()\n return getCartService(client, params)\n }\n\n async function addCartItem(params: AddCartItemParams): Promise<StorefrontCart> {\n const client = await apiClient()\n return addCartItemService(client, params)\n }\n\n async function updateCartItemQuantity(\n params: UpdateCartItemQuantityParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return updateCartItemQuantityService(client, params)\n }\n\n async function removeCartItem(\n params: RemoveCartItemParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return removeCartItemService(client, params)\n }\n\n async function getCartCheckout(\n params: CartCheckoutReadParams,\n ): Promise<CartCheckoutReadResponse> {\n const client = await apiClient()\n return getCartCheckoutService(client, params)\n }\n\n async function getShippingOptions(\n params: GetShippingOptionsParams,\n ): Promise<ShippingOptionsResponse> {\n const client = await apiClient()\n return getShippingOptionsService(client, params)\n }\n\n async function putCartShippingMethod(\n params: PutShippingMethodParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return putCartShippingMethodService(client, params)\n }\n\n async function patchCartBuyer(params: CartBuyerParams): Promise<StorefrontCart> {\n const client = await apiClient()\n return patchCartBuyerService(client, params)\n }\n\n async function patchCartAddresses(\n params: CartAddressesParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return patchCartAddressesService(client, params)\n }\n\n async function checkoutCart(\n params: CartCheckoutParams,\n ): Promise<CartCheckoutResponse> {\n const client = await apiClient()\n return checkoutCartService(client, params)\n }\n\n async function uploadPaymentReceipt(\n params: UploadPaymentReceiptParams,\n ): Promise<CartPaymentReceiptResponse> {\n const client = await apiClient()\n return uploadPaymentReceiptService(client, params)\n }\n\n async function addCartPromotionCode(\n params: CartPromotionCodeParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return addCartPromotionCodeService(client, params)\n }\n\n async function removeCartPromotionCode(\n params: CartPromotionCodeParams,\n ): Promise<StorefrontCart> {\n const client = await apiClient()\n return removeCartPromotionCodeService(client, params)\n }\n\n async function getCountries(): Promise<Countries> {\n return getCountriesService(api)\n }\n\n async function getDepartments(\n params: GetDepartmentsParams,\n ): Promise<Departments> {\n return getDepartmentsService(api, params)\n }\n\n async function getProvinces(\n params: GetProvincesParams,\n ): Promise<Provinces> {\n return getProvincesService(api, params)\n }\n\n async function getDistricts(\n params: GetDistrictsParams,\n ): Promise<Districts> {\n return getDistrictsService(api, params)\n }\n\n async function getCustomerAddresses(\n options: CustomerAddressRequestOptions = {},\n ): Promise<CustomerAddresses> {\n const client = await apiClient()\n return getCustomerAddressesService(client, options)\n }\n\n async function createCustomerAddress(\n data: CustomerAddressUpsertInput,\n options: CustomerAddressRequestOptions = {},\n ): Promise<CustomerAddressMutationResponse> {\n const client = await apiClient()\n return createCustomerAddressService(client, data, options)\n }\n\n async function updateCustomerAddress(\n addressId: string,\n data: CustomerAddressUpsertInput,\n options: CustomerAddressRequestOptions = {},\n ): Promise<CustomerAddressMutationResponse> {\n const client = await apiClient()\n return updateCustomerAddressService(client, addressId, data, options)\n }\n\n async function deleteCustomerAddress(\n addressId: string,\n options: CustomerAddressRequestOptions = {},\n ): Promise<void> {\n const client = await apiClient()\n return deleteCustomerAddressService(client, addressId, options)\n }\n\n async function getCustomerMe(\n options: CustomerRequestOptions = {},\n ): Promise<CustomerMe> {\n const client = await apiClient()\n return getCustomerMeService(client, options)\n }\n\n async function patchCustomer(\n data: CustomerProfilePatch,\n options: CustomerRequestOptions = {},\n ): Promise<void> {\n const client = await apiClient()\n return patchCustomerService(client, data, options)\n }\n\n async function getCustomerOrders(\n options: CustomerOrderRequestOptions = {},\n ): Promise<CustomerOrderList> {\n const client = await apiClient()\n return getCustomerOrdersService(client, options)\n }\n\n async function getCustomerOrder(\n orderId: string,\n options: CustomerOrderRequestOptions = {},\n ): Promise<CustomerOrderDetail> {\n const client = await apiClient()\n return getCustomerOrderService(client, orderId, options)\n }\n\n return {\n ...api,\n getSettings,\n getStoreId,\n getCollections,\n getCollectionBySlug,\n getPageBySlug,\n clearCache,\n getProducts,\n getProductBySlug,\n getRelatedProducts,\n autocompleteProducts,\n listProductReviews,\n createProductReview,\n createCart,\n getCart,\n addCartItem,\n updateCartItemQuantity,\n removeCartItem,\n getCartCheckout,\n getShippingOptions,\n putCartShippingMethod,\n patchCartBuyer,\n patchCartAddresses,\n checkoutCart,\n uploadPaymentReceipt,\n addCartPromotionCode,\n removeCartPromotionCode,\n getCountries,\n getDepartments,\n getProvinces,\n getDistricts,\n getCustomerAddresses,\n createCustomerAddress,\n updateCustomerAddress,\n deleteCustomerAddress,\n getCustomerMe,\n patchCustomer,\n getCustomerOrders,\n getCustomerOrder,\n }\n}\n\n/** @deprecated Usa createClient. Alias de compatibilidad con el plan. */\nexport const createStorefrontClient = createClient\n","import sanitize from 'sanitize-html'\n\nconst STOREFRONT_HTML_ALLOWLIST: sanitize.IOptions = {\n allowedTags: [\n 'a',\n 'b',\n 'blockquote',\n 'br',\n 'code',\n 'col',\n 'colgroup',\n 'div',\n 'em',\n 'figcaption',\n 'figure',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'hr',\n 'i',\n 'img',\n 'li',\n 'ol',\n 'p',\n 'pre',\n 's',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'tr',\n 'u',\n 'ul',\n ],\n allowedAttributes: {\n a: ['href', 'rel', 'target', 'title'],\n col: ['span'],\n img: ['alt', 'height', 'loading', 'src', 'title', 'width'],\n td: ['colspan', 'rowspan'],\n th: ['colspan', 'rowspan', 'scope'],\n },\n allowedSchemes: ['http', 'https', 'mailto', 'tel'],\n allowedSchemesAppliedToAttributes: ['href', 'src'],\n allowProtocolRelative: false,\n disallowedTagsMode: 'discard',\n enforceHtmlBoundary: true,\n parseStyleAttributes: false,\n transformTags: {\n a: (tagName, attributes) => {\n if (attributes.target !== '_blank') return { tagName, attribs: attributes }\n return {\n tagName,\n attribs: {\n ...attributes,\n rel: 'noopener noreferrer',\n },\n }\n },\n },\n}\n\nexport function sanitizeHtml(html: string) {\n return sanitize(html, STOREFRONT_HTML_ALLOWLIST)\n}\n\n/** Convierte HTML en texto plano (metadata, JSON-LD). */\nexport function stripHtml(html: string) {\n return html\n .replace(/<br\\s*\\/?>/gi, ' ')\n .replace(/<[^>]+>/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim()\n}\n"]}
|