@odla-ai/chapter 0.54.2 → 0.55.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/README.md +32 -0
- package/dist/{chunk-SPEL4OGE.js → chunk-VEOGTSVX.js} +507 -359
- package/dist/chunk-VEOGTSVX.js.map +1 -0
- package/dist/index.cjs +515 -262
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +21 -2
- package/dist/index.d.ts +21 -2
- package/dist/index.js +511 -258
- package/dist/index.js.map +1 -1
- package/dist/ui/index.js +1 -1
- package/dist/ui/member/index.d.ts +7 -0
- package/dist/ui/member/index.js +1 -1
- package/dist/worker/index.cjs +1000 -609
- package/dist/worker/index.cjs.map +1 -1
- package/dist/worker/index.d.cts +20 -1
- package/dist/worker/index.d.ts +20 -1
- package/dist/worker/index.js +993 -602
- package/dist/worker/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-SPEL4OGE.js.map +0 -1
package/README.md
CHANGED
|
@@ -1745,6 +1745,38 @@ These bite silently — a smoke test won't catch them:
|
|
|
1745
1745
|
durable, unfinished local approval work without starving later applicants.
|
|
1746
1746
|
Neither helper installs a cron or provisions infrastructure by itself.
|
|
1747
1747
|
|
|
1748
|
+
Starting with Chapter 0.55.0, a named-seat-enabled `JoinIsland` also offers the
|
|
1749
|
+
additional member in the initial payment step. Both journeys read
|
|
1750
|
+
`seatPriceCents` from the selected SKU's frozen offering: a positive amount is
|
|
1751
|
+
the additional-member rate, and zero means included. No tier names or prices
|
|
1752
|
+
are hardcoded. A host form may pass `payment.initialNamedSeat` with
|
|
1753
|
+
`{ recipientName, recipientEmail }`; Chapter validates that selection and
|
|
1754
|
+
shows a fresh total before consent. Custom `payment.renderPriceLines` slots
|
|
1755
|
+
receive `namedSeatCents` (including zero); `dueTodayCents` already includes it.
|
|
1756
|
+
|
|
1757
|
+
`POST /api/payments/quote?application=<id>` accepts
|
|
1758
|
+
`{ namedSeat: { recipientName, recipientEmail } }` or `{ namedSeat: null }`
|
|
1759
|
+
before checkout starts. The response binds the selection, configured amount,
|
|
1760
|
+
and combined renewal total into its digest. The subscription request requires
|
|
1761
|
+
`seatTermsAck: true` for a selected seat, alongside the quote digest and refund
|
|
1762
|
+
consent. After that, the selection is immutable. The
|
|
1763
|
+
`x-chapter-checkout-started` response header tells a resumed UI to lock edits.
|
|
1764
|
+
There is one subscription and one initial payment. A priced seat has a
|
|
1765
|
+
separate, co-terminating recurring item; membership discounts are restricted
|
|
1766
|
+
to the primary product. An included seat has no provider item or extra charge.
|
|
1767
|
+
Independent invoice evidence commits the primary purchase and named seat
|
|
1768
|
+
together. A seat-only refund returns only its allocation and removes only its
|
|
1769
|
+
renewal item; a full membership refund covers both without a second refund.
|
|
1770
|
+
|
|
1771
|
+
Upgrade and provision the network owner's authority integration before
|
|
1772
|
+
deploying the follower on 0.55.0. The added checkout `namedSeat` and seat
|
|
1773
|
+
`combinedInvoice`/`purchaserEmailNormalized` fields are optional; a signup
|
|
1774
|
+
purchaser need not have a user account yet, so `purchaserUserId` is optional.
|
|
1775
|
+
The existing authority peer's configured `seatPriceId` is still server-owned
|
|
1776
|
+
and must match a positive offering seat price on a separate Stripe product.
|
|
1777
|
+
In-process users of `bindMembershipCheckout` pass that configured Price as
|
|
1778
|
+
its fourth argument when binding a selected seat.
|
|
1779
|
+
|
|
1748
1780
|
The member area exposes the authenticated purchaser's named-seat checkout
|
|
1749
1781
|
only when configured, and as soon as the membership is paid: `/api/me`
|
|
1750
1782
|
reports `namedSeatsEnabled` for a paid application whose interview is still
|