@shoppexio/storefront 1.0.107 → 1.0.109

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,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.109
4
+
5
+ - Breaking: customer favorites are retired (PR #3838). The customer module drops `favorites`, `addFavorite` and `removeFavorite`, and the headless customer client drops `favorites`, `addFavorite` and `removeFavorite` with the `HeadlessCustomerFavorites` and `HeadlessCustomerFavoriteMutation` types: the API removes `/v1/customer/favorites`, so these calls would only answer 404.
6
+
7
+ ## 1.0.108
8
+
9
+ - `dashboard()` (`@shoppexio/storefront/customer`) keeps a subscription's `discount` (the running checkout code: `code`, `discount_type`, `discount_value`, `max_discount`, `currency`, `duration`, `payments_total`, `payments_used`, `discounted_amount`, `full_amount`, `discount_amount`, `next_amount`; null without one) instead of stripping it. Optional: absent until the API that sends it is deployed.
10
+ - `order()` keeps `paidAt`, `deliveryWithheld` (a gift or reveal holds the goods) and `expiredPayment` (what became of money an expired order took). All optional for deploy order.
11
+ - `orders({ statusGroup })` sends one group of the buyer status table (`paid` covers COMPLETED and AWAITING_STOCK) as `status_group`.
12
+ - The headless customer billing history keeps each row's `kind` and `plan_change`.
13
+ - `variants` keeps the producer's `is_featured` and `license_period`.
14
+ - `CouponValidation` declares the `all_except` scope with `excluded_product_ids`, and `product_discounts`.
15
+ - `Invoice` (`getInvoice()`) names the public read's keys: lines as `product` (`uniqid`, `title`, `quantity`, `total`), a decimal-string `total`, and no `products` or `created_at`.
16
+
3
17
  ## 1.0.107
4
18
 
5
19
  - Pause policy (Design Batch 4, feature 6). `dashboard()` (`@shoppexio/storefront/customer`) keeps a subscription's `pause` (`state` `scheduled` or `paused`, `starts_at`, `resume_at` or null, `reason`), `pause_options` (`starts_at`, `lengths` of 7, 14, 30, 60 or 90 `days` with their `resume_at`, `reason_enabled`, `pauses_left_after`) `pause_limit` (`pauses_per_year`, `available_again_at`) and `pause_access_roles` (the names of the Discord roles a pause takes, `[]` when it takes none, `null` when not known) instead of stripping them. `pauseSubscription(uniqid, { length_days, reason })` and `HeadlessCustomerClient.pauseSubscription(id, { lengthDays, reason })` send one of the offered lengths and an optional reason (`taking_a_break`, `too_expensive`, `not_using`, `not_working`, `other`); without a length the API pauses for the shop's longest pause. `resumeSubscription` also calls off a scheduled pause. The four fields are optional: absent until the API that sends them is deployed.
@@ -19810,6 +19810,23 @@ var customerPortalInvoiceDetailSchema = external_exports.object({
19810
19810
  currency: external_exports.string()
19811
19811
  }),
19812
19812
  currentPaymentAttemptId: nullableStringSchema,
19813
+ /**
19814
+ * The goods went to a gift recipient or wait for a reveal, so a delivered
19815
+ * line without `deliverySummary` was withheld, not empty. Optional so
19816
+ * payloads from before the field parse; absent states nothing.
19817
+ */
19818
+ deliveryWithheld: external_exports.boolean().optional(),
19819
+ /**
19820
+ * What became of money an expired order took: NONE when no payment is
19821
+ * recorded; null unless EXPIRED. Optional so payloads from before the field parse.
19822
+ */
19823
+ expiredPayment: external_exports.enum(["NONE", "IN_REVIEW", "HELD", "SETTLED", "REFUNDED"]).nullable().optional(),
19824
+ /**
19825
+ * When the paying attempt completed; null until one has. Kept on a disputed
19826
+ * or refunded order, so the status decides whether it reads as paid.
19827
+ * Optional so payloads from before the field parse.
19828
+ */
19829
+ paidAt: nullableStringSchema.optional(),
19813
19830
  lineItems: external_exports.array(external_exports.object({
19814
19831
  id: external_exports.string(),
19815
19832
  productTitle: external_exports.string(),
@@ -20090,7 +20107,23 @@ var customerPortalSubscriptionSummarySchema = external_exports.object({
20090
20107
  }).nullable().optional(),
20091
20108
  pause_limit: external_exports.object({ pauses_per_year: external_exports.number(), available_again_at: external_exports.string() }).nullable().optional(),
20092
20109
  // The Discord roles a pause takes ([] none); null when not known. Optional for deploy order.
20093
- pause_access_roles: external_exports.array(external_exports.string()).nullable().optional()
20110
+ pause_access_roles: external_exports.array(external_exports.string()).nullable().optional(),
20111
+ // The running coupon term (`SubscriptionCouponTermView`, loadSubscriptionCouponTermView); null
20112
+ // without one. Amounts are the renewal-pricing function's, in `currency`. Same deploy order.
20113
+ discount: external_exports.object({
20114
+ code: external_exports.string(),
20115
+ discount_type: external_exports.enum(["PERCENTAGE", "FIXED"]),
20116
+ discount_value: external_exports.string(),
20117
+ max_discount: nullableStringSchema,
20118
+ currency: external_exports.string(),
20119
+ duration: external_exports.enum(["ONCE", "REPEATING", "FOREVER"]),
20120
+ payments_total: external_exports.number().nullable(),
20121
+ payments_used: external_exports.number(),
20122
+ discounted_amount: external_exports.string(),
20123
+ full_amount: external_exports.string(),
20124
+ discount_amount: external_exports.string(),
20125
+ next_amount: external_exports.string()
20126
+ }).nullable().optional()
20094
20127
  });
20095
20128
  var customerLoyaltySchema = external_exports.object({
20096
20129
  enabled: external_exports.boolean(),
@@ -20149,6 +20182,12 @@ var customerPortalDashboardSchema = external_exports.object({
20149
20182
  email: external_exports.string(),
20150
20183
  name: external_exports.string()
20151
20184
  }),
20185
+ /*
20186
+ * A merchant's portal link opened this session: the redeem and sign-in routes
20187
+ * refuse it with a 403. Undeclared here, the SDK stripped it and the code
20188
+ * storefront kept offering Redeem until the confirm failed.
20189
+ */
20190
+ opened_by_portal_link: external_exports.boolean(),
20152
20191
  stats: external_exports.object({
20153
20192
  invoices_count: external_exports.number(),
20154
20193
  licenses_count: external_exports.number(),
@@ -20271,4 +20310,4 @@ export {
20271
20310
  customerPortalNotificationPreferencesSchema,
20272
20311
  customerPortalAffiliateCreateLinkSchema
20273
20312
  };
20274
- //# sourceMappingURL=chunk-P7MN6RXP.js.map
20313
+ //# sourceMappingURL=chunk-RA26HK3B.js.map