@develemit/commerce-contracts 0.3.0 → 0.6.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.
- package/dist/index.cjs +265 -131
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +160 -10
- package/dist/index.d.ts +160 -10
- package/dist/index.js +252 -131
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -68,8 +68,81 @@ var cartLineSchema = z3.object({
|
|
|
68
68
|
});
|
|
69
69
|
|
|
70
70
|
// src/checkout.ts
|
|
71
|
+
import { z as z5 } from "zod";
|
|
72
|
+
|
|
73
|
+
// src/discount.ts
|
|
71
74
|
import { z as z4 } from "zod";
|
|
72
|
-
var
|
|
75
|
+
var discountTypeSchema = z4.enum(["percent", "fixed"]);
|
|
76
|
+
var discountCodeSchema = z4.string().transform((value) => value.trim().toUpperCase()).pipe(
|
|
77
|
+
z4.string().min(1).max(40).regex(/^[A-Z0-9_-]+$/)
|
|
78
|
+
);
|
|
79
|
+
var currencyInputSchema = z4.string().transform((value) => value.trim().toUpperCase()).pipe(z4.string().length(3));
|
|
80
|
+
var limitFields = {
|
|
81
|
+
minSubtotalCents: z4.number().int().positive().nullable().optional(),
|
|
82
|
+
startsAt: z4.string().min(1).nullable().optional(),
|
|
83
|
+
endsAt: z4.string().min(1).nullable().optional(),
|
|
84
|
+
maxRedemptions: z4.number().int().positive().nullable().optional(),
|
|
85
|
+
active: z4.boolean()
|
|
86
|
+
};
|
|
87
|
+
var discountValueFields = {
|
|
88
|
+
type: discountTypeSchema,
|
|
89
|
+
percentOff: z4.number().int().min(1).max(100).nullable().optional(),
|
|
90
|
+
amountOffCents: z4.number().int().positive().nullable().optional(),
|
|
91
|
+
currency: currencyInputSchema.nullable().optional()
|
|
92
|
+
};
|
|
93
|
+
var hasValue = (value) => value !== void 0 && value !== null;
|
|
94
|
+
function valueFieldsAgree(input) {
|
|
95
|
+
const { type, percentOff, amountOffCents, currency } = input;
|
|
96
|
+
if (type === "percent") {
|
|
97
|
+
return hasValue(percentOff) && !hasValue(amountOffCents) && !hasValue(currency);
|
|
98
|
+
}
|
|
99
|
+
if (type === "fixed") {
|
|
100
|
+
return !hasValue(percentOff) && hasValue(amountOffCents) && hasValue(currency);
|
|
101
|
+
}
|
|
102
|
+
return !(hasValue(percentOff) && hasValue(amountOffCents));
|
|
103
|
+
}
|
|
104
|
+
var valueFieldsMessage = {
|
|
105
|
+
message: "percent needs percentOff only; fixed needs amountOffCents and currency only",
|
|
106
|
+
path: ["type"]
|
|
107
|
+
};
|
|
108
|
+
var discountSchema = z4.object({
|
|
109
|
+
id: z4.string().min(1),
|
|
110
|
+
code: discountCodeSchema,
|
|
111
|
+
...discountValueFields,
|
|
112
|
+
...limitFields,
|
|
113
|
+
redeemedCount: z4.number().int().nonnegative(),
|
|
114
|
+
reservedCount: z4.number().int().nonnegative(),
|
|
115
|
+
createdAt: z4.string().min(1)
|
|
116
|
+
});
|
|
117
|
+
var discountInputSchema = z4.object({
|
|
118
|
+
code: discountCodeSchema,
|
|
119
|
+
...discountValueFields,
|
|
120
|
+
...limitFields,
|
|
121
|
+
active: limitFields.active.default(true)
|
|
122
|
+
}).refine(valueFieldsAgree, valueFieldsMessage);
|
|
123
|
+
var discountPatchSchema = z4.object({
|
|
124
|
+
code: discountCodeSchema,
|
|
125
|
+
...discountValueFields,
|
|
126
|
+
...limitFields
|
|
127
|
+
}).partial().refine(valueFieldsAgree, valueFieldsMessage);
|
|
128
|
+
var discountStatusSchema = z4.enum([
|
|
129
|
+
"active",
|
|
130
|
+
"inactive",
|
|
131
|
+
"scheduled",
|
|
132
|
+
"expired"
|
|
133
|
+
]);
|
|
134
|
+
var adminDiscountListQuerySchema = z4.object({
|
|
135
|
+
status: discountStatusSchema.optional(),
|
|
136
|
+
q: z4.string().trim().min(1).optional(),
|
|
137
|
+
cursor: z4.string().min(1).optional(),
|
|
138
|
+
limit: z4.coerce.number().int().min(1).max(100).default(25)
|
|
139
|
+
});
|
|
140
|
+
var adminDiscountPageSchema = z4.object({
|
|
141
|
+
items: z4.array(discountSchema),
|
|
142
|
+
nextCursor: z4.string().nullable()
|
|
143
|
+
});
|
|
144
|
+
var discountPreviewRequestSchema = z4.object({
|
|
145
|
+
code: discountCodeSchema,
|
|
73
146
|
items: z4.array(
|
|
74
147
|
z4.object({
|
|
75
148
|
productId: z4.string().min(1),
|
|
@@ -77,16 +150,46 @@ var checkoutRequestSchema = z4.object({
|
|
|
77
150
|
})
|
|
78
151
|
).min(1)
|
|
79
152
|
});
|
|
80
|
-
var
|
|
81
|
-
|
|
153
|
+
var discountPreviewSchema = z4.object({
|
|
154
|
+
code: z4.string().min(1),
|
|
155
|
+
discountCents: z4.number().int().nonnegative(),
|
|
156
|
+
subtotalCents: z4.number().int().nonnegative(),
|
|
157
|
+
currency: z4.string().length(3)
|
|
82
158
|
});
|
|
83
|
-
var
|
|
84
|
-
|
|
159
|
+
var discountRejectionReasonSchema = z4.enum([
|
|
160
|
+
"not_found",
|
|
161
|
+
"inactive",
|
|
162
|
+
"not_started",
|
|
163
|
+
"expired",
|
|
164
|
+
"min_subtotal",
|
|
165
|
+
"exhausted",
|
|
166
|
+
"currency"
|
|
167
|
+
]);
|
|
168
|
+
var discountRejectionSchema = z4.object({
|
|
169
|
+
error: z4.literal("DISCOUNT_INVALID"),
|
|
170
|
+
reason: discountRejectionReasonSchema
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
// src/checkout.ts
|
|
174
|
+
var checkoutRequestSchema = z5.object({
|
|
175
|
+
items: z5.array(
|
|
176
|
+
z5.object({
|
|
177
|
+
productId: z5.string().min(1),
|
|
178
|
+
quantity: z5.number().int().positive()
|
|
179
|
+
})
|
|
180
|
+
).min(1),
|
|
181
|
+
discountCode: discountCodeSchema.optional()
|
|
182
|
+
});
|
|
183
|
+
var checkoutResponseSchema = z5.object({
|
|
184
|
+
url: z5.string().min(1)
|
|
185
|
+
});
|
|
186
|
+
var checkoutConflictSchema = z5.object({
|
|
187
|
+
unavailableProductIds: z5.array(z5.string().min(1)).min(1)
|
|
85
188
|
});
|
|
86
189
|
|
|
87
190
|
// src/order.ts
|
|
88
|
-
import { z as
|
|
89
|
-
var orderStatusSchema =
|
|
191
|
+
import { z as z6 } from "zod";
|
|
192
|
+
var orderStatusSchema = z6.enum([
|
|
90
193
|
"pending",
|
|
91
194
|
"paid",
|
|
92
195
|
"shipped",
|
|
@@ -95,167 +198,174 @@ var orderStatusSchema = z5.enum([
|
|
|
95
198
|
"needs_attention",
|
|
96
199
|
"refunded"
|
|
97
200
|
]);
|
|
98
|
-
var orderItemSchema =
|
|
99
|
-
productId:
|
|
100
|
-
name:
|
|
101
|
-
priceCents:
|
|
102
|
-
quantity:
|
|
103
|
-
});
|
|
104
|
-
var orderFulfillmentSchema =
|
|
105
|
-
carrier:
|
|
106
|
-
trackingNumber:
|
|
107
|
-
trackingUrl:
|
|
108
|
-
shippedAt:
|
|
109
|
-
});
|
|
110
|
-
var orderRefundSchema =
|
|
111
|
-
id:
|
|
112
|
-
amountCents:
|
|
113
|
-
reason:
|
|
114
|
-
restocked:
|
|
115
|
-
source:
|
|
116
|
-
status:
|
|
117
|
-
createdAt:
|
|
201
|
+
var orderItemSchema = z6.object({
|
|
202
|
+
productId: z6.string().min(1),
|
|
203
|
+
name: z6.string().min(1),
|
|
204
|
+
priceCents: z6.number().int().nonnegative(),
|
|
205
|
+
quantity: z6.number().int().positive()
|
|
206
|
+
});
|
|
207
|
+
var orderFulfillmentSchema = z6.object({
|
|
208
|
+
carrier: z6.string().nullable(),
|
|
209
|
+
trackingNumber: z6.string().nullable(),
|
|
210
|
+
trackingUrl: z6.string().url().nullable(),
|
|
211
|
+
shippedAt: z6.string().min(1)
|
|
212
|
+
});
|
|
213
|
+
var orderRefundSchema = z6.object({
|
|
214
|
+
id: z6.string().min(1),
|
|
215
|
+
amountCents: z6.number().int().positive(),
|
|
216
|
+
reason: z6.string().nullable(),
|
|
217
|
+
restocked: z6.boolean(),
|
|
218
|
+
source: z6.enum(["admin", "gateway"]),
|
|
219
|
+
status: z6.enum(["pending", "succeeded"]),
|
|
220
|
+
createdAt: z6.string().min(1)
|
|
118
221
|
});
|
|
119
222
|
var orderTotalsShape = {
|
|
120
|
-
id:
|
|
223
|
+
id: z6.string().min(1),
|
|
121
224
|
status: orderStatusSchema,
|
|
122
|
-
subtotalCents:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
225
|
+
subtotalCents: z6.number().int().nonnegative(),
|
|
226
|
+
discountCents: z6.number().int().nonnegative().default(0),
|
|
227
|
+
discountCode: z6.string().nullable().default(null),
|
|
228
|
+
shippingCents: z6.number().int().nonnegative(),
|
|
229
|
+
shippingLabel: z6.string().nullable(),
|
|
230
|
+
totalCents: z6.number().int().nonnegative(),
|
|
231
|
+
currency: z6.string().length(3),
|
|
232
|
+
items: z6.array(orderItemSchema),
|
|
128
233
|
fulfillment: orderFulfillmentSchema.nullable(),
|
|
129
|
-
createdAt:
|
|
234
|
+
createdAt: z6.string().min(1)
|
|
130
235
|
};
|
|
131
|
-
var orderSummarySchema =
|
|
132
|
-
var orderAddressSchema =
|
|
133
|
-
name:
|
|
134
|
-
line1:
|
|
135
|
-
line2:
|
|
136
|
-
city:
|
|
137
|
-
state:
|
|
138
|
-
postalCode:
|
|
139
|
-
country:
|
|
140
|
-
});
|
|
141
|
-
var orderDetailSchema =
|
|
236
|
+
var orderSummarySchema = z6.object(orderTotalsShape);
|
|
237
|
+
var orderAddressSchema = z6.object({
|
|
238
|
+
name: z6.string().optional(),
|
|
239
|
+
line1: z6.string().optional(),
|
|
240
|
+
line2: z6.string().optional(),
|
|
241
|
+
city: z6.string().optional(),
|
|
242
|
+
state: z6.string().optional(),
|
|
243
|
+
postalCode: z6.string().optional(),
|
|
244
|
+
country: z6.string().optional()
|
|
245
|
+
});
|
|
246
|
+
var orderDetailSchema = z6.object({
|
|
142
247
|
...orderTotalsShape,
|
|
143
|
-
email:
|
|
248
|
+
email: z6.string().nullable(),
|
|
144
249
|
shippingAddress: orderAddressSchema.nullable()
|
|
145
250
|
});
|
|
146
251
|
|
|
147
252
|
// src/shipping.ts
|
|
148
|
-
import { z as
|
|
149
|
-
var shippingRateSchema =
|
|
150
|
-
label:
|
|
151
|
-
amountCents:
|
|
152
|
-
currency:
|
|
153
|
-
minDays:
|
|
154
|
-
maxDays:
|
|
155
|
-
active:
|
|
156
|
-
sort:
|
|
253
|
+
import { z as z7 } from "zod";
|
|
254
|
+
var shippingRateSchema = z7.object({
|
|
255
|
+
label: z7.string().min(1),
|
|
256
|
+
amountCents: z7.number().int().nonnegative(),
|
|
257
|
+
currency: z7.string().length(3),
|
|
258
|
+
minDays: z7.number().int().nonnegative().nullable().optional(),
|
|
259
|
+
maxDays: z7.number().int().nonnegative().nullable().optional(),
|
|
260
|
+
active: z7.boolean().default(true),
|
|
261
|
+
sort: z7.number().int().default(0)
|
|
157
262
|
});
|
|
158
|
-
var shippingRatesInputSchema =
|
|
263
|
+
var shippingRatesInputSchema = z7.array(shippingRateSchema).refine((rates) => new Set(rates.map((r) => r.label)).size === rates.length, {
|
|
159
264
|
message: "Shipping rate labels must be unique"
|
|
160
265
|
});
|
|
161
266
|
|
|
162
267
|
// src/admin.ts
|
|
163
|
-
import { z as
|
|
164
|
-
var productStatusSchema =
|
|
165
|
-
var productFields =
|
|
166
|
-
name:
|
|
167
|
-
description:
|
|
168
|
-
materials:
|
|
169
|
-
dimensions:
|
|
170
|
-
priceCents:
|
|
171
|
-
currency:
|
|
172
|
-
category:
|
|
173
|
-
quantity:
|
|
268
|
+
import { z as z8 } from "zod";
|
|
269
|
+
var productStatusSchema = z8.enum(["draft", "active", "archived"]);
|
|
270
|
+
var productFields = z8.object({
|
|
271
|
+
name: z8.string().trim().min(1),
|
|
272
|
+
description: z8.string(),
|
|
273
|
+
materials: z8.string().nullable().optional(),
|
|
274
|
+
dimensions: z8.string().nullable().optional(),
|
|
275
|
+
priceCents: z8.number().int().nonnegative(),
|
|
276
|
+
currency: z8.string().length(3).optional(),
|
|
277
|
+
category: z8.string().trim().min(1),
|
|
278
|
+
quantity: z8.number().int().nonnegative(),
|
|
174
279
|
status: productStatusSchema,
|
|
175
|
-
featured:
|
|
280
|
+
featured: z8.boolean()
|
|
176
281
|
});
|
|
177
282
|
var adminProductInputSchema = productFields.extend({
|
|
178
|
-
description:
|
|
179
|
-
quantity:
|
|
283
|
+
description: z8.string().default(""),
|
|
284
|
+
quantity: z8.number().int().nonnegative().default(1),
|
|
180
285
|
status: productStatusSchema.default("draft"),
|
|
181
|
-
featured:
|
|
182
|
-
});
|
|
183
|
-
var adminProductPatchSchema = productFields.partial().extend({ sold:
|
|
184
|
-
var adminProductImageSchema =
|
|
185
|
-
id:
|
|
186
|
-
url:
|
|
187
|
-
alt:
|
|
188
|
-
position:
|
|
189
|
-
});
|
|
190
|
-
var adminProductSchema =
|
|
191
|
-
id:
|
|
192
|
-
slug:
|
|
193
|
-
name:
|
|
194
|
-
description:
|
|
195
|
-
materials:
|
|
196
|
-
dimensions:
|
|
197
|
-
priceCents:
|
|
198
|
-
currency:
|
|
199
|
-
category:
|
|
200
|
-
quantity:
|
|
286
|
+
featured: z8.boolean().default(false)
|
|
287
|
+
});
|
|
288
|
+
var adminProductPatchSchema = productFields.partial().extend({ sold: z8.boolean().optional() });
|
|
289
|
+
var adminProductImageSchema = z8.object({
|
|
290
|
+
id: z8.string().min(1),
|
|
291
|
+
url: z8.string().min(1),
|
|
292
|
+
alt: z8.string(),
|
|
293
|
+
position: z8.number().int().nonnegative()
|
|
294
|
+
});
|
|
295
|
+
var adminProductSchema = z8.object({
|
|
296
|
+
id: z8.string().min(1),
|
|
297
|
+
slug: z8.string().min(1),
|
|
298
|
+
name: z8.string().min(1),
|
|
299
|
+
description: z8.string(),
|
|
300
|
+
materials: z8.string().nullable(),
|
|
301
|
+
dimensions: z8.string().nullable(),
|
|
302
|
+
priceCents: z8.number().int().nonnegative(),
|
|
303
|
+
currency: z8.string().length(3),
|
|
304
|
+
category: z8.string().min(1),
|
|
305
|
+
quantity: z8.number().int().nonnegative(),
|
|
201
306
|
status: productStatusSchema,
|
|
202
|
-
featured:
|
|
203
|
-
images:
|
|
307
|
+
featured: z8.boolean(),
|
|
308
|
+
images: z8.array(adminProductImageSchema)
|
|
309
|
+
});
|
|
310
|
+
var imageOrderInputSchema = z8.object({
|
|
311
|
+
imageIds: z8.array(z8.string().min(1))
|
|
204
312
|
});
|
|
205
|
-
var
|
|
206
|
-
|
|
313
|
+
var productImagePatchSchema = z8.object({
|
|
314
|
+
alt: z8.string().trim().max(500)
|
|
207
315
|
});
|
|
208
|
-
var adminProductListQuerySchema =
|
|
316
|
+
var adminProductListQuerySchema = z8.object({
|
|
209
317
|
status: productStatusSchema.optional(),
|
|
210
|
-
stock:
|
|
211
|
-
q:
|
|
212
|
-
cursor:
|
|
213
|
-
limit:
|
|
318
|
+
stock: z8.enum(["in", "sold"]).optional(),
|
|
319
|
+
q: z8.string().trim().min(1).optional(),
|
|
320
|
+
cursor: z8.string().min(1).optional(),
|
|
321
|
+
limit: z8.coerce.number().int().min(1).max(100).default(50)
|
|
214
322
|
});
|
|
215
|
-
var adminProductPageSchema =
|
|
216
|
-
items:
|
|
217
|
-
nextCursor:
|
|
323
|
+
var adminProductPageSchema = z8.object({
|
|
324
|
+
items: z8.array(adminProductSchema),
|
|
325
|
+
nextCursor: z8.string().nullable()
|
|
218
326
|
});
|
|
219
327
|
|
|
220
328
|
// src/admin-orders.ts
|
|
221
|
-
import { z as
|
|
222
|
-
var adminOrderListQuerySchema =
|
|
329
|
+
import { z as z9 } from "zod";
|
|
330
|
+
var adminOrderListQuerySchema = z9.object({
|
|
223
331
|
status: orderStatusSchema.optional(),
|
|
224
|
-
q:
|
|
225
|
-
hasPendingRefund:
|
|
226
|
-
cursor:
|
|
227
|
-
limit:
|
|
332
|
+
q: z9.string().trim().min(1).optional(),
|
|
333
|
+
hasPendingRefund: z9.enum(["true", "false"]).transform((v) => v === "true").optional(),
|
|
334
|
+
cursor: z9.string().min(1).optional(),
|
|
335
|
+
limit: z9.coerce.number().int().min(1).max(100).default(25)
|
|
228
336
|
});
|
|
229
|
-
var adminOrderListItemSchema =
|
|
230
|
-
id:
|
|
337
|
+
var adminOrderListItemSchema = z9.object({
|
|
338
|
+
id: z9.string().min(1),
|
|
231
339
|
status: orderStatusSchema,
|
|
232
|
-
email:
|
|
233
|
-
totalCents:
|
|
234
|
-
currency:
|
|
235
|
-
itemCount:
|
|
236
|
-
createdAt:
|
|
340
|
+
email: z9.string().nullable(),
|
|
341
|
+
totalCents: z9.number().int().nonnegative(),
|
|
342
|
+
currency: z9.string().length(3),
|
|
343
|
+
itemCount: z9.number().int().nonnegative(),
|
|
344
|
+
createdAt: z9.string().min(1)
|
|
237
345
|
});
|
|
238
|
-
var adminOrderPageSchema =
|
|
239
|
-
items:
|
|
240
|
-
nextCursor:
|
|
346
|
+
var adminOrderPageSchema = z9.object({
|
|
347
|
+
items: z9.array(adminOrderListItemSchema),
|
|
348
|
+
nextCursor: z9.string().nullable()
|
|
241
349
|
});
|
|
242
350
|
var adminOrderDetailSchema = orderDetailSchema.extend({
|
|
243
|
-
refunds:
|
|
244
|
-
refundedCents:
|
|
245
|
-
checkoutSessionId:
|
|
246
|
-
updatedAt:
|
|
351
|
+
refunds: z9.array(orderRefundSchema),
|
|
352
|
+
refundedCents: z9.number().int().nonnegative(),
|
|
353
|
+
checkoutSessionId: z9.string().nullable(),
|
|
354
|
+
updatedAt: z9.string().min(1)
|
|
247
355
|
});
|
|
248
|
-
var shipOrderInputSchema =
|
|
249
|
-
carrier:
|
|
250
|
-
trackingNumber:
|
|
251
|
-
trackingUrl:
|
|
356
|
+
var shipOrderInputSchema = z9.object({
|
|
357
|
+
carrier: z9.string().optional(),
|
|
358
|
+
trackingNumber: z9.string().optional(),
|
|
359
|
+
trackingUrl: z9.string().url().optional()
|
|
252
360
|
});
|
|
253
|
-
var refundOrderInputSchema =
|
|
254
|
-
amountCents:
|
|
255
|
-
reason:
|
|
256
|
-
restock:
|
|
361
|
+
var refundOrderInputSchema = z9.object({
|
|
362
|
+
amountCents: z9.number().int().positive().optional(),
|
|
363
|
+
reason: z9.string().max(500).optional(),
|
|
364
|
+
restock: z9.boolean().default(false)
|
|
257
365
|
});
|
|
258
366
|
export {
|
|
367
|
+
adminDiscountListQuerySchema,
|
|
368
|
+
adminDiscountPageSchema,
|
|
259
369
|
adminOrderDetailSchema,
|
|
260
370
|
adminOrderListItemSchema,
|
|
261
371
|
adminOrderListQuerySchema,
|
|
@@ -272,6 +382,16 @@ export {
|
|
|
272
382
|
checkoutConflictSchema,
|
|
273
383
|
checkoutRequestSchema,
|
|
274
384
|
checkoutResponseSchema,
|
|
385
|
+
discountCodeSchema,
|
|
386
|
+
discountInputSchema,
|
|
387
|
+
discountPatchSchema,
|
|
388
|
+
discountPreviewRequestSchema,
|
|
389
|
+
discountPreviewSchema,
|
|
390
|
+
discountRejectionReasonSchema,
|
|
391
|
+
discountRejectionSchema,
|
|
392
|
+
discountSchema,
|
|
393
|
+
discountStatusSchema,
|
|
394
|
+
discountTypeSchema,
|
|
275
395
|
imageOrderInputSchema,
|
|
276
396
|
moneySchema,
|
|
277
397
|
orderAddressSchema,
|
|
@@ -282,6 +402,7 @@ export {
|
|
|
282
402
|
orderSummarySchema,
|
|
283
403
|
productCardPageSchema,
|
|
284
404
|
productCardSchema,
|
|
405
|
+
productImagePatchSchema,
|
|
285
406
|
productImageSchema,
|
|
286
407
|
productListQuerySchema,
|
|
287
408
|
productSchema,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/money.ts","../src/product.ts","../src/cart.ts","../src/checkout.ts","../src/order.ts","../src/shipping.ts","../src/admin.ts","../src/admin-orders.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const moneySchema = z.object({\n amountCents: z.number().int(),\n currency: z.string().length(3),\n});\n\nexport type Money = z.infer<typeof moneySchema>;\n","import { z } from 'zod';\n\nexport const productImageSchema = z.object({\n url: z.string().min(1),\n alt: z.string(),\n});\n\nexport const availabilitySchema = z.enum(['available', 'sold', 'reserved']);\n\nexport const productSchema = z.object({\n id: z.string().min(1),\n slug: z.string().min(1),\n name: z.string().min(1),\n description: z.string(),\n materials: z.string().optional(),\n dimensions: z.string().optional(),\n priceCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n category: z.string().min(1),\n images: z.array(productImageSchema),\n quantity: z.number().int().nonnegative(),\n availability: availabilitySchema,\n featured: z.boolean(),\n});\n\nexport const productCardSchema = productSchema\n .pick({\n id: true,\n slug: true,\n name: true,\n priceCents: true,\n currency: true,\n category: true,\n quantity: true,\n availability: true,\n featured: true,\n })\n .extend({ images: z.array(productImageSchema).max(1) });\n\nexport const categorySchema = z.object({\n slug: z.string().min(1),\n label: z.string().min(1),\n count: z.number().int().nonnegative(),\n});\n\nexport const productListQuerySchema = z.object({\n category: z.string().min(1).optional(),\n featured: z.boolean().optional(),\n limit: z.coerce.number().int().min(1).max(100).default(48),\n cursor: z.string().min(1).optional(),\n});\n\nexport const productCardPageSchema = z.object({\n items: z.array(productCardSchema),\n nextCursor: z.string().nullable(),\n});\n\nexport type ProductImage = z.infer<typeof productImageSchema>;\nexport type ProductAvailability = z.infer<typeof availabilitySchema>;\nexport type Product = z.infer<typeof productSchema>;\nexport type ProductCard = z.infer<typeof productCardSchema>;\nexport type ProductCardPage = z.infer<typeof productCardPageSchema>;\nexport type Category = z.infer<typeof categorySchema>;\nexport type ProductListQuery = z.input<typeof productListQuerySchema>;\n","import { z } from 'zod';\n\nexport const cartLineSchema = z.object({\n productId: z.string().min(1),\n slug: z.string().min(1),\n name: z.string().min(1),\n priceCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n imageUrl: z.string().optional(),\n quantity: z.number().int().positive(),\n maxQuantity: z.number().int().positive(),\n});\n\nexport type CartLine = z.infer<typeof cartLineSchema>;\n","import { z } from 'zod';\n\nexport const checkoutRequestSchema = z.object({\n items: z\n .array(\n z.object({\n productId: z.string().min(1),\n quantity: z.number().int().positive(),\n }),\n )\n .min(1),\n});\n\nexport const checkoutResponseSchema = z.object({\n url: z.string().min(1),\n});\n\nexport const checkoutConflictSchema = z.object({\n unavailableProductIds: z.array(z.string().min(1)).min(1),\n});\n\nexport type CheckoutRequest = z.infer<typeof checkoutRequestSchema>;\nexport type CheckoutResponse = z.infer<typeof checkoutResponseSchema>;\nexport type CheckoutConflict = z.infer<typeof checkoutConflictSchema>;\n","import { z } from 'zod';\n\nexport const orderStatusSchema = z.enum([\n 'pending',\n 'paid',\n 'shipped',\n 'cancelled',\n 'expired',\n 'needs_attention',\n 'refunded',\n]);\n\nconst orderItemSchema = z.object({\n productId: z.string().min(1),\n name: z.string().min(1),\n priceCents: z.number().int().nonnegative(),\n quantity: z.number().int().positive(),\n});\n\nexport const orderFulfillmentSchema = z.object({\n carrier: z.string().nullable(),\n trackingNumber: z.string().nullable(),\n trackingUrl: z.string().url().nullable(),\n shippedAt: z.string().min(1),\n});\n\nexport const orderRefundSchema = z.object({\n id: z.string().min(1),\n amountCents: z.number().int().positive(),\n reason: z.string().nullable(),\n restocked: z.boolean(),\n source: z.enum(['admin', 'gateway']),\n status: z.enum(['pending', 'succeeded']),\n createdAt: z.string().min(1),\n});\n\nconst orderTotalsShape = {\n id: z.string().min(1),\n status: orderStatusSchema,\n subtotalCents: z.number().int().nonnegative(),\n shippingCents: z.number().int().nonnegative(),\n shippingLabel: z.string().nullable(),\n totalCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n items: z.array(orderItemSchema),\n fulfillment: orderFulfillmentSchema.nullable(),\n createdAt: z.string().min(1),\n};\n\nexport const orderSummarySchema = z.object(orderTotalsShape);\n\nexport const orderAddressSchema = z.object({\n name: z.string().optional(),\n line1: z.string().optional(),\n line2: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n postalCode: z.string().optional(),\n country: z.string().optional(),\n});\n\nexport const orderDetailSchema = z.object({\n ...orderTotalsShape,\n email: z.string().nullable(),\n shippingAddress: orderAddressSchema.nullable(),\n});\n\nexport type OrderStatus = z.infer<typeof orderStatusSchema>;\nexport type OrderFulfillment = z.infer<typeof orderFulfillmentSchema>;\nexport type OrderRefund = z.infer<typeof orderRefundSchema>;\nexport type OrderSummary = z.infer<typeof orderSummarySchema>;\nexport type OrderAddress = z.infer<typeof orderAddressSchema>;\nexport type OrderDetail = z.infer<typeof orderDetailSchema>;\n","import { z } from 'zod';\n\nexport const shippingRateSchema = z.object({\n label: z.string().min(1),\n amountCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n minDays: z.number().int().nonnegative().nullable().optional(),\n maxDays: z.number().int().nonnegative().nullable().optional(),\n active: z.boolean().default(true),\n sort: z.number().int().default(0),\n});\n\nexport const shippingRatesInputSchema = z\n .array(shippingRateSchema)\n .refine((rates) => new Set(rates.map((r) => r.label)).size === rates.length, {\n message: 'Shipping rate labels must be unique',\n });\n\nexport type ShippingRate = z.infer<typeof shippingRateSchema>;\nexport type ShippingRateInput = z.input<typeof shippingRateSchema>;\n","import { z } from 'zod';\n\nexport const productStatusSchema = z.enum(['draft', 'active', 'archived']);\n\nconst productFields = z.object({\n name: z.string().trim().min(1),\n description: z.string(),\n materials: z.string().nullable().optional(),\n dimensions: z.string().nullable().optional(),\n priceCents: z.number().int().nonnegative(),\n currency: z.string().length(3).optional(),\n category: z.string().trim().min(1),\n quantity: z.number().int().nonnegative(),\n status: productStatusSchema,\n featured: z.boolean(),\n});\n\nexport const adminProductInputSchema = productFields.extend({\n description: z.string().default(''),\n quantity: z.number().int().nonnegative().default(1),\n status: productStatusSchema.default('draft'),\n featured: z.boolean().default(false),\n});\n\nexport const adminProductPatchSchema = productFields\n .partial()\n .extend({ sold: z.boolean().optional() });\n\nexport const adminProductImageSchema = z.object({\n id: z.string().min(1),\n url: z.string().min(1),\n alt: z.string(),\n position: z.number().int().nonnegative(),\n});\n\nexport const adminProductSchema = z.object({\n id: z.string().min(1),\n slug: z.string().min(1),\n name: z.string().min(1),\n description: z.string(),\n materials: z.string().nullable(),\n dimensions: z.string().nullable(),\n priceCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n category: z.string().min(1),\n quantity: z.number().int().nonnegative(),\n status: productStatusSchema,\n featured: z.boolean(),\n images: z.array(adminProductImageSchema),\n});\n\nexport const imageOrderInputSchema = z.object({\n imageIds: z.array(z.string().min(1)),\n});\n\nexport const adminProductListQuerySchema = z.object({\n status: productStatusSchema.optional(),\n stock: z.enum(['in', 'sold']).optional(),\n q: z.string().trim().min(1).optional(),\n cursor: z.string().min(1).optional(),\n limit: z.coerce.number().int().min(1).max(100).default(50),\n});\n\nexport const adminProductPageSchema = z.object({\n items: z.array(adminProductSchema),\n nextCursor: z.string().nullable(),\n});\n\nexport type ProductStatus = z.infer<typeof productStatusSchema>;\nexport type AdminProductInput = z.input<typeof adminProductInputSchema>;\nexport type AdminProductPatch = z.input<typeof adminProductPatchSchema>;\nexport type AdminProductImage = z.infer<typeof adminProductImageSchema>;\nexport type AdminProduct = z.infer<typeof adminProductSchema>;\nexport type ImageOrderInput = z.infer<typeof imageOrderInputSchema>;\nexport type AdminProductListQuery = z.input<typeof adminProductListQuerySchema>;\nexport type AdminProductPage = z.infer<typeof adminProductPageSchema>;\n","import { z } from 'zod';\nimport {\n orderDetailSchema,\n orderRefundSchema,\n orderStatusSchema,\n} from './order';\n\nexport const adminOrderListQuerySchema = z.object({\n status: orderStatusSchema.optional(),\n q: z.string().trim().min(1).optional(),\n hasPendingRefund: z\n .enum(['true', 'false'])\n .transform((v) => v === 'true')\n .optional(),\n cursor: z.string().min(1).optional(),\n limit: z.coerce.number().int().min(1).max(100).default(25),\n});\n\nexport const adminOrderListItemSchema = z.object({\n id: z.string().min(1),\n status: orderStatusSchema,\n email: z.string().nullable(),\n totalCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n itemCount: z.number().int().nonnegative(),\n createdAt: z.string().min(1),\n});\n\nexport const adminOrderPageSchema = z.object({\n items: z.array(adminOrderListItemSchema),\n nextCursor: z.string().nullable(),\n});\n\nexport const adminOrderDetailSchema = orderDetailSchema.extend({\n refunds: z.array(orderRefundSchema),\n refundedCents: z.number().int().nonnegative(),\n checkoutSessionId: z.string().nullable(),\n updatedAt: z.string().min(1),\n});\n\nexport const shipOrderInputSchema = z.object({\n carrier: z.string().optional(),\n trackingNumber: z.string().optional(),\n trackingUrl: z.string().url().optional(),\n});\n\nexport const refundOrderInputSchema = z.object({\n amountCents: z.number().int().positive().optional(),\n reason: z.string().max(500).optional(),\n restock: z.boolean().default(false),\n});\n\nexport type AdminOrderListQuery = z.infer<typeof adminOrderListQuerySchema>;\nexport type AdminOrderListItem = z.infer<typeof adminOrderListItemSchema>;\nexport type AdminOrderPage = z.infer<typeof adminOrderPageSchema>;\nexport type AdminOrderDetail = z.infer<typeof adminOrderDetailSchema>;\nexport type ShipOrderInput = z.infer<typeof shipOrderInputSchema>;\nexport type RefundOrderInput = z.infer<typeof refundOrderInputSchema>;\n"],"mappings":"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","names":["z","z","z","z","z","z","z","z"]}
|
|
1
|
+
{"version":3,"sources":["../src/money.ts","../src/product.ts","../src/cart.ts","../src/checkout.ts","../src/discount.ts","../src/order.ts","../src/shipping.ts","../src/admin.ts","../src/admin-orders.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const moneySchema = z.object({\n amountCents: z.number().int(),\n currency: z.string().length(3),\n});\n\nexport type Money = z.infer<typeof moneySchema>;\n","import { z } from 'zod';\n\nexport const productImageSchema = z.object({\n url: z.string().min(1),\n alt: z.string(),\n});\n\nexport const availabilitySchema = z.enum(['available', 'sold', 'reserved']);\n\nexport const productSchema = z.object({\n id: z.string().min(1),\n slug: z.string().min(1),\n name: z.string().min(1),\n description: z.string(),\n materials: z.string().optional(),\n dimensions: z.string().optional(),\n priceCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n category: z.string().min(1),\n images: z.array(productImageSchema),\n quantity: z.number().int().nonnegative(),\n availability: availabilitySchema,\n featured: z.boolean(),\n});\n\nexport const productCardSchema = productSchema\n .pick({\n id: true,\n slug: true,\n name: true,\n priceCents: true,\n currency: true,\n category: true,\n quantity: true,\n availability: true,\n featured: true,\n })\n .extend({ images: z.array(productImageSchema).max(1) });\n\nexport const categorySchema = z.object({\n slug: z.string().min(1),\n label: z.string().min(1),\n count: z.number().int().nonnegative(),\n});\n\nexport const productListQuerySchema = z.object({\n category: z.string().min(1).optional(),\n featured: z.boolean().optional(),\n limit: z.coerce.number().int().min(1).max(100).default(48),\n cursor: z.string().min(1).optional(),\n});\n\nexport const productCardPageSchema = z.object({\n items: z.array(productCardSchema),\n nextCursor: z.string().nullable(),\n});\n\nexport type ProductImage = z.infer<typeof productImageSchema>;\nexport type ProductAvailability = z.infer<typeof availabilitySchema>;\nexport type Product = z.infer<typeof productSchema>;\nexport type ProductCard = z.infer<typeof productCardSchema>;\nexport type ProductCardPage = z.infer<typeof productCardPageSchema>;\nexport type Category = z.infer<typeof categorySchema>;\nexport type ProductListQuery = z.input<typeof productListQuerySchema>;\n","import { z } from 'zod';\n\nexport const cartLineSchema = z.object({\n productId: z.string().min(1),\n slug: z.string().min(1),\n name: z.string().min(1),\n priceCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n imageUrl: z.string().optional(),\n quantity: z.number().int().positive(),\n maxQuantity: z.number().int().positive(),\n});\n\nexport type CartLine = z.infer<typeof cartLineSchema>;\n","import { z } from 'zod';\nimport { discountCodeSchema } from './discount';\n\nexport const checkoutRequestSchema = z.object({\n items: z\n .array(\n z.object({\n productId: z.string().min(1),\n quantity: z.number().int().positive(),\n }),\n )\n .min(1),\n discountCode: discountCodeSchema.optional(),\n});\n\nexport const checkoutResponseSchema = z.object({\n url: z.string().min(1),\n});\n\nexport const checkoutConflictSchema = z.object({\n unavailableProductIds: z.array(z.string().min(1)).min(1),\n});\n\nexport type CheckoutRequest = z.infer<typeof checkoutRequestSchema>;\nexport type CheckoutResponse = z.infer<typeof checkoutResponseSchema>;\nexport type CheckoutConflict = z.infer<typeof checkoutConflictSchema>;\n","import { z } from 'zod';\n\nexport const discountTypeSchema = z.enum(['percent', 'fixed']);\n\nexport const discountCodeSchema = z\n .string()\n .transform((value) => value.trim().toUpperCase())\n .pipe(\n z\n .string()\n .min(1)\n .max(40)\n .regex(/^[A-Z0-9_-]+$/),\n );\n\nconst currencyInputSchema = z\n .string()\n .transform((value) => value.trim().toUpperCase())\n .pipe(z.string().length(3));\n\nconst limitFields = {\n minSubtotalCents: z.number().int().positive().nullable().optional(),\n startsAt: z.string().min(1).nullable().optional(),\n endsAt: z.string().min(1).nullable().optional(),\n maxRedemptions: z.number().int().positive().nullable().optional(),\n active: z.boolean(),\n};\n\nconst discountValueFields = {\n type: discountTypeSchema,\n percentOff: z.number().int().min(1).max(100).nullable().optional(),\n amountOffCents: z.number().int().positive().nullable().optional(),\n currency: currencyInputSchema.nullable().optional(),\n};\n\ntype ValueFields = {\n type?: z.infer<typeof discountTypeSchema>;\n percentOff?: number | null;\n amountOffCents?: number | null;\n currency?: string | null;\n};\n\nconst hasValue = (value: unknown) => value !== undefined && value !== null;\n\nfunction valueFieldsAgree(input: ValueFields): boolean {\n const { type, percentOff, amountOffCents, currency } = input;\n if (type === 'percent') {\n return (\n hasValue(percentOff) && !hasValue(amountOffCents) && !hasValue(currency)\n );\n }\n if (type === 'fixed') {\n return (\n !hasValue(percentOff) && hasValue(amountOffCents) && hasValue(currency)\n );\n }\n return !(hasValue(percentOff) && hasValue(amountOffCents));\n}\n\nconst valueFieldsMessage = {\n message:\n 'percent needs percentOff only; fixed needs amountOffCents and currency only',\n path: ['type'],\n};\n\nexport const discountSchema = z.object({\n id: z.string().min(1),\n code: discountCodeSchema,\n ...discountValueFields,\n ...limitFields,\n redeemedCount: z.number().int().nonnegative(),\n reservedCount: z.number().int().nonnegative(),\n createdAt: z.string().min(1),\n});\n\nexport const discountInputSchema = z\n .object({\n code: discountCodeSchema,\n ...discountValueFields,\n ...limitFields,\n active: limitFields.active.default(true),\n })\n .refine(valueFieldsAgree, valueFieldsMessage);\n\nexport const discountPatchSchema = z\n .object({\n code: discountCodeSchema,\n ...discountValueFields,\n ...limitFields,\n })\n .partial()\n .refine(valueFieldsAgree, valueFieldsMessage);\n\nexport const discountStatusSchema = z.enum([\n 'active',\n 'inactive',\n 'scheduled',\n 'expired',\n]);\n\nexport const adminDiscountListQuerySchema = z.object({\n status: discountStatusSchema.optional(),\n q: z.string().trim().min(1).optional(),\n cursor: z.string().min(1).optional(),\n limit: z.coerce.number().int().min(1).max(100).default(25),\n});\n\nexport const adminDiscountPageSchema = z.object({\n items: z.array(discountSchema),\n nextCursor: z.string().nullable(),\n});\n\nexport const discountPreviewRequestSchema = z.object({\n code: discountCodeSchema,\n items: z\n .array(\n z.object({\n productId: z.string().min(1),\n quantity: z.number().int().positive(),\n }),\n )\n .min(1),\n});\n\nexport const discountPreviewSchema = z.object({\n code: z.string().min(1),\n discountCents: z.number().int().nonnegative(),\n subtotalCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n});\n\nexport const discountRejectionReasonSchema = z.enum([\n 'not_found',\n 'inactive',\n 'not_started',\n 'expired',\n 'min_subtotal',\n 'exhausted',\n 'currency',\n]);\n\nexport const discountRejectionSchema = z.object({\n error: z.literal('DISCOUNT_INVALID'),\n reason: discountRejectionReasonSchema,\n});\n\nexport type DiscountType = z.infer<typeof discountTypeSchema>;\nexport type Discount = z.infer<typeof discountSchema>;\nexport type DiscountStatus = z.infer<typeof discountStatusSchema>;\nexport type AdminDiscountListQuery = z.infer<\n typeof adminDiscountListQuerySchema\n>;\nexport type AdminDiscountPage = z.infer<typeof adminDiscountPageSchema>;\nexport type DiscountInput = z.input<typeof discountInputSchema>;\nexport type DiscountPatch = z.input<typeof discountPatchSchema>;\nexport type DiscountPreviewRequest = z.input<\n typeof discountPreviewRequestSchema\n>;\nexport type DiscountPreview = z.infer<typeof discountPreviewSchema>;\nexport type DiscountRejectionReason = z.infer<\n typeof discountRejectionReasonSchema\n>;\nexport type DiscountRejection = z.infer<typeof discountRejectionSchema>;\n","import { z } from 'zod';\n\nexport const orderStatusSchema = z.enum([\n 'pending',\n 'paid',\n 'shipped',\n 'cancelled',\n 'expired',\n 'needs_attention',\n 'refunded',\n]);\n\nconst orderItemSchema = z.object({\n productId: z.string().min(1),\n name: z.string().min(1),\n priceCents: z.number().int().nonnegative(),\n quantity: z.number().int().positive(),\n});\n\nexport const orderFulfillmentSchema = z.object({\n carrier: z.string().nullable(),\n trackingNumber: z.string().nullable(),\n trackingUrl: z.string().url().nullable(),\n shippedAt: z.string().min(1),\n});\n\nexport const orderRefundSchema = z.object({\n id: z.string().min(1),\n amountCents: z.number().int().positive(),\n reason: z.string().nullable(),\n restocked: z.boolean(),\n source: z.enum(['admin', 'gateway']),\n status: z.enum(['pending', 'succeeded']),\n createdAt: z.string().min(1),\n});\n\nconst orderTotalsShape = {\n id: z.string().min(1),\n status: orderStatusSchema,\n subtotalCents: z.number().int().nonnegative(),\n discountCents: z.number().int().nonnegative().default(0),\n discountCode: z.string().nullable().default(null),\n shippingCents: z.number().int().nonnegative(),\n shippingLabel: z.string().nullable(),\n totalCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n items: z.array(orderItemSchema),\n fulfillment: orderFulfillmentSchema.nullable(),\n createdAt: z.string().min(1),\n};\n\nexport const orderSummarySchema = z.object(orderTotalsShape);\n\nexport const orderAddressSchema = z.object({\n name: z.string().optional(),\n line1: z.string().optional(),\n line2: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n postalCode: z.string().optional(),\n country: z.string().optional(),\n});\n\nexport const orderDetailSchema = z.object({\n ...orderTotalsShape,\n email: z.string().nullable(),\n shippingAddress: orderAddressSchema.nullable(),\n});\n\nexport type OrderStatus = z.infer<typeof orderStatusSchema>;\nexport type OrderFulfillment = z.infer<typeof orderFulfillmentSchema>;\nexport type OrderRefund = z.infer<typeof orderRefundSchema>;\nexport type OrderSummary = z.infer<typeof orderSummarySchema>;\nexport type OrderAddress = z.infer<typeof orderAddressSchema>;\nexport type OrderDetail = z.infer<typeof orderDetailSchema>;\n","import { z } from 'zod';\n\nexport const shippingRateSchema = z.object({\n label: z.string().min(1),\n amountCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n minDays: z.number().int().nonnegative().nullable().optional(),\n maxDays: z.number().int().nonnegative().nullable().optional(),\n active: z.boolean().default(true),\n sort: z.number().int().default(0),\n});\n\nexport const shippingRatesInputSchema = z\n .array(shippingRateSchema)\n .refine((rates) => new Set(rates.map((r) => r.label)).size === rates.length, {\n message: 'Shipping rate labels must be unique',\n });\n\nexport type ShippingRate = z.infer<typeof shippingRateSchema>;\nexport type ShippingRateInput = z.input<typeof shippingRateSchema>;\n","import { z } from 'zod';\n\nexport const productStatusSchema = z.enum(['draft', 'active', 'archived']);\n\nconst productFields = z.object({\n name: z.string().trim().min(1),\n description: z.string(),\n materials: z.string().nullable().optional(),\n dimensions: z.string().nullable().optional(),\n priceCents: z.number().int().nonnegative(),\n currency: z.string().length(3).optional(),\n category: z.string().trim().min(1),\n quantity: z.number().int().nonnegative(),\n status: productStatusSchema,\n featured: z.boolean(),\n});\n\nexport const adminProductInputSchema = productFields.extend({\n description: z.string().default(''),\n quantity: z.number().int().nonnegative().default(1),\n status: productStatusSchema.default('draft'),\n featured: z.boolean().default(false),\n});\n\nexport const adminProductPatchSchema = productFields\n .partial()\n .extend({ sold: z.boolean().optional() });\n\nexport const adminProductImageSchema = z.object({\n id: z.string().min(1),\n url: z.string().min(1),\n alt: z.string(),\n position: z.number().int().nonnegative(),\n});\n\nexport const adminProductSchema = z.object({\n id: z.string().min(1),\n slug: z.string().min(1),\n name: z.string().min(1),\n description: z.string(),\n materials: z.string().nullable(),\n dimensions: z.string().nullable(),\n priceCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n category: z.string().min(1),\n quantity: z.number().int().nonnegative(),\n status: productStatusSchema,\n featured: z.boolean(),\n images: z.array(adminProductImageSchema),\n});\n\nexport const imageOrderInputSchema = z.object({\n imageIds: z.array(z.string().min(1)),\n});\n\nexport const productImagePatchSchema = z.object({\n alt: z.string().trim().max(500),\n});\n\nexport const adminProductListQuerySchema = z.object({\n status: productStatusSchema.optional(),\n stock: z.enum(['in', 'sold']).optional(),\n q: z.string().trim().min(1).optional(),\n cursor: z.string().min(1).optional(),\n limit: z.coerce.number().int().min(1).max(100).default(50),\n});\n\nexport const adminProductPageSchema = z.object({\n items: z.array(adminProductSchema),\n nextCursor: z.string().nullable(),\n});\n\nexport type ProductStatus = z.infer<typeof productStatusSchema>;\nexport type AdminProductInput = z.input<typeof adminProductInputSchema>;\nexport type AdminProductPatch = z.input<typeof adminProductPatchSchema>;\nexport type AdminProductImage = z.infer<typeof adminProductImageSchema>;\nexport type AdminProduct = z.infer<typeof adminProductSchema>;\nexport type ProductImagePatch = z.infer<typeof productImagePatchSchema>;\nexport type ImageOrderInput = z.infer<typeof imageOrderInputSchema>;\nexport type AdminProductListQuery = z.input<typeof adminProductListQuerySchema>;\nexport type AdminProductPage = z.infer<typeof adminProductPageSchema>;\n","import { z } from 'zod';\nimport {\n orderDetailSchema,\n orderRefundSchema,\n orderStatusSchema,\n} from './order';\n\nexport const adminOrderListQuerySchema = z.object({\n status: orderStatusSchema.optional(),\n q: z.string().trim().min(1).optional(),\n hasPendingRefund: z\n .enum(['true', 'false'])\n .transform((v) => v === 'true')\n .optional(),\n cursor: z.string().min(1).optional(),\n limit: z.coerce.number().int().min(1).max(100).default(25),\n});\n\nexport const adminOrderListItemSchema = z.object({\n id: z.string().min(1),\n status: orderStatusSchema,\n email: z.string().nullable(),\n totalCents: z.number().int().nonnegative(),\n currency: z.string().length(3),\n itemCount: z.number().int().nonnegative(),\n createdAt: z.string().min(1),\n});\n\nexport const adminOrderPageSchema = z.object({\n items: z.array(adminOrderListItemSchema),\n nextCursor: z.string().nullable(),\n});\n\nexport const adminOrderDetailSchema = orderDetailSchema.extend({\n refunds: z.array(orderRefundSchema),\n refundedCents: z.number().int().nonnegative(),\n checkoutSessionId: z.string().nullable(),\n updatedAt: z.string().min(1),\n});\n\nexport const shipOrderInputSchema = z.object({\n carrier: z.string().optional(),\n trackingNumber: z.string().optional(),\n trackingUrl: z.string().url().optional(),\n});\n\nexport const refundOrderInputSchema = z.object({\n amountCents: z.number().int().positive().optional(),\n reason: z.string().max(500).optional(),\n restock: z.boolean().default(false),\n});\n\nexport type AdminOrderListQuery = z.infer<typeof adminOrderListQuerySchema>;\nexport type AdminOrderListItem = z.infer<typeof adminOrderListItemSchema>;\nexport type AdminOrderPage = z.infer<typeof adminOrderPageSchema>;\nexport type AdminOrderDetail = z.infer<typeof adminOrderDetailSchema>;\nexport type ShipOrderInput = z.infer<typeof shipOrderInputSchema>;\nexport type RefundOrderInput = z.infer<typeof refundOrderInputSchema>;\n"],"mappings":"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","names":["z","z","z","z","z","z","z","z","z","z"]}
|