@shoppexio/storefront 1.0.106 → 1.0.108

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.108
4
+
5
+ - `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.
6
+ - `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.
7
+ - `orders({ statusGroup })` sends one group of the buyer status table (`paid` covers COMPLETED and AWAITING_STOCK) as `status_group`.
8
+ - The headless customer billing history keeps each row's `kind` and `plan_change`.
9
+ - `variants` keeps the producer's `is_featured` and `license_period`.
10
+ - `CouponValidation` declares the `all_except` scope with `excluded_product_ids`, and `product_discounts`.
11
+ - `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`.
12
+
13
+ ## 1.0.107
14
+
15
+ - 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.
16
+
3
17
  ## 1.0.106
4
18
 
5
19
  - `dashboard()` (`@shoppexio/storefront/customer`) keeps a subscription's `open_renewal` (the renewal invoice to pay now: `uniqid`, `amount`, `currency`, `pay_by`, `pay_url`) and `hold_ends_at` (when an unpaid renewal's hold ends the subscription) instead of stripping them (PR #4099). Show "Pay now" from `open_renewal.pay_url`. It also keeps `ends_at`: when a subscription set to end without renewing ends (cancelled at the period end, or a voided renewal); show "Ends" from it instead of reading `cancel_at_period_end`. The three 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(),
@@ -20070,7 +20087,42 @@ var customerPortalSubscriptionSummarySchema = external_exports.object({
20070
20087
  amount: external_exports.string(),
20071
20088
  currency: external_exports.string(),
20072
20089
  pay_by: external_exports.string(),
20073
- pay_url: external_exports.string()
20090
+ pay_url: external_exports.string(),
20091
+ interval: external_exports.string(),
20092
+ interval_count: external_exports.number()
20093
+ }).nullable().optional(),
20094
+ // The pause policy (me.routes.ts, buyerPauseView): the open pause, the lengths a new pause
20095
+ // can take, or the yearly limit. Optional for the same deploy order.
20096
+ pause: external_exports.object({
20097
+ state: external_exports.enum(["scheduled", "paused"]),
20098
+ starts_at: external_exports.string(),
20099
+ resume_at: nullableStringSchema,
20100
+ reason: external_exports.enum(["taking_a_break", "too_expensive", "not_using", "not_working", "other"]).nullable()
20101
+ }).nullable().optional(),
20102
+ pause_options: external_exports.object({
20103
+ starts_at: external_exports.string(),
20104
+ lengths: external_exports.array(external_exports.object({ days: external_exports.union([external_exports.literal(7), external_exports.literal(14), external_exports.literal(30), external_exports.literal(60), external_exports.literal(90)]), resume_at: external_exports.string() })),
20105
+ reason_enabled: external_exports.boolean(),
20106
+ pauses_left_after: external_exports.number()
20107
+ }).nullable().optional(),
20108
+ pause_limit: external_exports.object({ pauses_per_year: external_exports.number(), available_again_at: external_exports.string() }).nullable().optional(),
20109
+ // The Discord roles a pause takes ([] none); null when not known. Optional for deploy order.
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()
20074
20126
  }).nullable().optional()
20075
20127
  });
20076
20128
  var customerLoyaltySchema = external_exports.object({
@@ -20252,4 +20304,4 @@ export {
20252
20304
  customerPortalNotificationPreferencesSchema,
20253
20305
  customerPortalAffiliateCreateLinkSchema
20254
20306
  };
20255
- //# sourceMappingURL=chunk-INBEHRZN.js.map
20307
+ //# sourceMappingURL=chunk-HMEEWD3P.js.map