@ecomiq/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +42 -0
  2. package/dist/api.cjs +99 -0
  3. package/dist/api.cjs.map +1 -0
  4. package/dist/api.d.cts +52 -0
  5. package/dist/api.d.ts +52 -0
  6. package/dist/api.js +93 -0
  7. package/dist/api.js.map +1 -0
  8. package/dist/client.cjs +1344 -0
  9. package/dist/client.cjs.map +1 -0
  10. package/dist/client.d.cts +82 -0
  11. package/dist/client.d.ts +82 -0
  12. package/dist/client.js +1341 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/index.cjs +1611 -0
  15. package/dist/index.cjs.map +1 -0
  16. package/dist/index.d.cts +1109 -0
  17. package/dist/index.d.ts +1109 -0
  18. package/dist/index.js +1450 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/models/collections.cjs +20 -0
  21. package/dist/models/collections.cjs.map +1 -0
  22. package/dist/models/collections.d.cts +56 -0
  23. package/dist/models/collections.d.ts +56 -0
  24. package/dist/models/collections.js +17 -0
  25. package/dist/models/collections.js.map +1 -0
  26. package/dist/models/geo.cjs +62 -0
  27. package/dist/models/geo.cjs.map +1 -0
  28. package/dist/models/geo.d.cts +279 -0
  29. package/dist/models/geo.d.ts +279 -0
  30. package/dist/models/geo.js +48 -0
  31. package/dist/models/geo.js.map +1 -0
  32. package/dist/models/products.cjs +212 -0
  33. package/dist/models/products.cjs.map +1 -0
  34. package/dist/models/products.d.cts +1421 -0
  35. package/dist/models/products.d.ts +1421 -0
  36. package/dist/models/products.js +187 -0
  37. package/dist/models/products.js.map +1 -0
  38. package/dist/models/search.cjs +200 -0
  39. package/dist/models/search.cjs.map +1 -0
  40. package/dist/models/search.d.cts +51 -0
  41. package/dist/models/search.d.ts +51 -0
  42. package/dist/models/search.js +196 -0
  43. package/dist/models/search.js.map +1 -0
  44. package/dist/models/settings.cjs +285 -0
  45. package/dist/models/settings.cjs.map +1 -0
  46. package/dist/models/settings.d.cts +7039 -0
  47. package/dist/models/settings.d.ts +7039 -0
  48. package/dist/models/settings.js +239 -0
  49. package/dist/models/settings.js.map +1 -0
  50. package/dist/models/storefront-cart.cjs +148 -0
  51. package/dist/models/storefront-cart.cjs.map +1 -0
  52. package/dist/models/storefront-cart.d.cts +747 -0
  53. package/dist/models/storefront-cart.d.ts +747 -0
  54. package/dist/models/storefront-cart.js +133 -0
  55. package/dist/models/storefront-cart.js.map +1 -0
  56. package/dist/models/storefront-checkout.cjs +307 -0
  57. package/dist/models/storefront-checkout.cjs.map +1 -0
  58. package/dist/models/storefront-checkout.d.cts +4122 -0
  59. package/dist/models/storefront-checkout.d.ts +4122 -0
  60. package/dist/models/storefront-checkout.js +288 -0
  61. package/dist/models/storefront-checkout.js.map +1 -0
  62. package/dist/models/storefront-reviews.cjs +223 -0
  63. package/dist/models/storefront-reviews.cjs.map +1 -0
  64. package/dist/models/storefront-reviews.d.cts +147 -0
  65. package/dist/models/storefront-reviews.d.ts +147 -0
  66. package/dist/models/storefront-reviews.js +218 -0
  67. package/dist/models/storefront-reviews.js.map +1 -0
  68. package/package.json +109 -0
