@develemit/commerce-contracts 0.8.0 → 0.9.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/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 0.9.0 (2026-11-14)
2
+
3
+ ### Features
4
+
5
+ - `adminProductSchema` gains `taxCode` (nullable, defaults to `null`); `adminProductInputSchema` and `adminProductPatchSchema` accept an optional, nullable `taxCode` matching `txcd_` plus 8 digits.
6
+ - Order shapes (`orderSummarySchema`, `orderDetailSchema`, the admin list item and detail) gain `taxCents` (integer cents, defaults to `0` so older servers still parse). `totalCents` includes it.
7
+
1
8
  ## 0.8.0 (2026-11-12)
2
9
 
3
10
  ### Features
package/dist/index.cjs CHANGED
@@ -304,6 +304,7 @@ var orderTotalsShape = {
304
304
  discountCode: import_zod6.z.string().nullable().default(null),
305
305
  shippingCents: import_zod6.z.number().int().nonnegative(),
306
306
  shippingLabel: import_zod6.z.string().nullable(),
307
+ taxCents: import_zod6.z.number().int().nonnegative().default(0),
307
308
  totalCents: import_zod6.z.number().int().nonnegative(),
308
309
  currency: import_zod6.z.string().length(3),
309
310
  items: import_zod6.z.array(orderItemSchema),
@@ -344,6 +345,7 @@ var shippingRatesInputSchema = import_zod7.z.array(shippingRateSchema).refine((r
344
345
  // src/admin.ts
345
346
  var import_zod8 = require("zod");
346
347
  var productStatusSchema = import_zod8.z.enum(["draft", "active", "archived"]);
348
+ var taxCodeSchema = import_zod8.z.string().regex(/^txcd_\d{8}$/);
347
349
  var productFields = import_zod8.z.object({
348
350
  name: import_zod8.z.string().trim().min(1),
349
351
  description: import_zod8.z.string(),
@@ -354,7 +356,8 @@ var productFields = import_zod8.z.object({
354
356
  category: import_zod8.z.string().trim().min(1),
355
357
  quantity: import_zod8.z.number().int().nonnegative(),
356
358
  status: productStatusSchema,
357
- featured: import_zod8.z.boolean()
359
+ featured: import_zod8.z.boolean(),
360
+ taxCode: taxCodeSchema.nullable().optional()
358
361
  });
359
362
  var publishRequiredFields = [
360
363
  "name",
@@ -403,6 +406,7 @@ var adminProductSchema = import_zod8.z.object({
403
406
  status: productStatusSchema,
404
407
  featured: import_zod8.z.boolean(),
405
408
  everPublished: import_zod8.z.boolean().default(false),
409
+ taxCode: taxCodeSchema.nullable().default(null),
406
410
  images: import_zod8.z.array(adminProductImageSchema)
407
411
  });
408
412
  var imageOrderInputSchema = import_zod8.z.object({
@@ -450,6 +454,7 @@ var adminOrderListItemSchema = import_zod9.z.object({
450
454
  id: import_zod9.z.string().min(1),
451
455
  status: orderStatusSchema,
452
456
  email: import_zod9.z.string().nullable(),
457
+ taxCents: import_zod9.z.number().int().nonnegative().default(0),
453
458
  totalCents: import_zod9.z.number().int().nonnegative(),
454
459
  currency: import_zod9.z.string().length(3),
455
460
  itemCount: import_zod9.z.number().int().nonnegative(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../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","../src/order-ref.ts"],"sourcesContent":["export * from './money';\nexport * from './product';\nexport * from './cart';\nexport * from './checkout';\nexport * from './order';\nexport * from './shipping';\nexport * from './admin';\nexport * from './admin-orders';\nexport * from './discount';\nexport * from './order-ref';\n","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 publishRequiredFields = [\n 'name',\n 'priceCents',\n 'category',\n] as const;\n\nexport const adminProductInputSchema = productFields\n .extend({\n name: z.string().trim().default(''),\n description: z.string().default(''),\n priceCents: productFields.shape.priceCents.optional(),\n category: z.string().trim().optional(),\n quantity: z.number().int().nonnegative().default(1),\n status: productStatusSchema.default('draft'),\n featured: z.boolean().default(false),\n })\n .superRefine((product, ctx) => {\n if (product.status !== 'active') return;\n for (const field of publishRequiredFields) {\n const value = product[field];\n if (value === undefined || value === '') {\n ctx.addIssue({\n code: 'custom',\n path: [field],\n message: `${field} is required to publish a product`,\n });\n }\n }\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(),\n description: z.string(),\n materials: z.string().nullable(),\n dimensions: z.string().nullable(),\n priceCents: z.number().int().nonnegative().nullable(),\n currency: z.string().length(3),\n category: z.string().min(1).nullable(),\n quantity: z.number().int().nonnegative(),\n status: productStatusSchema,\n featured: z.boolean(),\n everPublished: z.boolean().default(false),\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 excludeArchived: z.literal('true').optional(),\n incomplete: z.literal('true').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 const adminProductCountsSchema = z.object({\n all: z.number().int().nonnegative(),\n live: z.number().int().nonnegative(),\n draft: z.number().int().nonnegative(),\n sold: z.number().int().nonnegative(),\n archived: z.number().int().nonnegative(),\n incompleteDrafts: z.number().int().nonnegative(),\n});\n\nexport const productIncompleteFieldSchema = z.enum([\n ...publishRequiredFields,\n 'images',\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>;\nexport type AdminProductCounts = z.infer<typeof adminProductCountsSchema>;\nexport type ProductIncompleteField = z.infer<\n typeof productIncompleteFieldSchema\n>;\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","export function formatOrderRef(id: string): string {\n return `#${id.replace(/-/g, '').slice(0, 8).toUpperCase()}`;\n}\n\nexport function orderRefSearchTerm(input: string): string {\n return input.trim().replace(/^#/, '');\n}\n"],"mappings":"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","names":["import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod"]}
1
+ {"version":3,"sources":["../src/index.ts","../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","../src/order-ref.ts"],"sourcesContent":["export * from './money';\nexport * from './product';\nexport * from './cart';\nexport * from './checkout';\nexport * from './order';\nexport * from './shipping';\nexport * from './admin';\nexport * from './admin-orders';\nexport * from './discount';\nexport * from './order-ref';\n","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 taxCents: z.number().int().nonnegative().default(0),\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 taxCodeSchema = z.string().regex(/^txcd_\\d{8}$/);\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 taxCode: taxCodeSchema.nullable().optional(),\n});\n\nexport const publishRequiredFields = [\n 'name',\n 'priceCents',\n 'category',\n] as const;\n\nexport const adminProductInputSchema = productFields\n .extend({\n name: z.string().trim().default(''),\n description: z.string().default(''),\n priceCents: productFields.shape.priceCents.optional(),\n category: z.string().trim().optional(),\n quantity: z.number().int().nonnegative().default(1),\n status: productStatusSchema.default('draft'),\n featured: z.boolean().default(false),\n })\n .superRefine((product, ctx) => {\n if (product.status !== 'active') return;\n for (const field of publishRequiredFields) {\n const value = product[field];\n if (value === undefined || value === '') {\n ctx.addIssue({\n code: 'custom',\n path: [field],\n message: `${field} is required to publish a product`,\n });\n }\n }\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(),\n description: z.string(),\n materials: z.string().nullable(),\n dimensions: z.string().nullable(),\n priceCents: z.number().int().nonnegative().nullable(),\n currency: z.string().length(3),\n category: z.string().min(1).nullable(),\n quantity: z.number().int().nonnegative(),\n status: productStatusSchema,\n featured: z.boolean(),\n everPublished: z.boolean().default(false),\n taxCode: taxCodeSchema.nullable().default(null),\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 excludeArchived: z.literal('true').optional(),\n incomplete: z.literal('true').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 const adminProductCountsSchema = z.object({\n all: z.number().int().nonnegative(),\n live: z.number().int().nonnegative(),\n draft: z.number().int().nonnegative(),\n sold: z.number().int().nonnegative(),\n archived: z.number().int().nonnegative(),\n incompleteDrafts: z.number().int().nonnegative(),\n});\n\nexport const productIncompleteFieldSchema = z.enum([\n ...publishRequiredFields,\n 'images',\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>;\nexport type AdminProductCounts = z.infer<typeof adminProductCountsSchema>;\nexport type ProductIncompleteField = z.infer<\n typeof productIncompleteFieldSchema\n>;\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 taxCents: z.number().int().nonnegative().default(0),\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","export function formatOrderRef(id: string): string {\n return `#${id.replace(/-/g, '').slice(0, 8).toUpperCase()}`;\n}\n\nexport function orderRefSearchTerm(input: string): string {\n return input.trim().replace(/^#/, '');\n}\n"],"mappings":"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","names":["import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod"]}
package/dist/index.d.cts CHANGED
@@ -38,6 +38,10 @@ declare const productSchema: z.ZodObject<{
38
38
  featured: z.ZodBoolean;
39
39
  }, z.core.$strip>;
40
40
  declare const productCardSchema: z.ZodObject<{
41
+ quantity: z.ZodNumber;
42
+ slug: z.ZodString;
43
+ name: z.ZodString;
44
+ priceCents: z.ZodNumber;
41
45
  currency: z.ZodString;
42
46
  availability: z.ZodEnum<{
43
47
  available: "available";
@@ -45,11 +49,7 @@ declare const productCardSchema: z.ZodObject<{
45
49
  reserved: "reserved";
46
50
  }>;
47
51
  id: z.ZodString;
48
- slug: z.ZodString;
49
- name: z.ZodString;
50
- priceCents: z.ZodNumber;
51
52
  category: z.ZodString;
52
- quantity: z.ZodNumber;
53
53
  featured: z.ZodBoolean;
54
54
  images: z.ZodArray<z.ZodObject<{
55
55
  url: z.ZodString;
@@ -69,6 +69,10 @@ declare const productListQuerySchema: z.ZodObject<{
69
69
  }, z.core.$strip>;
70
70
  declare const productCardPageSchema: z.ZodObject<{
71
71
  items: z.ZodArray<z.ZodObject<{
72
+ quantity: z.ZodNumber;
73
+ slug: z.ZodString;
74
+ name: z.ZodString;
75
+ priceCents: z.ZodNumber;
72
76
  currency: z.ZodString;
73
77
  availability: z.ZodEnum<{
74
78
  available: "available";
@@ -76,11 +80,7 @@ declare const productCardPageSchema: z.ZodObject<{
76
80
  reserved: "reserved";
77
81
  }>;
78
82
  id: z.ZodString;
79
- slug: z.ZodString;
80
- name: z.ZodString;
81
- priceCents: z.ZodNumber;
82
83
  category: z.ZodString;
83
- quantity: z.ZodNumber;
84
84
  featured: z.ZodBoolean;
85
85
  images: z.ZodArray<z.ZodObject<{
86
86
  url: z.ZodString;
@@ -172,6 +172,7 @@ declare const orderSummarySchema: z.ZodObject<{
172
172
  discountCode: z.ZodDefault<z.ZodNullable<z.ZodString>>;
173
173
  shippingCents: z.ZodNumber;
174
174
  shippingLabel: z.ZodNullable<z.ZodString>;
175
+ taxCents: z.ZodDefault<z.ZodNumber>;
175
176
  totalCents: z.ZodNumber;
176
177
  currency: z.ZodString;
177
178
  items: z.ZodArray<z.ZodObject<{
@@ -223,6 +224,7 @@ declare const orderDetailSchema: z.ZodObject<{
223
224
  discountCode: z.ZodDefault<z.ZodNullable<z.ZodString>>;
224
225
  shippingCents: z.ZodNumber;
225
226
  shippingLabel: z.ZodNullable<z.ZodString>;
227
+ taxCents: z.ZodDefault<z.ZodNumber>;
226
228
  totalCents: z.ZodNumber;
227
229
  currency: z.ZodString;
228
230
  items: z.ZodArray<z.ZodObject<{
@@ -268,8 +270,8 @@ type ShippingRate = z.infer<typeof shippingRateSchema>;
268
270
  type ShippingRateInput = z.input<typeof shippingRateSchema>;
269
271
 
270
272
  declare const productStatusSchema: z.ZodEnum<{
271
- active: "active";
272
273
  draft: "draft";
274
+ active: "active";
273
275
  archived: "archived";
274
276
  }>;
275
277
  declare const publishRequiredFields: readonly ["name", "priceCents", "category"];
@@ -277,14 +279,15 @@ declare const adminProductInputSchema: z.ZodObject<{
277
279
  materials: z.ZodOptional<z.ZodNullable<z.ZodString>>;
278
280
  dimensions: z.ZodOptional<z.ZodNullable<z.ZodString>>;
279
281
  currency: z.ZodOptional<z.ZodString>;
282
+ taxCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
280
283
  name: z.ZodDefault<z.ZodString>;
281
284
  description: z.ZodDefault<z.ZodString>;
282
285
  priceCents: z.ZodOptional<z.ZodNumber>;
283
286
  category: z.ZodOptional<z.ZodString>;
284
287
  quantity: z.ZodDefault<z.ZodNumber>;
285
288
  status: z.ZodDefault<z.ZodEnum<{
286
- active: "active";
287
289
  draft: "draft";
290
+ active: "active";
288
291
  archived: "archived";
289
292
  }>>;
290
293
  featured: z.ZodDefault<z.ZodBoolean>;
@@ -299,11 +302,12 @@ declare const adminProductPatchSchema: z.ZodObject<{
299
302
  category: z.ZodOptional<z.ZodString>;
300
303
  quantity: z.ZodOptional<z.ZodNumber>;
301
304
  status: z.ZodOptional<z.ZodEnum<{
302
- active: "active";
303
305
  draft: "draft";
306
+ active: "active";
304
307
  archived: "archived";
305
308
  }>>;
306
309
  featured: z.ZodOptional<z.ZodBoolean>;
310
+ taxCode: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
307
311
  sold: z.ZodOptional<z.ZodBoolean>;
308
312
  }, z.core.$strip>;
309
313
  declare const adminProductImageSchema: z.ZodObject<{
@@ -324,12 +328,13 @@ declare const adminProductSchema: z.ZodObject<{
324
328
  category: z.ZodNullable<z.ZodString>;
325
329
  quantity: z.ZodNumber;
326
330
  status: z.ZodEnum<{
327
- active: "active";
328
331
  draft: "draft";
332
+ active: "active";
329
333
  archived: "archived";
330
334
  }>;
331
335
  featured: z.ZodBoolean;
332
336
  everPublished: z.ZodDefault<z.ZodBoolean>;
337
+ taxCode: z.ZodDefault<z.ZodNullable<z.ZodString>>;
333
338
  images: z.ZodArray<z.ZodObject<{
334
339
  id: z.ZodString;
335
340
  url: z.ZodString;
@@ -345,8 +350,8 @@ declare const productImagePatchSchema: z.ZodObject<{
345
350
  }, z.core.$strip>;
346
351
  declare const adminProductListQuerySchema: z.ZodObject<{
347
352
  status: z.ZodOptional<z.ZodEnum<{
348
- active: "active";
349
353
  draft: "draft";
354
+ active: "active";
350
355
  archived: "archived";
351
356
  }>>;
352
357
  excludeArchived: z.ZodOptional<z.ZodLiteral<"true">>;
@@ -372,12 +377,13 @@ declare const adminProductPageSchema: z.ZodObject<{
372
377
  category: z.ZodNullable<z.ZodString>;
373
378
  quantity: z.ZodNumber;
374
379
  status: z.ZodEnum<{
375
- active: "active";
376
380
  draft: "draft";
381
+ active: "active";
377
382
  archived: "archived";
378
383
  }>;
379
384
  featured: z.ZodBoolean;
380
385
  everPublished: z.ZodDefault<z.ZodBoolean>;
386
+ taxCode: z.ZodDefault<z.ZodNullable<z.ZodString>>;
381
387
  images: z.ZodArray<z.ZodObject<{
382
388
  id: z.ZodString;
383
389
  url: z.ZodString;
@@ -443,6 +449,7 @@ declare const adminOrderListItemSchema: z.ZodObject<{
443
449
  refunded: "refunded";
444
450
  }>;
445
451
  email: z.ZodNullable<z.ZodString>;
452
+ taxCents: z.ZodDefault<z.ZodNumber>;
446
453
  totalCents: z.ZodNumber;
447
454
  currency: z.ZodString;
448
455
  itemCount: z.ZodNumber;
@@ -461,6 +468,7 @@ declare const adminOrderPageSchema: z.ZodObject<{
461
468
  refunded: "refunded";
462
469
  }>;
463
470
  email: z.ZodNullable<z.ZodString>;
471
+ taxCents: z.ZodDefault<z.ZodNumber>;
464
472
  totalCents: z.ZodNumber;
465
473
  currency: z.ZodString;
466
474
  itemCount: z.ZodNumber;
@@ -494,6 +502,7 @@ declare const adminOrderDetailSchema: z.ZodObject<{
494
502
  discountCode: z.ZodDefault<z.ZodNullable<z.ZodString>>;
495
503
  shippingCents: z.ZodNumber;
496
504
  shippingLabel: z.ZodNullable<z.ZodString>;
505
+ taxCents: z.ZodDefault<z.ZodNumber>;
497
506
  totalCents: z.ZodNumber;
498
507
  currency: z.ZodString;
499
508
  items: z.ZodArray<z.ZodObject<{
@@ -600,15 +609,15 @@ declare const discountPatchSchema: z.ZodObject<{
600
609
  code: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
601
610
  }, z.core.$strip>;
602
611
  declare const discountStatusSchema: z.ZodEnum<{
603
- active: "active";
604
612
  expired: "expired";
613
+ active: "active";
605
614
  inactive: "inactive";
606
615
  scheduled: "scheduled";
607
616
  }>;
608
617
  declare const adminDiscountListQuerySchema: z.ZodObject<{
609
618
  status: z.ZodOptional<z.ZodEnum<{
610
- active: "active";
611
619
  expired: "expired";
620
+ active: "active";
612
621
  inactive: "inactive";
613
622
  scheduled: "scheduled";
614
623
  }>>;
package/dist/index.d.ts CHANGED
@@ -38,6 +38,10 @@ declare const productSchema: z.ZodObject<{
38
38
  featured: z.ZodBoolean;
39
39
  }, z.core.$strip>;
40
40
  declare const productCardSchema: z.ZodObject<{
41
+ quantity: z.ZodNumber;
42
+ slug: z.ZodString;
43
+ name: z.ZodString;
44
+ priceCents: z.ZodNumber;
41
45
  currency: z.ZodString;
42
46
  availability: z.ZodEnum<{
43
47
  available: "available";
@@ -45,11 +49,7 @@ declare const productCardSchema: z.ZodObject<{
45
49
  reserved: "reserved";
46
50
  }>;
47
51
  id: z.ZodString;
48
- slug: z.ZodString;
49
- name: z.ZodString;
50
- priceCents: z.ZodNumber;
51
52
  category: z.ZodString;
52
- quantity: z.ZodNumber;
53
53
  featured: z.ZodBoolean;
54
54
  images: z.ZodArray<z.ZodObject<{
55
55
  url: z.ZodString;
@@ -69,6 +69,10 @@ declare const productListQuerySchema: z.ZodObject<{
69
69
  }, z.core.$strip>;
70
70
  declare const productCardPageSchema: z.ZodObject<{
71
71
  items: z.ZodArray<z.ZodObject<{
72
+ quantity: z.ZodNumber;
73
+ slug: z.ZodString;
74
+ name: z.ZodString;
75
+ priceCents: z.ZodNumber;
72
76
  currency: z.ZodString;
73
77
  availability: z.ZodEnum<{
74
78
  available: "available";
@@ -76,11 +80,7 @@ declare const productCardPageSchema: z.ZodObject<{
76
80
  reserved: "reserved";
77
81
  }>;
78
82
  id: z.ZodString;
79
- slug: z.ZodString;
80
- name: z.ZodString;
81
- priceCents: z.ZodNumber;
82
83
  category: z.ZodString;
83
- quantity: z.ZodNumber;
84
84
  featured: z.ZodBoolean;
85
85
  images: z.ZodArray<z.ZodObject<{
86
86
  url: z.ZodString;
@@ -172,6 +172,7 @@ declare const orderSummarySchema: z.ZodObject<{
172
172
  discountCode: z.ZodDefault<z.ZodNullable<z.ZodString>>;
173
173
  shippingCents: z.ZodNumber;
174
174
  shippingLabel: z.ZodNullable<z.ZodString>;
175
+ taxCents: z.ZodDefault<z.ZodNumber>;
175
176
  totalCents: z.ZodNumber;
176
177
  currency: z.ZodString;
177
178
  items: z.ZodArray<z.ZodObject<{
@@ -223,6 +224,7 @@ declare const orderDetailSchema: z.ZodObject<{
223
224
  discountCode: z.ZodDefault<z.ZodNullable<z.ZodString>>;
224
225
  shippingCents: z.ZodNumber;
225
226
  shippingLabel: z.ZodNullable<z.ZodString>;
227
+ taxCents: z.ZodDefault<z.ZodNumber>;
226
228
  totalCents: z.ZodNumber;
227
229
  currency: z.ZodString;
228
230
  items: z.ZodArray<z.ZodObject<{
@@ -268,8 +270,8 @@ type ShippingRate = z.infer<typeof shippingRateSchema>;
268
270
  type ShippingRateInput = z.input<typeof shippingRateSchema>;
269
271
 
270
272
  declare const productStatusSchema: z.ZodEnum<{
271
- active: "active";
272
273
  draft: "draft";
274
+ active: "active";
273
275
  archived: "archived";
274
276
  }>;
275
277
  declare const publishRequiredFields: readonly ["name", "priceCents", "category"];
@@ -277,14 +279,15 @@ declare const adminProductInputSchema: z.ZodObject<{
277
279
  materials: z.ZodOptional<z.ZodNullable<z.ZodString>>;
278
280
  dimensions: z.ZodOptional<z.ZodNullable<z.ZodString>>;
279
281
  currency: z.ZodOptional<z.ZodString>;
282
+ taxCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
280
283
  name: z.ZodDefault<z.ZodString>;
281
284
  description: z.ZodDefault<z.ZodString>;
282
285
  priceCents: z.ZodOptional<z.ZodNumber>;
283
286
  category: z.ZodOptional<z.ZodString>;
284
287
  quantity: z.ZodDefault<z.ZodNumber>;
285
288
  status: z.ZodDefault<z.ZodEnum<{
286
- active: "active";
287
289
  draft: "draft";
290
+ active: "active";
288
291
  archived: "archived";
289
292
  }>>;
290
293
  featured: z.ZodDefault<z.ZodBoolean>;
@@ -299,11 +302,12 @@ declare const adminProductPatchSchema: z.ZodObject<{
299
302
  category: z.ZodOptional<z.ZodString>;
300
303
  quantity: z.ZodOptional<z.ZodNumber>;
301
304
  status: z.ZodOptional<z.ZodEnum<{
302
- active: "active";
303
305
  draft: "draft";
306
+ active: "active";
304
307
  archived: "archived";
305
308
  }>>;
306
309
  featured: z.ZodOptional<z.ZodBoolean>;
310
+ taxCode: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
307
311
  sold: z.ZodOptional<z.ZodBoolean>;
308
312
  }, z.core.$strip>;
309
313
  declare const adminProductImageSchema: z.ZodObject<{
@@ -324,12 +328,13 @@ declare const adminProductSchema: z.ZodObject<{
324
328
  category: z.ZodNullable<z.ZodString>;
325
329
  quantity: z.ZodNumber;
326
330
  status: z.ZodEnum<{
327
- active: "active";
328
331
  draft: "draft";
332
+ active: "active";
329
333
  archived: "archived";
330
334
  }>;
331
335
  featured: z.ZodBoolean;
332
336
  everPublished: z.ZodDefault<z.ZodBoolean>;
337
+ taxCode: z.ZodDefault<z.ZodNullable<z.ZodString>>;
333
338
  images: z.ZodArray<z.ZodObject<{
334
339
  id: z.ZodString;
335
340
  url: z.ZodString;
@@ -345,8 +350,8 @@ declare const productImagePatchSchema: z.ZodObject<{
345
350
  }, z.core.$strip>;
346
351
  declare const adminProductListQuerySchema: z.ZodObject<{
347
352
  status: z.ZodOptional<z.ZodEnum<{
348
- active: "active";
349
353
  draft: "draft";
354
+ active: "active";
350
355
  archived: "archived";
351
356
  }>>;
352
357
  excludeArchived: z.ZodOptional<z.ZodLiteral<"true">>;
@@ -372,12 +377,13 @@ declare const adminProductPageSchema: z.ZodObject<{
372
377
  category: z.ZodNullable<z.ZodString>;
373
378
  quantity: z.ZodNumber;
374
379
  status: z.ZodEnum<{
375
- active: "active";
376
380
  draft: "draft";
381
+ active: "active";
377
382
  archived: "archived";
378
383
  }>;
379
384
  featured: z.ZodBoolean;
380
385
  everPublished: z.ZodDefault<z.ZodBoolean>;
386
+ taxCode: z.ZodDefault<z.ZodNullable<z.ZodString>>;
381
387
  images: z.ZodArray<z.ZodObject<{
382
388
  id: z.ZodString;
383
389
  url: z.ZodString;
@@ -443,6 +449,7 @@ declare const adminOrderListItemSchema: z.ZodObject<{
443
449
  refunded: "refunded";
444
450
  }>;
445
451
  email: z.ZodNullable<z.ZodString>;
452
+ taxCents: z.ZodDefault<z.ZodNumber>;
446
453
  totalCents: z.ZodNumber;
447
454
  currency: z.ZodString;
448
455
  itemCount: z.ZodNumber;
@@ -461,6 +468,7 @@ declare const adminOrderPageSchema: z.ZodObject<{
461
468
  refunded: "refunded";
462
469
  }>;
463
470
  email: z.ZodNullable<z.ZodString>;
471
+ taxCents: z.ZodDefault<z.ZodNumber>;
464
472
  totalCents: z.ZodNumber;
465
473
  currency: z.ZodString;
466
474
  itemCount: z.ZodNumber;
@@ -494,6 +502,7 @@ declare const adminOrderDetailSchema: z.ZodObject<{
494
502
  discountCode: z.ZodDefault<z.ZodNullable<z.ZodString>>;
495
503
  shippingCents: z.ZodNumber;
496
504
  shippingLabel: z.ZodNullable<z.ZodString>;
505
+ taxCents: z.ZodDefault<z.ZodNumber>;
497
506
  totalCents: z.ZodNumber;
498
507
  currency: z.ZodString;
499
508
  items: z.ZodArray<z.ZodObject<{
@@ -600,15 +609,15 @@ declare const discountPatchSchema: z.ZodObject<{
600
609
  code: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
601
610
  }, z.core.$strip>;
602
611
  declare const discountStatusSchema: z.ZodEnum<{
603
- active: "active";
604
612
  expired: "expired";
613
+ active: "active";
605
614
  inactive: "inactive";
606
615
  scheduled: "scheduled";
607
616
  }>;
608
617
  declare const adminDiscountListQuerySchema: z.ZodObject<{
609
618
  status: z.ZodOptional<z.ZodEnum<{
610
- active: "active";
611
619
  expired: "expired";
620
+ active: "active";
612
621
  inactive: "inactive";
613
622
  scheduled: "scheduled";
614
623
  }>>;
package/dist/index.js CHANGED
@@ -227,6 +227,7 @@ var orderTotalsShape = {
227
227
  discountCode: z6.string().nullable().default(null),
228
228
  shippingCents: z6.number().int().nonnegative(),
229
229
  shippingLabel: z6.string().nullable(),
230
+ taxCents: z6.number().int().nonnegative().default(0),
230
231
  totalCents: z6.number().int().nonnegative(),
231
232
  currency: z6.string().length(3),
232
233
  items: z6.array(orderItemSchema),
@@ -267,6 +268,7 @@ var shippingRatesInputSchema = z7.array(shippingRateSchema).refine((rates) => ne
267
268
  // src/admin.ts
268
269
  import { z as z8 } from "zod";
269
270
  var productStatusSchema = z8.enum(["draft", "active", "archived"]);
271
+ var taxCodeSchema = z8.string().regex(/^txcd_\d{8}$/);
270
272
  var productFields = z8.object({
271
273
  name: z8.string().trim().min(1),
272
274
  description: z8.string(),
@@ -277,7 +279,8 @@ var productFields = z8.object({
277
279
  category: z8.string().trim().min(1),
278
280
  quantity: z8.number().int().nonnegative(),
279
281
  status: productStatusSchema,
280
- featured: z8.boolean()
282
+ featured: z8.boolean(),
283
+ taxCode: taxCodeSchema.nullable().optional()
281
284
  });
282
285
  var publishRequiredFields = [
283
286
  "name",
@@ -326,6 +329,7 @@ var adminProductSchema = z8.object({
326
329
  status: productStatusSchema,
327
330
  featured: z8.boolean(),
328
331
  everPublished: z8.boolean().default(false),
332
+ taxCode: taxCodeSchema.nullable().default(null),
329
333
  images: z8.array(adminProductImageSchema)
330
334
  });
331
335
  var imageOrderInputSchema = z8.object({
@@ -373,6 +377,7 @@ var adminOrderListItemSchema = z9.object({
373
377
  id: z9.string().min(1),
374
378
  status: orderStatusSchema,
375
379
  email: z9.string().nullable(),
380
+ taxCents: z9.number().int().nonnegative().default(0),
376
381
  totalCents: z9.number().int().nonnegative(),
377
382
  currency: z9.string().length(3),
378
383
  itemCount: z9.number().int().nonnegative(),
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/discount.ts","../src/order.ts","../src/shipping.ts","../src/admin.ts","../src/admin-orders.ts","../src/order-ref.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 publishRequiredFields = [\n 'name',\n 'priceCents',\n 'category',\n] as const;\n\nexport const adminProductInputSchema = productFields\n .extend({\n name: z.string().trim().default(''),\n description: z.string().default(''),\n priceCents: productFields.shape.priceCents.optional(),\n category: z.string().trim().optional(),\n quantity: z.number().int().nonnegative().default(1),\n status: productStatusSchema.default('draft'),\n featured: z.boolean().default(false),\n })\n .superRefine((product, ctx) => {\n if (product.status !== 'active') return;\n for (const field of publishRequiredFields) {\n const value = product[field];\n if (value === undefined || value === '') {\n ctx.addIssue({\n code: 'custom',\n path: [field],\n message: `${field} is required to publish a product`,\n });\n }\n }\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(),\n description: z.string(),\n materials: z.string().nullable(),\n dimensions: z.string().nullable(),\n priceCents: z.number().int().nonnegative().nullable(),\n currency: z.string().length(3),\n category: z.string().min(1).nullable(),\n quantity: z.number().int().nonnegative(),\n status: productStatusSchema,\n featured: z.boolean(),\n everPublished: z.boolean().default(false),\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 excludeArchived: z.literal('true').optional(),\n incomplete: z.literal('true').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 const adminProductCountsSchema = z.object({\n all: z.number().int().nonnegative(),\n live: z.number().int().nonnegative(),\n draft: z.number().int().nonnegative(),\n sold: z.number().int().nonnegative(),\n archived: z.number().int().nonnegative(),\n incompleteDrafts: z.number().int().nonnegative(),\n});\n\nexport const productIncompleteFieldSchema = z.enum([\n ...publishRequiredFields,\n 'images',\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>;\nexport type AdminProductCounts = z.infer<typeof adminProductCountsSchema>;\nexport type ProductIncompleteField = z.infer<\n typeof productIncompleteFieldSchema\n>;\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","export function formatOrderRef(id: string): string {\n return `#${id.replace(/-/g, '').slice(0, 8).toUpperCase()}`;\n}\n\nexport function orderRefSearchTerm(input: string): string {\n return input.trim().replace(/^#/, '');\n}\n"],"mappings":"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","names":["z","z","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","../src/order-ref.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 taxCents: z.number().int().nonnegative().default(0),\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 taxCodeSchema = z.string().regex(/^txcd_\\d{8}$/);\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 taxCode: taxCodeSchema.nullable().optional(),\n});\n\nexport const publishRequiredFields = [\n 'name',\n 'priceCents',\n 'category',\n] as const;\n\nexport const adminProductInputSchema = productFields\n .extend({\n name: z.string().trim().default(''),\n description: z.string().default(''),\n priceCents: productFields.shape.priceCents.optional(),\n category: z.string().trim().optional(),\n quantity: z.number().int().nonnegative().default(1),\n status: productStatusSchema.default('draft'),\n featured: z.boolean().default(false),\n })\n .superRefine((product, ctx) => {\n if (product.status !== 'active') return;\n for (const field of publishRequiredFields) {\n const value = product[field];\n if (value === undefined || value === '') {\n ctx.addIssue({\n code: 'custom',\n path: [field],\n message: `${field} is required to publish a product`,\n });\n }\n }\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(),\n description: z.string(),\n materials: z.string().nullable(),\n dimensions: z.string().nullable(),\n priceCents: z.number().int().nonnegative().nullable(),\n currency: z.string().length(3),\n category: z.string().min(1).nullable(),\n quantity: z.number().int().nonnegative(),\n status: productStatusSchema,\n featured: z.boolean(),\n everPublished: z.boolean().default(false),\n taxCode: taxCodeSchema.nullable().default(null),\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 excludeArchived: z.literal('true').optional(),\n incomplete: z.literal('true').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 const adminProductCountsSchema = z.object({\n all: z.number().int().nonnegative(),\n live: z.number().int().nonnegative(),\n draft: z.number().int().nonnegative(),\n sold: z.number().int().nonnegative(),\n archived: z.number().int().nonnegative(),\n incompleteDrafts: z.number().int().nonnegative(),\n});\n\nexport const productIncompleteFieldSchema = z.enum([\n ...publishRequiredFields,\n 'images',\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>;\nexport type AdminProductCounts = z.infer<typeof adminProductCountsSchema>;\nexport type ProductIncompleteField = z.infer<\n typeof productIncompleteFieldSchema\n>;\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 taxCents: z.number().int().nonnegative().default(0),\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","export function formatOrderRef(id: string): string {\n return `#${id.replace(/-/g, '').slice(0, 8).toUpperCase()}`;\n}\n\nexport function orderRefSearchTerm(input: string): string {\n return input.trim().replace(/^#/, '');\n}\n"],"mappings":"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","names":["z","z","z","z","z","z","z","z","z","z"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@develemit/commerce-contracts",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Zod schemas and types shared by the @develemit storefront, server and admin.",
5
5
  "repository": {
6
6
  "type": "git",