@shoplix-ai/sdui-schema 1.4.0 → 1.5.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/display.js CHANGED
@@ -1,13 +1,19 @@
1
1
  import { z } from 'zod';
2
2
  /**
3
- * Display-only money: a ready-to-render string plus its currency code.
4
- * Strict by construction — there is no numeric amount to compute with, and
5
- * the charged price always comes from Shopify checkout.
3
+ * Display money: a ready-to-render string, its currency code, and the decimal
4
+ * amount it was formatted from. A block may derive a display-only figure from
5
+ * amounts in one currency; the charged price and the total a buyer sees are
6
+ * always Shopify's, never a device-side sum.
6
7
  */
7
8
  export const displayMoneySchema = z.strictObject({
8
9
  formatted: z.string().min(1),
9
10
  currencyCode: z.string().regex(/^[A-Z]{3}$/, 'expected an ISO 4217 currency code'),
11
+ amount: z
12
+ .string()
13
+ .regex(/^\d+(\.\d+)?$/, 'expected a decimal amount string')
14
+ .optional(),
10
15
  });
16
+ const selectedOptionSchema = z.strictObject({ name: z.string().min(1), value: z.string().min(1) });
11
17
  export const displayImageSchema = z.strictObject({
12
18
  url: z.url(),
13
19
  altText: z.string().optional(),
@@ -28,7 +34,7 @@ export const productOptionSchema = z.strictObject({
28
34
  export const productVariantSchema = z.strictObject({
29
35
  id: z.string().min(1),
30
36
  title: z.string(),
31
- selectedOptions: z.array(z.strictObject({ name: z.string().min(1), value: z.string().min(1) })),
37
+ selectedOptions: z.array(selectedOptionSchema),
32
38
  available: z.boolean(),
33
39
  price: displayMoneySchema.optional(),
34
40
  compareAtPrice: displayMoneySchema.optional(),
@@ -60,6 +66,53 @@ export const collectionDisplaySchema = z.strictObject({
60
66
  handle: z.string().min(1),
61
67
  image: displayImageSchema.optional(),
62
68
  });
69
+ /** One custom attribute a buyer or a block put on a line or the cart: a key and a value. */
70
+ export const cartAttributeSchema = z.strictObject({ key: z.string().min(1), value: z.string() });
71
+ /**
72
+ * One line of the held cart as Shopify answered it and the Provider formatted
73
+ * it: what the buyer holds, of which product and variant, at what price. The
74
+ * compare-at total and the discount amount are present only where Shopify
75
+ * gave one.
76
+ */
77
+ export const cartLineDisplaySchema = z.strictObject({
78
+ id: z.string().min(1),
79
+ variantId: z.string().min(1),
80
+ productId: z.string().min(1),
81
+ productTitle: z.string(),
82
+ variantTitle: z.string(),
83
+ vendor: z.string().optional(),
84
+ selectedOptions: z.array(selectedOptionSchema),
85
+ image: displayImageSchema.optional(),
86
+ quantity: z.int().positive(),
87
+ unitPrice: displayMoneySchema,
88
+ lineTotal: displayMoneySchema,
89
+ compareAtTotal: displayMoneySchema.optional(),
90
+ discountAmount: displayMoneySchema.optional(),
91
+ attributes: z.array(cartAttributeSchema),
92
+ });
93
+ export const cartDiscountCodeSchema = z.strictObject({
94
+ code: z.string().min(1),
95
+ applicable: z.boolean(),
96
+ });
97
+ /**
98
+ * The held cart. The id and the checkout url are absent until Shopify holds
99
+ * the cart, which the first add brings about; a buyer who holds nothing sees
100
+ * zero lines and zero money in the market's currency. The total is Shopify's,
101
+ * with its estimated flag; a code Shopify does not honour stays listed with
102
+ * applicable false.
103
+ */
104
+ export const cartDisplaySchema = z.strictObject({
105
+ id: z.string().min(1).optional(),
106
+ checkoutUrl: z.url().optional(),
107
+ totalQuantity: z.int().min(0),
108
+ lines: z.array(cartLineDisplaySchema),
109
+ subtotal: displayMoneySchema,
110
+ totalDiscountAmount: displayMoneySchema,
111
+ total: displayMoneySchema,
112
+ totalEstimated: z.boolean(),
113
+ discountCodes: z.array(cartDiscountCodeSchema),
114
+ note: z.string().optional(),
115
+ });
63
116
  /**
64
117
  * The Binding's items in order, whatever its kind. A single-entity Binding
65
118
  * that resolved to nothing is an empty list, the same as an empty one, so a
@@ -77,22 +130,30 @@ export function bindingItems(data) {
77
130
  return data.collection === null ? [] : [data.collection];
78
131
  case 'collections':
79
132
  return data.collections;
133
+ case 'cart':
134
+ return data.cart.lines;
80
135
  }
81
136
  }
82
137
  function asProduct(item) {
83
138
  return 'price' in item ? item : undefined;
84
139
  }
140
+ function asCatalogItem(item) {
141
+ return 'handle' in item ? item : undefined;
142
+ }
85
143
  /**
86
144
  * One text field off the current item, already in the buyer's language. A
87
- * field the item does not carry — a collection has no vendor — reads as
88
- * nothing, and the node that asked for it draws nothing.
145
+ * field the item does not carry (a collection has no vendor, a cart line none
146
+ * of these) reads as nothing, and the node that asked for it draws nothing.
89
147
  */
90
148
  export function itemText(item, field) {
149
+ const listed = asCatalogItem(item);
150
+ if (listed === undefined)
151
+ return undefined;
91
152
  switch (field) {
92
153
  case 'title':
93
- return item.title;
154
+ return listed.title;
94
155
  case 'handle':
95
- return item.handle;
156
+ return listed.handle;
96
157
  case 'vendor':
97
158
  return asProduct(item)?.vendor;
98
159
  case 'product_type':
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../src/display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../src/display.ts"],"names":[],"mappings":"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"}