@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,187 @@
1
+ import { z } from 'zod';
2
+
3
+ // src/models/products.ts
4
+ var ProductPublicIdSchema = z.union([
5
+ z.string().regex(/^[1-9]\d*$/),
6
+ z.number().int().safe().positive()
7
+ ]).transform(String);
8
+ var ProductSummarySchema = z.object({
9
+ id: ProductPublicIdSchema,
10
+ name: z.string(),
11
+ slug: z.string(),
12
+ productType: z.string(),
13
+ imageUrl: z.string(),
14
+ price: z.number().nonnegative(),
15
+ compareAtPrice: z.number().nonnegative().nullable(),
16
+ variantCount: z.number().int().nonnegative(),
17
+ isAvailable: z.boolean(),
18
+ totalInventory: z.number().int().nonnegative(),
19
+ bundleItemsCount: z.number().int().nonnegative(),
20
+ brand: z.string(),
21
+ category: z.string(),
22
+ status: z.string(),
23
+ collections: z.array(z.string()),
24
+ tags: z.array(z.string())
25
+ });
26
+ var ProductSummariesSchema = z.array(ProductSummarySchema);
27
+ var ProductSchema = ProductSummarySchema;
28
+ var FacetItemSchema = z.object({
29
+ value: z.string(),
30
+ count: z.number().int().nonnegative(),
31
+ label: z.string().nullable(),
32
+ selected: z.boolean()
33
+ });
34
+ var FacetSchema = FacetItemSchema;
35
+ var SearchFilterSchema = z.object({
36
+ id: z.string(),
37
+ label: z.string(),
38
+ type: z.enum(["list", "price_range"]),
39
+ values: z.array(FacetItemSchema),
40
+ min: z.number().nonnegative().nullable(),
41
+ max: z.number().nonnegative().nullable(),
42
+ selectedMin: z.number().nonnegative().nullable(),
43
+ selectedMax: z.number().nonnegative().nullable()
44
+ });
45
+ var ProductsResponseSchema = z.object({
46
+ pageIndex: z.number().int().positive(),
47
+ pageSize: z.number().int().positive().max(100),
48
+ totalCount: z.number().int().nonnegative(),
49
+ totalPages: z.number().int().nonnegative(),
50
+ products: z.array(ProductSummarySchema),
51
+ filters: z.array(SearchFilterSchema)
52
+ });
53
+ var ProductSortSchema = z.enum([
54
+ "price_asc",
55
+ "price_desc",
56
+ "name_asc",
57
+ "name_desc",
58
+ "newest"
59
+ ]);
60
+ var ProductsParamsSchema = z.object({
61
+ page: z.number().int().positive().default(1),
62
+ pageSize: z.number().int().positive().max(100).default(24),
63
+ sort: ProductSortSchema.optional(),
64
+ sellerId: z.string().uuid().optional(),
65
+ search: z.string().optional(),
66
+ collection: z.string().optional(),
67
+ collections: z.array(z.string()).optional(),
68
+ collectionId: ProductPublicIdSchema.optional(),
69
+ category: z.string().optional(),
70
+ categories: z.array(z.string()).optional(),
71
+ brand: z.string().optional(),
72
+ brands: z.array(z.string()).optional(),
73
+ productType: z.string().optional(),
74
+ productTypes: z.array(z.string()).optional(),
75
+ tag: z.string().optional(),
76
+ tags: z.array(z.string()).optional(),
77
+ filters: z.array(z.string()).optional(),
78
+ locationId: z.string().uuid().optional(),
79
+ inStock: z.boolean().optional(),
80
+ minPrice: z.number().nonnegative().optional(),
81
+ maxPrice: z.number().nonnegative().optional()
82
+ });
83
+ var ProductDetailParamsSchema = z.object({
84
+ sellerId: z.string().uuid().optional()
85
+ });
86
+ var RelatedProductsParamsSchema = z.object({
87
+ productId: ProductPublicIdSchema,
88
+ limit: z.number().int().positive().max(12).default(8),
89
+ sellerId: z.string().uuid().optional()
90
+ });
91
+ var SpecItemSchema = z.object({
92
+ key: z.string(),
93
+ name: z.string(),
94
+ value: z.string()
95
+ });
96
+ var VariantOptionSchema = SpecItemSchema;
97
+ var ProductImageSchema = z.object({
98
+ url: z.string(),
99
+ name: z.string(),
100
+ order: z.number().int().nonnegative()
101
+ });
102
+ var VariantItemSchema = z.object({
103
+ id: z.string().nullable(),
104
+ sku: z.string(),
105
+ status: z.string(),
106
+ price: z.number().nonnegative(),
107
+ compareAtPrice: z.number().nonnegative().nullable(),
108
+ quantity: z.number().int().nonnegative(),
109
+ options: z.array(SpecItemSchema),
110
+ images: z.array(ProductImageSchema)
111
+ });
112
+ var VariantSchema = VariantItemSchema;
113
+ var ProductPriceTierSchema = z.object({
114
+ variantId: z.string(),
115
+ minQuantity: z.number().int().positive(),
116
+ maxQuantity: z.number().int().positive().nullable(),
117
+ unitPrice: z.number().nonnegative()
118
+ });
119
+ var PriceTierSchema = ProductPriceTierSchema;
120
+ var BundleItemSchema = z.object({
121
+ productId: ProductPublicIdSchema,
122
+ variantId: ProductPublicIdSchema,
123
+ productName: z.string(),
124
+ variantName: z.string().nullable(),
125
+ sku: z.string().nullable(),
126
+ brand: z.string().nullable(),
127
+ imageUrl: z.string().nullable(),
128
+ quantity: z.number().int().positive(),
129
+ available: z.number().int().nonnegative(),
130
+ allowBackorders: z.boolean(),
131
+ requiresShipping: z.boolean()
132
+ });
133
+ var SizeGuideMeasurementSchema = z.object({
134
+ key: z.string(),
135
+ name: z.string(),
136
+ min: z.number().nullable(),
137
+ max: z.number().nullable(),
138
+ value: z.number().nullable(),
139
+ description: z.string().nullable()
140
+ });
141
+ var SizeGuideRowSchema = z.object({
142
+ label: z.string(),
143
+ sizeKey: z.string(),
144
+ order: z.number().int().nonnegative(),
145
+ measurements: z.array(SizeGuideMeasurementSchema)
146
+ });
147
+ var SizeGuideSchema = z.object({
148
+ id: z.string(),
149
+ name: z.string(),
150
+ slug: z.string(),
151
+ description: z.string().nullable(),
152
+ imageUrl: z.string().nullable(),
153
+ gender: z.string(),
154
+ measurementType: z.string(),
155
+ unit: z.string(),
156
+ notes: z.string().nullable(),
157
+ rows: z.array(SizeGuideRowSchema)
158
+ });
159
+ var ProductDetailSchema = z.object({
160
+ id: ProductPublicIdSchema,
161
+ name: z.string(),
162
+ slug: z.string(),
163
+ description: z.string(),
164
+ productType: z.string(),
165
+ status: z.string(),
166
+ imageUrl: z.string(),
167
+ price: z.number().nonnegative(),
168
+ compareAtPrice: z.number().nonnegative().nullable(),
169
+ isAvailable: z.boolean(),
170
+ totalInventory: z.number().int().nonnegative(),
171
+ brand: z.string(),
172
+ category: z.string(),
173
+ categoryId: ProductPublicIdSchema.nullable(),
174
+ tags: z.array(z.string()),
175
+ specifications: z.array(SpecItemSchema),
176
+ variants: z.array(VariantItemSchema),
177
+ images: z.array(ProductImageSchema),
178
+ bundleItems: z.array(BundleItemSchema),
179
+ sizeGuide: SizeGuideSchema.nullable(),
180
+ priceTiers: z.array(ProductPriceTierSchema),
181
+ createdAt: z.string().datetime({ offset: true }).nullable(),
182
+ updatedAt: z.string().datetime({ offset: true }).nullable()
183
+ });
184
+
185
+ export { BundleItemSchema, FacetItemSchema, FacetSchema, PriceTierSchema, ProductDetailParamsSchema, ProductDetailSchema, ProductImageSchema, ProductPriceTierSchema, ProductPublicIdSchema, ProductSchema, ProductSortSchema, ProductSummariesSchema, ProductSummarySchema, ProductsParamsSchema, ProductsResponseSchema, RelatedProductsParamsSchema, SearchFilterSchema, SizeGuideMeasurementSchema, SizeGuideRowSchema, SizeGuideSchema, SpecItemSchema, VariantItemSchema, VariantOptionSchema, VariantSchema };
186
+ //# sourceMappingURL=products.js.map
187
+ //# sourceMappingURL=products.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/models/products.ts"],"names":[],"mappings":"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","file":"products.js","sourcesContent":["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"]}
@@ -0,0 +1,200 @@
1
+ 'use strict';
2
+
3
+ var zod = require('zod');
4
+
5
+ // src/models/search.ts
6
+ var ProductPublicIdSchema = zod.z.union([
7
+ zod.z.string().regex(/^[1-9]\d*$/),
8
+ zod.z.number().int().safe().positive()
9
+ ]).transform(String);
10
+ var ProductSummarySchema = zod.z.object({
11
+ id: ProductPublicIdSchema,
12
+ name: zod.z.string(),
13
+ slug: zod.z.string(),
14
+ productType: zod.z.string(),
15
+ imageUrl: zod.z.string(),
16
+ price: zod.z.number().nonnegative(),
17
+ compareAtPrice: zod.z.number().nonnegative().nullable(),
18
+ variantCount: zod.z.number().int().nonnegative(),
19
+ isAvailable: zod.z.boolean(),
20
+ totalInventory: zod.z.number().int().nonnegative(),
21
+ bundleItemsCount: zod.z.number().int().nonnegative(),
22
+ brand: zod.z.string(),
23
+ category: zod.z.string(),
24
+ status: zod.z.string(),
25
+ collections: zod.z.array(zod.z.string()),
26
+ tags: zod.z.array(zod.z.string())
27
+ });
28
+ zod.z.array(ProductSummarySchema);
29
+ var FacetItemSchema = zod.z.object({
30
+ value: zod.z.string(),
31
+ count: zod.z.number().int().nonnegative(),
32
+ label: zod.z.string().nullable(),
33
+ selected: zod.z.boolean()
34
+ });
35
+ var SearchFilterSchema = zod.z.object({
36
+ id: zod.z.string(),
37
+ label: zod.z.string(),
38
+ type: zod.z.enum(["list", "price_range"]),
39
+ values: zod.z.array(FacetItemSchema),
40
+ min: zod.z.number().nonnegative().nullable(),
41
+ max: zod.z.number().nonnegative().nullable(),
42
+ selectedMin: zod.z.number().nonnegative().nullable(),
43
+ selectedMax: zod.z.number().nonnegative().nullable()
44
+ });
45
+ zod.z.object({
46
+ pageIndex: zod.z.number().int().positive(),
47
+ pageSize: zod.z.number().int().positive().max(100),
48
+ totalCount: zod.z.number().int().nonnegative(),
49
+ totalPages: zod.z.number().int().nonnegative(),
50
+ products: zod.z.array(ProductSummarySchema),
51
+ filters: zod.z.array(SearchFilterSchema)
52
+ });
53
+ var ProductSortSchema = zod.z.enum([
54
+ "price_asc",
55
+ "price_desc",
56
+ "name_asc",
57
+ "name_desc",
58
+ "newest"
59
+ ]);
60
+ zod.z.object({
61
+ page: zod.z.number().int().positive().default(1),
62
+ pageSize: zod.z.number().int().positive().max(100).default(24),
63
+ sort: ProductSortSchema.optional(),
64
+ sellerId: zod.z.string().uuid().optional(),
65
+ search: zod.z.string().optional(),
66
+ collection: zod.z.string().optional(),
67
+ collections: zod.z.array(zod.z.string()).optional(),
68
+ collectionId: ProductPublicIdSchema.optional(),
69
+ category: zod.z.string().optional(),
70
+ categories: zod.z.array(zod.z.string()).optional(),
71
+ brand: zod.z.string().optional(),
72
+ brands: zod.z.array(zod.z.string()).optional(),
73
+ productType: zod.z.string().optional(),
74
+ productTypes: zod.z.array(zod.z.string()).optional(),
75
+ tag: zod.z.string().optional(),
76
+ tags: zod.z.array(zod.z.string()).optional(),
77
+ filters: zod.z.array(zod.z.string()).optional(),
78
+ locationId: zod.z.string().uuid().optional(),
79
+ inStock: zod.z.boolean().optional(),
80
+ minPrice: zod.z.number().nonnegative().optional(),
81
+ maxPrice: zod.z.number().nonnegative().optional()
82
+ });
83
+ zod.z.object({
84
+ sellerId: zod.z.string().uuid().optional()
85
+ });
86
+ zod.z.object({
87
+ productId: ProductPublicIdSchema,
88
+ limit: zod.z.number().int().positive().max(12).default(8),
89
+ sellerId: zod.z.string().uuid().optional()
90
+ });
91
+ var SpecItemSchema = zod.z.object({
92
+ key: zod.z.string(),
93
+ name: zod.z.string(),
94
+ value: zod.z.string()
95
+ });
96
+ var ProductImageSchema = zod.z.object({
97
+ url: zod.z.string(),
98
+ name: zod.z.string(),
99
+ order: zod.z.number().int().nonnegative()
100
+ });
101
+ var VariantItemSchema = zod.z.object({
102
+ id: zod.z.string().nullable(),
103
+ sku: zod.z.string(),
104
+ status: zod.z.string(),
105
+ price: zod.z.number().nonnegative(),
106
+ compareAtPrice: zod.z.number().nonnegative().nullable(),
107
+ quantity: zod.z.number().int().nonnegative(),
108
+ options: zod.z.array(SpecItemSchema),
109
+ images: zod.z.array(ProductImageSchema)
110
+ });
111
+ var ProductPriceTierSchema = zod.z.object({
112
+ variantId: zod.z.string(),
113
+ minQuantity: zod.z.number().int().positive(),
114
+ maxQuantity: zod.z.number().int().positive().nullable(),
115
+ unitPrice: zod.z.number().nonnegative()
116
+ });
117
+ var BundleItemSchema = zod.z.object({
118
+ productId: ProductPublicIdSchema,
119
+ variantId: ProductPublicIdSchema,
120
+ productName: zod.z.string(),
121
+ variantName: zod.z.string().nullable(),
122
+ sku: zod.z.string().nullable(),
123
+ brand: zod.z.string().nullable(),
124
+ imageUrl: zod.z.string().nullable(),
125
+ quantity: zod.z.number().int().positive(),
126
+ available: zod.z.number().int().nonnegative(),
127
+ allowBackorders: zod.z.boolean(),
128
+ requiresShipping: zod.z.boolean()
129
+ });
130
+ var SizeGuideMeasurementSchema = zod.z.object({
131
+ key: zod.z.string(),
132
+ name: zod.z.string(),
133
+ min: zod.z.number().nullable(),
134
+ max: zod.z.number().nullable(),
135
+ value: zod.z.number().nullable(),
136
+ description: zod.z.string().nullable()
137
+ });
138
+ var SizeGuideRowSchema = zod.z.object({
139
+ label: zod.z.string(),
140
+ sizeKey: zod.z.string(),
141
+ order: zod.z.number().int().nonnegative(),
142
+ measurements: zod.z.array(SizeGuideMeasurementSchema)
143
+ });
144
+ var SizeGuideSchema = zod.z.object({
145
+ id: zod.z.string(),
146
+ name: zod.z.string(),
147
+ slug: zod.z.string(),
148
+ description: zod.z.string().nullable(),
149
+ imageUrl: zod.z.string().nullable(),
150
+ gender: zod.z.string(),
151
+ measurementType: zod.z.string(),
152
+ unit: zod.z.string(),
153
+ notes: zod.z.string().nullable(),
154
+ rows: zod.z.array(SizeGuideRowSchema)
155
+ });
156
+ zod.z.object({
157
+ id: ProductPublicIdSchema,
158
+ name: zod.z.string(),
159
+ slug: zod.z.string(),
160
+ description: zod.z.string(),
161
+ productType: zod.z.string(),
162
+ status: zod.z.string(),
163
+ imageUrl: zod.z.string(),
164
+ price: zod.z.number().nonnegative(),
165
+ compareAtPrice: zod.z.number().nonnegative().nullable(),
166
+ isAvailable: zod.z.boolean(),
167
+ totalInventory: zod.z.number().int().nonnegative(),
168
+ brand: zod.z.string(),
169
+ category: zod.z.string(),
170
+ categoryId: ProductPublicIdSchema.nullable(),
171
+ tags: zod.z.array(zod.z.string()),
172
+ specifications: zod.z.array(SpecItemSchema),
173
+ variants: zod.z.array(VariantItemSchema),
174
+ images: zod.z.array(ProductImageSchema),
175
+ bundleItems: zod.z.array(BundleItemSchema),
176
+ sizeGuide: SizeGuideSchema.nullable(),
177
+ priceTiers: zod.z.array(ProductPriceTierSchema),
178
+ createdAt: zod.z.string().datetime({ offset: true }).nullable(),
179
+ updatedAt: zod.z.string().datetime({ offset: true }).nullable()
180
+ });
181
+
182
+ // src/models/search.ts
183
+ var ProductAutocompleteParamsSchema = zod.z.object({
184
+ search: zod.z.string().min(2).max(80),
185
+ limit: zod.z.number().int().positive().max(20).default(8),
186
+ sellerId: zod.z.string().uuid().optional()
187
+ });
188
+ var ProductSuggestionSchema = zod.z.object({
189
+ id: ProductPublicIdSchema,
190
+ name: zod.z.string(),
191
+ slug: zod.z.string(),
192
+ imageUrl: zod.z.string()
193
+ });
194
+ var ProductSuggestionsSchema = zod.z.array(ProductSuggestionSchema);
195
+
196
+ exports.ProductAutocompleteParamsSchema = ProductAutocompleteParamsSchema;
197
+ exports.ProductSuggestionSchema = ProductSuggestionSchema;
198
+ exports.ProductSuggestionsSchema = ProductSuggestionsSchema;
199
+ //# sourceMappingURL=search.cjs.map
200
+ //# sourceMappingURL=search.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/models/products.ts","../../src/models/search.ts"],"names":["z"],"mappings":"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","file":"search.cjs","sourcesContent":["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\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"]}
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const ProductAutocompleteParamsSchema: z.ZodObject<{
4
+ search: z.ZodString;
5
+ limit: z.ZodDefault<z.ZodNumber>;
6
+ sellerId: z.ZodOptional<z.ZodString>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ search: string;
9
+ limit: number;
10
+ sellerId?: string | undefined;
11
+ }, {
12
+ search: string;
13
+ sellerId?: string | undefined;
14
+ limit?: number | undefined;
15
+ }>;
16
+ declare const ProductSuggestionSchema: z.ZodObject<{
17
+ id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
18
+ name: z.ZodString;
19
+ slug: z.ZodString;
20
+ imageUrl: z.ZodString;
21
+ }, "strip", z.ZodTypeAny, {
22
+ id: string;
23
+ slug: string;
24
+ name: string;
25
+ imageUrl: string;
26
+ }, {
27
+ id: string | number;
28
+ slug: string;
29
+ name: string;
30
+ imageUrl: string;
31
+ }>;
32
+ declare const ProductSuggestionsSchema: z.ZodArray<z.ZodObject<{
33
+ id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
34
+ name: z.ZodString;
35
+ slug: z.ZodString;
36
+ imageUrl: z.ZodString;
37
+ }, "strip", z.ZodTypeAny, {
38
+ id: string;
39
+ slug: string;
40
+ name: string;
41
+ imageUrl: string;
42
+ }, {
43
+ id: string | number;
44
+ slug: string;
45
+ name: string;
46
+ imageUrl: string;
47
+ }>, "many">;
48
+ type ProductAutocompleteParams = z.input<typeof ProductAutocompleteParamsSchema>;
49
+ type ProductSuggestion = z.infer<typeof ProductSuggestionSchema>;
50
+
51
+ export { type ProductAutocompleteParams, ProductAutocompleteParamsSchema, type ProductSuggestion, ProductSuggestionSchema, ProductSuggestionsSchema };
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const ProductAutocompleteParamsSchema: z.ZodObject<{
4
+ search: z.ZodString;
5
+ limit: z.ZodDefault<z.ZodNumber>;
6
+ sellerId: z.ZodOptional<z.ZodString>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ search: string;
9
+ limit: number;
10
+ sellerId?: string | undefined;
11
+ }, {
12
+ search: string;
13
+ sellerId?: string | undefined;
14
+ limit?: number | undefined;
15
+ }>;
16
+ declare const ProductSuggestionSchema: z.ZodObject<{
17
+ id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
18
+ name: z.ZodString;
19
+ slug: z.ZodString;
20
+ imageUrl: z.ZodString;
21
+ }, "strip", z.ZodTypeAny, {
22
+ id: string;
23
+ slug: string;
24
+ name: string;
25
+ imageUrl: string;
26
+ }, {
27
+ id: string | number;
28
+ slug: string;
29
+ name: string;
30
+ imageUrl: string;
31
+ }>;
32
+ declare const ProductSuggestionsSchema: z.ZodArray<z.ZodObject<{
33
+ id: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string, string | number>;
34
+ name: z.ZodString;
35
+ slug: z.ZodString;
36
+ imageUrl: z.ZodString;
37
+ }, "strip", z.ZodTypeAny, {
38
+ id: string;
39
+ slug: string;
40
+ name: string;
41
+ imageUrl: string;
42
+ }, {
43
+ id: string | number;
44
+ slug: string;
45
+ name: string;
46
+ imageUrl: string;
47
+ }>, "many">;
48
+ type ProductAutocompleteParams = z.input<typeof ProductAutocompleteParamsSchema>;
49
+ type ProductSuggestion = z.infer<typeof ProductSuggestionSchema>;
50
+
51
+ export { type ProductAutocompleteParams, ProductAutocompleteParamsSchema, type ProductSuggestion, ProductSuggestionSchema, ProductSuggestionsSchema };