@@ -0,0 +1,239 @@
1
+ import { z } from 'zod';
2
+
3
+ // src/models/settings.ts
4
+ var JsonElementSchema = z.lazy(
5
+ () => z.union([
6
+ z.null(),
7
+ z.boolean(),
8
+ z.number().finite(),
9
+ z.string(),
10
+ z.array(JsonElementSchema),
11
+ z.record(z.string(), JsonElementSchema)
12
+ ])
13
+ );
14
+ var DateTimeOffsetSchema = z.string().datetime({ offset: true });
15
+ var NullableDateTimeOffsetSchema = DateTimeOffsetSchema.nullable();
16
+ var NullableUuidSchema = z.string().uuid().nullable();
17
+ var StoreTypeSchema = z.enum([
18
+ "b2C",
19
+ "marketplace",
20
+ "retail",
21
+ "b2B",
22
+ "social",
23
+ "hub",
24
+ "restaurant"
25
+ ]);
26
+ var StoreVisibilitySchema = z.enum(["public", "private"]);
27
+ var StoreThemeSettingsSchema = z.object({
28
+ name: z.string().nullable(),
29
+ mode: z.string().nullable(),
30
+ colors: z.record(z.string(), z.string()),
31
+ fonts: z.record(z.string(), z.string()),
32
+ assets: z.record(z.string(), z.string())
33
+ }).strict();
34
+ var StoreFeatureFlagsSchema = z.object({
35
+ flags: z.record(z.string(), z.boolean())
36
+ }).strict();
37
+ var StoreCheckoutGeneralSettingsSchema = z.object({
38
+ allowGuestCheckout: z.boolean(),
39
+ identityScope: z.enum(["store", "tenant", "global"]),
40
+ signInMethods: z.array(z.enum(["password", "emailOtp", "google"])),
41
+ useSequentialOrderNumbers: z.boolean(),
42
+ automaticallySelectFirstAddress: z.boolean(),
43
+ alwaysRequestCustomerAddress: z.boolean(),
44
+ requestCustomerDateOfBirth: z.boolean(),
45
+ automaticallySelectBestPromotion: z.boolean()
46
+ }).strict();
47
+ var StoreCheckoutShippingSettingsSchema = z.object({
48
+ showDeliveryTime: z.boolean(),
49
+ showDeliveryTimeInDays: z.boolean(),
50
+ useBusinessDaysForDeliveryTime: z.boolean(),
51
+ showEstimatedDeliveryDateInThankYouAndEmails: z.boolean(),
52
+ showOriginalShippingPriceWhenFree: z.boolean()
53
+ }).strict();
54
+ var StoreCheckoutCartPageSettingsSchema = z.object({
55
+ showShippingCostCalculation: z.boolean(),
56
+ allowProductLinks: z.boolean(),
57
+ redirectToCartPage: z.boolean()
58
+ }).strict();
59
+ var StoreCheckoutOrderBumpSettingsSchema = z.object({
60
+ mergeOrderBumpOrders: z.boolean(),
61
+ allowOnlyOneAdditionalOffer: z.boolean(),
62
+ maxVisibleOffers: z.number().int()
63
+ }).strict();
64
+ var StoreCheckoutOrdersAndPaymentsSettingsSchema = z.object({
65
+ allowPurchasesFrom: z.enum(["any", "individual", "company"]),
66
+ creditCardDailyOrderLimitPerIp: z.number().int().nullable(),
67
+ maximumItemsPerOrder: z.number().int().nullable(),
68
+ deliveryNoteText: z.string().nullable(),
69
+ boletoPaymentNoteText: z.string().nullable()
70
+ }).strict();
71
+ var StoreCheckoutSettingsSchema = z.object({
72
+ general: StoreCheckoutGeneralSettingsSchema,
73
+ shipping: StoreCheckoutShippingSettingsSchema,
74
+ cartPage: StoreCheckoutCartPageSettingsSchema,
75
+ orderBumps: StoreCheckoutOrderBumpSettingsSchema,
76
+ ordersAndPayments: StoreCheckoutOrdersAndPaymentsSettingsSchema
77
+ }).strict();
78
+ var StorefrontStoreShape = {
79
+ id: z.string().uuid(),
80
+ tenantId: z.string().uuid(),
81
+ sellerId: NullableUuidSchema,
82
+ type: StoreTypeSchema,
83
+ isActive: z.boolean(),
84
+ name: z.string(),
85
+ description: z.string(),
86
+ logo: z.string().nullable(),
87
+ icon: z.string().nullable(),
88
+ slug: z.string().nullable(),
89
+ domain: z.string().nullable(),
90
+ domains: z.array(z.string()),
91
+ timeZone: z.string(),
92
+ currency: z.string(),
93
+ language: z.string(),
94
+ visibility: StoreVisibilitySchema,
95
+ themeConfig: StoreThemeSettingsSchema,
96
+ featuresEnabled: StoreFeatureFlagsSchema,
97
+ checkoutSettings: StoreCheckoutSettingsSchema
98
+ };
99
+ var StoreModelSchema = z.object(StorefrontStoreShape).strict();
100
+ var CmsBrandingSettingsDtoSchema = z.object({
101
+ logoUrl: z.string().nullable(),
102
+ logoDarkUrl: z.string().nullable(),
103
+ faviconUrl: z.string().nullable(),
104
+ socialImageUrl: z.string().nullable()
105
+ }).strict();
106
+ var CmsSeoSettingsDtoSchema = z.object({
107
+ siteName: z.string().nullable(),
108
+ metaTitle: z.string().nullable(),
109
+ metaDescription: z.string().nullable(),
110
+ titleTemplate: z.string().nullable(),
111
+ robotsIndex: z.boolean()
112
+ }).strict();
113
+ var CmsSocialLinksDtoSchema = z.object({
114
+ instagram: z.string().nullable(),
115
+ facebook: z.string().nullable(),
116
+ tiktok: z.string().nullable(),
117
+ youtube: z.string().nullable(),
118
+ x: z.string().nullable()
119
+ }).strict();
120
+ var CmsContactSettingsDtoSchema = z.object({
121
+ supportEmail: z.string().nullable(),
122
+ phone: z.string().nullable(),
123
+ whatsapp: z.string().nullable(),
124
+ address: z.string().nullable(),
125
+ socialLinks: CmsSocialLinksDtoSchema
126
+ }).strict();
127
+ var CmsTrackingSettingsDtoSchema = z.object({
128
+ googleAnalyticsMeasurementId: z.string().nullable(),
129
+ metaPixelId: z.string().nullable(),
130
+ googleTagManagerContainerId: z.string().nullable()
131
+ }).strict();
132
+ var CmsCustomScriptsDtoSchema = z.object({
133
+ enabled: z.boolean(),
134
+ head: z.string().nullable(),
135
+ bodyEnd: z.string().nullable()
136
+ }).strict();
137
+ var CmsSiteSettingsDtoSchema = z.object({
138
+ themeKey: z.string(),
139
+ branding: CmsBrandingSettingsDtoSchema,
140
+ seo: CmsSeoSettingsDtoSchema,
141
+ contact: CmsContactSettingsDtoSchema,
142
+ tracking: CmsTrackingSettingsDtoSchema,
143
+ customScripts: CmsCustomScriptsDtoSchema,
144
+ updatedOn: NullableDateTimeOffsetSchema
145
+ }).strict();
146
+ var CmsMenuItemSchema = z.lazy(
147
+ () => z.object({
148
+ label: z.string(),
149
+ url: z.string(),
150
+ order: z.number().int(),
151
+ target: z.string().nullable(),
152
+ visible: z.boolean().nullable(),
153
+ children: z.array(CmsMenuItemSchema).nullable()
154
+ }).strict()
155
+ );
156
+ var CmsMenuDtoSchema = z.object({
157
+ key: z.string(),
158
+ name: z.string(),
159
+ items: z.array(CmsMenuItemSchema)
160
+ }).strict();
161
+ var CmsBlockDtoSchema = z.object({
162
+ id: z.string().uuid(),
163
+ type: z.string(),
164
+ order: z.number().int(),
165
+ settings: JsonElementSchema
166
+ }).strict();
167
+ var CmsSectionDtoSchema = z.object({
168
+ id: z.string().uuid(),
169
+ type: z.string(),
170
+ order: z.number().int(),
171
+ settings: JsonElementSchema,
172
+ blocks: z.array(CmsBlockDtoSchema)
173
+ }).strict();
174
+ var CmsContentChannelSchema = z.enum(["storefront", "pos"]);
175
+ var CmsPageStatusSchema = z.enum(["draft", "published", "archived"]);
176
+ var CmsPageDetailsDtoSchema = z.object({
177
+ id: z.string().uuid(),
178
+ name: z.string(),
179
+ slug: z.string(),
180
+ channel: CmsContentChannelSchema,
181
+ layout: z.string(),
182
+ version: z.number().int().nullable(),
183
+ settings: JsonElementSchema,
184
+ sections: z.array(CmsSectionDtoSchema),
185
+ status: CmsPageStatusSchema,
186
+ hasPublishedVersion: z.boolean(),
187
+ publishedOn: NullableDateTimeOffsetSchema,
188
+ publishedBy: NullableUuidSchema,
189
+ createdOn: DateTimeOffsetSchema,
190
+ updatedOn: NullableDateTimeOffsetSchema,
191
+ createdBy: NullableUuidSchema,
192
+ updatedBy: NullableUuidSchema,
193
+ lastModifiedBy: z.string().nullable()
194
+ }).strict();
195
+ var CmsSnapshotDtoSchema = z.object({
196
+ settings: CmsSiteSettingsDtoSchema,
197
+ pages: z.array(CmsPageDetailsDtoSchema),
198
+ menus: z.array(CmsMenuDtoSchema)
199
+ }).strict();
200
+ var StoreSettingsSnapshotV1Schema = z.object({
201
+ schemaVersion: z.literal(1),
202
+ generatedAt: DateTimeOffsetSchema,
203
+ store: z.object(StorefrontStoreShape),
204
+ cms: CmsSnapshotDtoSchema
205
+ }).strict();
206
+ var StoreSettingsSnapshotV2Schema = z.object({
207
+ schemaVersion: z.literal(2),
208
+ generatedAt: DateTimeOffsetSchema,
209
+ store: StoreModelSchema,
210
+ cms: CmsSnapshotDtoSchema
211
+ }).strict();
212
+ var StoreSettingsSnapshotDtoSchema = z.discriminatedUnion(
213
+ "schemaVersion",
214
+ [StoreSettingsSnapshotV1Schema, StoreSettingsSnapshotV2Schema]
215
+ );
216
+ var StorefrontCheckoutSettingsSchema = StoreCheckoutSettingsSchema;
217
+ var StorefrontFeaturesEnabledSchema = StoreFeatureFlagsSchema;
218
+ var StorefrontCmsBrandingSchema = CmsBrandingSettingsDtoSchema;
219
+ var StorefrontThemeConfigSchema = StoreThemeSettingsSchema;
220
+ var StorefrontStoreTypeSchema = StoreTypeSchema;
221
+ var StorefrontStoreSchema = StoreModelSchema;
222
+ var StorefrontCmsSeoSchema = CmsSeoSettingsDtoSchema;
223
+ var StorefrontCmsSocialLinksSchema = CmsSocialLinksDtoSchema;
224
+ var StorefrontCmsContactSchema = CmsContactSettingsDtoSchema;
225
+ var StorefrontCmsTrackingSchema = CmsTrackingSettingsDtoSchema;
226
+ var StorefrontCmsCustomScriptsSchema = CmsCustomScriptsDtoSchema;
227
+ var StorefrontCmsSettingsSchema = CmsSiteSettingsDtoSchema;
228
+ var StorefrontMenuItemSchema = CmsMenuItemSchema;
229
+ var StorefrontMenuSchema = CmsMenuDtoSchema;
230
+ var StorefrontCmsPageSchema = CmsPageDetailsDtoSchema;
231
+ var StorefrontSettingsSchema = StoreSettingsSnapshotDtoSchema;
232
+ function getMenuItems(settings, key) {
233
+ const menu = settings?.cms.menus.find((candidate) => candidate.key === key);
234
+ return (menu?.items ?? []).filter((item) => item.visible !== false).slice().sort((a, b) => a.order - b.order);
235
+ }
236
+
237
+ export { CmsBlockDtoSchema, CmsBrandingSettingsDtoSchema, CmsContactSettingsDtoSchema, CmsContentChannelSchema, CmsCustomScriptsDtoSchema, CmsMenuDtoSchema, CmsMenuItemSchema, CmsPageDetailsDtoSchema, CmsPageStatusSchema, CmsSectionDtoSchema, CmsSeoSettingsDtoSchema, CmsSiteSettingsDtoSchema, CmsSnapshotDtoSchema, CmsSocialLinksDtoSchema, CmsTrackingSettingsDtoSchema, JsonElementSchema, StoreCheckoutCartPageSettingsSchema, StoreCheckoutGeneralSettingsSchema, StoreCheckoutOrderBumpSettingsSchema, StoreCheckoutOrdersAndPaymentsSettingsSchema, StoreCheckoutSettingsSchema, StoreCheckoutShippingSettingsSchema, StoreFeatureFlagsSchema, StoreModelSchema, StoreSettingsSnapshotDtoSchema, StoreThemeSettingsSchema, StoreTypeSchema, StoreVisibilitySchema, StorefrontCheckoutSettingsSchema, StorefrontCmsBrandingSchema, StorefrontCmsContactSchema, StorefrontCmsCustomScriptsSchema, StorefrontCmsPageSchema, StorefrontCmsSeoSchema, StorefrontCmsSettingsSchema, StorefrontCmsSocialLinksSchema, StorefrontCmsTrackingSchema, StorefrontFeaturesEnabledSchema, StorefrontMenuItemSchema, StorefrontMenuSchema, StorefrontSettingsSchema, StorefrontStoreSchema, StorefrontStoreTypeSchema, StorefrontThemeConfigSchema, getMenuItems };
238
+ //# sourceMappingURL=settings.js.map
239
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/models/settings.ts"],"names":[],"mappings":"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","file":"settings.js","sourcesContent":["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"]}
@@ -0,0 +1,148 @@
1
+ 'use strict';
2
+
3
+ var zod = require('zod');
4
+
5
+ // src/models/storefront-cart.ts
6
+ function cartVariantIdFromProduct(variantId) {
7
+ if (!/^\d+$/.test(variantId)) {
8
+ throw new RangeError("El variant ID debe ser un integer decimal positivo.");
9
+ }
10
+ const value = BigInt(variantId);
11
+ if (value <= 0n || value > BigInt(Number.MAX_SAFE_INTEGER)) {
12
+ throw new RangeError("El variant ID no cabe en un integer seguro de JavaScript.");
13
+ }
14
+ return Number(value);
15
+ }
16
+ var StorefrontAddressSchema = zod.z.object({
17
+ name: zod.z.string().nullable(),
18
+ address1: zod.z.string(),
19
+ city: zod.z.string(),
20
+ countryCode: zod.z.string(),
21
+ company: zod.z.string().nullable(),
22
+ address2: zod.z.string().nullable(),
23
+ province: zod.z.string().nullable(),
24
+ postalCode: zod.z.string().nullable(),
25
+ district: zod.z.string().nullable(),
26
+ phone: zod.z.string().nullable(),
27
+ latitude: zod.z.number().nullable(),
28
+ longitude: zod.z.number().nullable()
29
+ });
30
+ var StorefrontCartBundleItemSchema = zod.z.object({
31
+ productId: zod.z.number().int().safe().nonnegative(),
32
+ variantId: zod.z.number().int().safe().nonnegative(),
33
+ productName: zod.z.string(),
34
+ variantName: zod.z.string().nullable(),
35
+ sku: zod.z.string().nullable(),
36
+ brand: zod.z.string().nullable(),
37
+ imageUrl: zod.z.string().nullable(),
38
+ quantity: zod.z.number().int().positive()
39
+ });
40
+ var StorefrontCartItemSchema = zod.z.object({
41
+ id: zod.z.string().uuid(),
42
+ productId: zod.z.number().int().safe().nonnegative(),
43
+ title: zod.z.string(),
44
+ variantLabel: zod.z.string().nullable(),
45
+ productHandle: zod.z.string().nullable(),
46
+ thumbnail: zod.z.string().nullable(),
47
+ quantity: zod.z.number().int().positive(),
48
+ variantId: zod.z.number().int().safe().nonnegative(),
49
+ variantSku: zod.z.string().nullable(),
50
+ unitPrice: zod.z.number(),
51
+ compareAtUnitPrice: zod.z.number().nullable(),
52
+ bundleItems: zod.z.array(StorefrontCartBundleItemSchema)
53
+ });
54
+ var StorefrontCartShippingMethodSchema = zod.z.object({
55
+ id: zod.z.string().uuid(),
56
+ shippingMethodId: zod.z.string().uuid().nullable(),
57
+ rateId: zod.z.string().uuid().nullable(),
58
+ name: zod.z.string(),
59
+ description: zod.z.string().nullable(),
60
+ total: zod.z.number(),
61
+ locationId: zod.z.string().uuid().nullable(),
62
+ estimatedDays: zod.z.number().int().nullable(),
63
+ pickupPointId: zod.z.string().uuid().nullable(),
64
+ scheduledDate: zod.z.string().nullable(),
65
+ scheduledTime: zod.z.string().nullable(),
66
+ serviceCode: zod.z.string().nullable(),
67
+ sellerId: zod.z.string().uuid().nullable(),
68
+ shippingProfileId: zod.z.string().uuid().nullable()
69
+ });
70
+ var StorefrontCartTotalsSchema = zod.z.object({
71
+ subtotal: zod.z.number(),
72
+ discountTotal: zod.z.number(),
73
+ shippingOriginalTotal: zod.z.number(),
74
+ shippingTotal: zod.z.number(),
75
+ taxTotal: zod.z.number(),
76
+ warrantyTotal: zod.z.number(),
77
+ total: zod.z.number()
78
+ });
79
+ var StorefrontCartStatusSchema = zod.z.enum([
80
+ "inProgress",
81
+ "pending",
82
+ "completed",
83
+ "abandoned",
84
+ "cancelled",
85
+ "expired",
86
+ "failed"
87
+ ]);
88
+ var StorefrontCartSchema = zod.z.object({
89
+ id: zod.z.string().uuid(),
90
+ cartNumber: zod.z.string(),
91
+ email: zod.z.string().nullable(),
92
+ phone: zod.z.string().nullable(),
93
+ firstName: zod.z.string().nullable(),
94
+ lastName: zod.z.string().nullable(),
95
+ currencyCode: zod.z.string(),
96
+ status: StorefrontCartStatusSchema,
97
+ completedAt: zod.z.string().datetime({ offset: true }).nullable(),
98
+ shippingAddress: StorefrontAddressSchema.nullable(),
99
+ billingAddress: StorefrontAddressSchema.nullable(),
100
+ promotionCodes: zod.z.array(zod.z.string()),
101
+ items: zod.z.array(StorefrontCartItemSchema),
102
+ shippingMethods: zod.z.array(StorefrontCartShippingMethodSchema),
103
+ totals: StorefrontCartTotalsSchema
104
+ });
105
+ var CreateCartParamsSchema = zod.z.object({
106
+ currencyCode: zod.z.string().length(3),
107
+ salesChannelId: zod.z.string().optional(),
108
+ email: zod.z.string().email().optional()
109
+ });
110
+ var GetCartParamsSchema = zod.z.object({
111
+ cartId: zod.z.string().uuid()
112
+ });
113
+ var CartItemModifierSchema = zod.z.object({
114
+ modifierGroupId: zod.z.number().int().safe().positive(),
115
+ optionIds: zod.z.array(zod.z.number().int().safe().positive()).min(1)
116
+ });
117
+ var AddCartItemParamsSchema = zod.z.object({
118
+ cartId: zod.z.string().uuid(),
119
+ variantId: zod.z.number().int().safe().positive(),
120
+ quantity: zod.z.number().int().positive(),
121
+ modifiers: zod.z.array(CartItemModifierSchema).optional()
122
+ });
123
+ var UpdateCartItemQuantityParamsSchema = zod.z.object({
124
+ cartId: zod.z.string().uuid(),
125
+ cartItemId: zod.z.string().uuid(),
126
+ quantity: zod.z.number().int().nonnegative()
127
+ });
128
+ var RemoveCartItemParamsSchema = zod.z.object({
129
+ cartId: zod.z.string().uuid(),
130
+ cartItemId: zod.z.string().uuid()
131
+ });
132
+
133
+ exports.AddCartItemParamsSchema = AddCartItemParamsSchema;
134
+ exports.CartItemModifierSchema = CartItemModifierSchema;
135
+ exports.CreateCartParamsSchema = CreateCartParamsSchema;
136
+ exports.GetCartParamsSchema = GetCartParamsSchema;
137
+ exports.RemoveCartItemParamsSchema = RemoveCartItemParamsSchema;
138
+ exports.StorefrontAddressSchema = StorefrontAddressSchema;
139
+ exports.StorefrontCartBundleItemSchema = StorefrontCartBundleItemSchema;
140
+ exports.StorefrontCartItemSchema = StorefrontCartItemSchema;
141
+ exports.StorefrontCartSchema = StorefrontCartSchema;
142
+ exports.StorefrontCartShippingMethodSchema = StorefrontCartShippingMethodSchema;
143
+ exports.StorefrontCartStatusSchema = StorefrontCartStatusSchema;
144
+ exports.StorefrontCartTotalsSchema = StorefrontCartTotalsSchema;
145
+ exports.UpdateCartItemQuantityParamsSchema = UpdateCartItemQuantityParamsSchema;
146
+ exports.cartVariantIdFromProduct = cartVariantIdFromProduct;
147
+ //# sourceMappingURL=storefront-cart.cjs.map
148
+ //# sourceMappingURL=storefront-cart.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/models/storefront-cart.ts"],"names":["z"],"mappings":";;;;;AAEO,SAAS,yBAAyB,SAAA,EAA2B;AAClE,EAAA,IAAI,CAAC,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAA,EAAG;AAC5B,IAAA,MAAM,IAAI,WAAW,qDAAqD,CAAA;AAAA,EAC5E;AAEA,EAAA,MAAM,KAAA,GAAQ,OAAO,SAAS,CAAA;AAC9B,EAAA,IAAI,SAAS,EAAA,IAAM,KAAA,GAAQ,MAAA,CAAO,MAAA,CAAO,gBAAgB,CAAA,EAAG;AAC1D,IAAA,MAAM,IAAI,WAAW,2DAA2D,CAAA;AAAA,EAClF;AAEA,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;AAEO,IAAM,uBAAA,GAA0BA,MAAE,MAAA,CAAO;AAAA,EAC9C,IAAA,EAAMA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,OAAA,EAASA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,UAAA,EAAYA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,KAAA,EAAOA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,SAAA,EAAWA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACxB,CAAC;AAEM,IAAM,8BAAA,GAAiCA,MAAE,MAAA,CAAO;AAAA,EACrD,SAAA,EAAWA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,IAAA,GAAO,WAAA,EAAY;AAAA,EAC/C,SAAA,EAAWA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,IAAA,GAAO,WAAA,EAAY;AAAA,EAC/C,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,EACtB,WAAA,EAAaA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,GAAA,EAAKA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,KAAA,EAAOA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,UAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA;AAC7B,CAAC;AAEM,IAAM,wBAAA,GAA2BA,MAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAIA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,SAAA,EAAWA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,IAAA,GAAO,WAAA,EAAY;AAAA,EAC/C,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,YAAA,EAAcA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,aAAA,EAAeA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,SAAA,EAAWA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,UAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACpC,SAAA,EAAWA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,IAAA,GAAO,WAAA,EAAY;AAAA,EAC/C,UAAA,EAAYA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,EACpB,kBAAA,EAAoBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxC,WAAA,EAAaA,KAAA,CAAE,KAAA,CAAM,8BAA8B;AACrD,CAAC;AAEM,IAAM,kCAAA,GAAqCA,MAAE,MAAA,CAAO;AAAA,EACzD,EAAA,EAAIA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,kBAAkBA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,QAAA,EAAS;AAAA,EAC7C,QAAQA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,QAAA,EAAS;AAAA,EACnC,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,KAAA,EAAOA,MAAE,MAAA,EAAO;AAAA,EAChB,YAAYA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,QAAA,EAAS;AAAA,EACvC,eAAeA,KAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACzC,eAAeA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,QAAA,EAAS;AAAA,EAC1C,aAAA,EAAeA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,aAAA,EAAeA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,WAAA,EAAaA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,UAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,QAAA,EAAS;AAAA,EACrC,mBAAmBA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,GAAO,QAAA;AACvC,CAAC;AAEM,IAAM,0BAAA,GAA6BA,MAAE,MAAA,CAAO;AAAA,EACjD,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,aAAA,EAAeA,MAAE,MAAA,EAAO;AAAA,EACxB,qBAAA,EAAuBA,MAAE,MAAA,EAAO;AAAA,EAChC,aAAA,EAAeA,MAAE,MAAA,EAAO;AAAA,EACxB,QAAA,EAAUA,MAAE,MAAA,EAAO;AAAA,EACnB,aAAA,EAAeA,MAAE,MAAA,EAAO;AAAA,EACxB,KAAA,EAAOA,MAAE,MAAA;AACX,CAAC;AAEM,IAAM,0BAAA,GAA6BA,MAAE,IAAA,CAAK;AAAA,EAC/C,YAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,oBAAA,GAAuBA,MAAE,MAAA,CAAO;AAAA,EAC3C,EAAA,EAAIA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACpB,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,EACrB,KAAA,EAAOA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,KAAA,EAAOA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,SAAA,EAAWA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,YAAA,EAAcA,MAAE,MAAA,EAAO;AAAA,EACvB,MAAA,EAAQ,0BAAA;AAAA,EACR,WAAA,EAAaA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA,CAAE,QAAA,EAAS;AAAA,EAC5D,eAAA,EAAiB,wBAAwB,QAAA,EAAS;AAAA,EAClD,cAAA,EAAgB,wBAAwB,QAAA,EAAS;AAAA,EACjD,cAAA,EAAgBA,KAAA,CAAE,KAAA,CAAMA,KAAA,CAAE,QAAQ,CAAA;AAAA,EAClC,KAAA,EAAOA,KAAA,CAAE,KAAA,CAAM,wBAAwB,CAAA;AAAA,EACvC,eAAA,EAAiBA,KAAA,CAAE,KAAA,CAAM,kCAAkC,CAAA;AAAA,EAC3D,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC7C,YAAA,EAAcA,KAAA,CAAE,MAAA,EAAO,CAAE,OAAO,CAAC,CAAA;AAAA,EACjC,cAAA,EAAgBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACpC,OAAOA,KAAA,CAAE,MAAA,EAAO,CAAE,KAAA,GAAQ,QAAA;AAC5B,CAAC;AAEM,IAAM,mBAAA,GAAsBA,MAAE,MAAA,CAAO;AAAA,EAC1C,MAAA,EAAQA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA;AACrB,CAAC;AAEM,IAAM,sBAAA,GAAyBA,MAAE,MAAA,CAAO;AAAA,EAC7C,eAAA,EAAiBA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,IAAA,GAAO,QAAA,EAAS;AAAA,EAClD,SAAA,EAAWA,KAAA,CAAE,KAAA,CAAMA,KAAA,CAAE,QAAO,CAAE,GAAA,EAAI,CAAE,IAAA,EAAK,CAAE,QAAA,EAAU,CAAA,CAAE,IAAI,CAAC;AAC9D,CAAC;AAEM,IAAM,uBAAA,GAA0BA,MAAE,MAAA,CAAO;AAAA,EAC9C,MAAA,EAAQA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACxB,SAAA,EAAWA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,IAAA,GAAO,QAAA,EAAS;AAAA,EAC5C,UAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,QAAA,EAAS;AAAA,EACpC,SAAA,EAAWA,KAAA,CAAE,KAAA,CAAM,sBAAsB,EAAE,QAAA;AAC7C,CAAC;AAEM,IAAM,kCAAA,GAAqCA,MAAE,MAAA,CAAO;AAAA,EACzD,MAAA,EAAQA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACxB,UAAA,EAAYA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EAC5B,UAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,GAAA,GAAM,WAAA;AAC7B,CAAC;AAEM,IAAM,0BAAA,GAA6BA,MAAE,MAAA,CAAO;AAAA,EACjD,MAAA,EAAQA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA,EAAK;AAAA,EACxB,UAAA,EAAYA,KAAA,CAAE,MAAA,EAAO,CAAE,IAAA;AACzB,CAAC","file":"storefront-cart.cjs","sourcesContent":["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"]}