@odla-ai/chapter 0.59.0 → 0.60.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 +31 -2
- package/dist/{chunk-Y2H4VURI.js → chunk-D5UR5H6R.js} +4 -3
- package/dist/chunk-D5UR5H6R.js.map +1 -0
- package/dist/{chunk-WFTWT3V7.js → chunk-J7ES2OWN.js} +22 -6
- package/dist/{chunk-WFTWT3V7.js.map → chunk-J7ES2OWN.js.map} +1 -1
- package/dist/{chunk-GADLTNJF.js → chunk-QNP3UEIL.js} +2 -1
- package/dist/chunk-QNP3UEIL.js.map +1 -0
- package/dist/{copy-context-BuJBQafl.d.ts → copy-context-BP3G1iBd.d.ts} +1 -1
- package/dist/index.cjs +302 -98
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +55 -3
- package/dist/index.d.ts +55 -3
- package/dist/index.js +302 -98
- package/dist/index.js.map +1 -1
- package/dist/ui/admin/index.d.ts +6 -2
- package/dist/ui/admin/index.js +2 -2
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +3 -3
- package/dist/ui/member/index.d.ts +3 -3
- package/dist/ui/member/index.js +2 -2
- package/dist/worker/index.cjs +407 -186
- package/dist/worker/index.cjs.map +1 -1
- package/dist/worker/index.d.cts +123 -15
- package/dist/worker/index.d.ts +123 -15
- package/dist/worker/index.js +407 -186
- package/dist/worker/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-GADLTNJF.js.map +0 -1
- package/dist/chunk-Y2H4VURI.js.map +0 -1
package/README.md
CHANGED
|
@@ -1629,6 +1629,23 @@ These bite silently — a smoke test won't catch them:
|
|
|
1629
1629
|
`Tori Horton <tori@…>` in an inbox — while the address stays the Worker's
|
|
1630
1630
|
`EMAIL_FROM`. A group with no name sends the bare address exactly as before.
|
|
1631
1631
|
|
|
1632
|
+
**Deliverability.** Every send carries the text part verbatim and an HTML
|
|
1633
|
+
alternative rendered from it by `textToHtml` (paragraphs, line breaks, and
|
|
1634
|
+
each https address as a link labelled with itself) — multipart like mail from
|
|
1635
|
+
any mainstream sender, with nothing the text lacks. Recipient-facing events
|
|
1636
|
+
(every audience except the administrator's) also carry a List-Unsubscribe
|
|
1637
|
+
header pointing at the group's reply-to as a mailto link, so a reader who
|
|
1638
|
+
wants out writes to you instead of reporting spam. Set the notify deps'
|
|
1639
|
+
render hook to `false` for text-only mail, or pass your own renderer. The
|
|
1640
|
+
Email page lists spam-filter signals beside each template — shouting or
|
|
1641
|
+
over-punctuated subjects, trigger phrases, insecure or development-host
|
|
1642
|
+
links, shorteners, link-only bodies — and beside the sender (a no-reply
|
|
1643
|
+
From, a Reply-To on another domain); `emailSpamSignals` and
|
|
1644
|
+
`emailSenderWarnings` are the same checks for a script, and the save route
|
|
1645
|
+
returns them. Warnings never block a send. Authentication (SPF, DKIM, DMARC)
|
|
1646
|
+
belongs to Cloudflare Email Service: onboard the sending domain in the
|
|
1647
|
+
Cloudflare dashboard and it adds the records.
|
|
1648
|
+
|
|
1632
1649
|
**Re-check this on every chapter upgrade.** Wiring a send changes a site's
|
|
1633
1650
|
outbound mail with no local diff — release notes call out send changes
|
|
1634
1651
|
explicitly for that reason.
|
|
@@ -1835,8 +1852,20 @@ These bite silently — a smoke test won't catch them:
|
|
|
1835
1852
|
`MembershipDisputes` from `@odla-ai/chapter/ui/admin`: re-charging collects
|
|
1836
1853
|
the lost amount again on the member's saved card, off-session and only on the
|
|
1837
1854
|
operator's confirmed click, with one idempotency key kept on the row until
|
|
1838
|
-
Stripe answers so a lost response never charges twice.
|
|
1839
|
-
|
|
1855
|
+
Stripe answers so a lost response never charges twice. Another customer's
|
|
1856
|
+
charge never touches the membership.
|
|
1857
|
+
|
|
1858
|
+
A named seat's own PaymentIntent is the seat's dispute (Chapter 0.59.1): the
|
|
1859
|
+
same facts suspend only the `networkSeat` (`payment_disputed`, the prior
|
|
1860
|
+
seat status remembered, recipient state `disputed`), so the recipient loses
|
|
1861
|
+
access while the purchaser's membership stays as it was; won restores the
|
|
1862
|
+
seat, lost waits for the operator. The disputes list tags each row with
|
|
1863
|
+
`kind` (`membership` or `seat`, with the recipient's name), and a `seat_…`
|
|
1864
|
+
id on the re-charge route collects the seat amount again on the purchaser's
|
|
1865
|
+
saved card. A seat line billed on the primary subscription's invoice is the
|
|
1866
|
+
primary's charge and follows the membership rules above. Re-provision the
|
|
1867
|
+
authority schema: the seat row gains the same optional `dispute*` and
|
|
1868
|
+
`recharge*` attributes.
|
|
1840
1869
|
|
|
1841
1870
|
Starting with Chapter 0.55.0, a named-seat-enabled `JoinIsland` also offers the
|
|
1842
1871
|
additional member in the initial payment step. Both journeys read
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
DEFAULT_JOIN_COPY,
|
|
3
3
|
formatChapterCopy,
|
|
4
4
|
useChapterCopy
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-QNP3UEIL.js";
|
|
6
6
|
import {
|
|
7
7
|
collectFormFields
|
|
8
8
|
} from "./chunk-IVXVECKR.js";
|
|
@@ -1104,7 +1104,8 @@ var NAMED_SEAT_RECIPIENT_WORDS = {
|
|
|
1104
1104
|
joined: "joined as a member",
|
|
1105
1105
|
declined: "declined the seat",
|
|
1106
1106
|
refunded: "seat refunded",
|
|
1107
|
-
canceled: "seat canceled"
|
|
1107
|
+
canceled: "seat canceled",
|
|
1108
|
+
disputed: "seat payment disputed with the card issuer; their access is paused until it is resolved"
|
|
1108
1109
|
};
|
|
1109
1110
|
var day = (at) => new Date(at).toLocaleDateString("en-US", { timeZone: "UTC" });
|
|
1110
1111
|
function NamedSeatRecipientLine({ seat }) {
|
|
@@ -2697,4 +2698,4 @@ export {
|
|
|
2697
2698
|
membershipApplicationHref,
|
|
2698
2699
|
MembershipCards
|
|
2699
2700
|
};
|
|
2700
|
-
//# sourceMappingURL=chunk-
|
|
2701
|
+
//# sourceMappingURL=chunk-D5UR5H6R.js.map
|