@odla-ai/chapter 0.59.1 → 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 +17 -0
- package/dist/{chunk-SDGVPIXF.js → chunk-D5UR5H6R.js} +2 -2
- package/dist/{chunk-P6X3W2XP.js → chunk-J7ES2OWN.js} +12 -2
- package/dist/{chunk-P6X3W2XP.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 +141 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +54 -2
- package/dist/index.d.ts +54 -2
- package/dist/index.js +141 -3
- package/dist/index.js.map +1 -1
- package/dist/ui/admin/index.d.ts +2 -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 +2 -2
- package/dist/ui/member/index.js +2 -2
- package/dist/worker/index.cjs +143 -5
- package/dist/worker/index.cjs.map +1 -1
- package/dist/worker/index.d.cts +1 -1
- package/dist/worker/index.d.ts +1 -1
- package/dist/worker/index.js +143 -5
- package/dist/worker/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-GADLTNJF.js.map +0 -1
- /package/dist/{chunk-SDGVPIXF.js.map → chunk-D5UR5H6R.js.map} +0 -0
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.
|
|
@@ -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";
|
|
@@ -2698,4 +2698,4 @@ export {
|
|
|
2698
2698
|
membershipApplicationHref,
|
|
2699
2699
|
MembershipCards
|
|
2700
2700
|
};
|
|
2701
|
-
//# sourceMappingURL=chunk-
|
|
2701
|
+
//# sourceMappingURL=chunk-D5UR5H6R.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
DEFAULT_CHAPTER_COPY,
|
|
5
5
|
formatChapterCopy,
|
|
6
6
|
useChapterCopy
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-QNP3UEIL.js";
|
|
8
8
|
|
|
9
9
|
// src/ui/admin.tsx
|
|
10
10
|
import { useEffect as useEffect12, useMemo as useMemo3, useRef as useRef3, useState as useState27 } from "preact/hooks";
|
|
@@ -2739,6 +2739,11 @@ function EmailBody({ ctx }) {
|
|
|
2739
2739
|
" ready"
|
|
2740
2740
|
] }),
|
|
2741
2741
|
data.validation.issues.length ? /* @__PURE__ */ jsx29("ul", { role: "alert", children: data.validation.issues.map((issue, i) => /* @__PURE__ */ jsx29("li", { children: issue.message }, i)) }) : null,
|
|
2742
|
+
data.validation.warnings?.length ? /* @__PURE__ */ jsx29("ul", { children: data.validation.warnings.map((warning, i) => /* @__PURE__ */ jsxs27("li", { children: [
|
|
2743
|
+
copy.spamRisk,
|
|
2744
|
+
": ",
|
|
2745
|
+
warning.message
|
|
2746
|
+
] }, i)) }) : null,
|
|
2742
2747
|
draft ? /* @__PURE__ */ jsx29("p", { role: "status", children: "Save your changes to refresh these checks." }) : /* @__PURE__ */ jsxs27("p", { className: "muted", children: [
|
|
2743
2748
|
"Checked ",
|
|
2744
2749
|
new Date(data.validation.checkedAt).toLocaleString()
|
|
@@ -2773,6 +2778,11 @@ function EmailBody({ ctx }) {
|
|
|
2773
2778
|
"."
|
|
2774
2779
|
] }),
|
|
2775
2780
|
event.issues.length ? /* @__PURE__ */ jsx29("ul", { children: event.issues.map((issue, i) => /* @__PURE__ */ jsx29("li", { children: issue.message }, i)) }) : null,
|
|
2781
|
+
event.warnings?.length ? /* @__PURE__ */ jsx29("ul", { className: "muted", children: event.warnings.map((warning, i) => /* @__PURE__ */ jsxs27("li", { children: [
|
|
2782
|
+
copy.spamRisk,
|
|
2783
|
+
": ",
|
|
2784
|
+
warning.message
|
|
2785
|
+
] }, i)) }) : null,
|
|
2776
2786
|
/* @__PURE__ */ jsx29(Checkbox2, { label: copy.enabled, checked: t.enabled === true, onChange: (e) => editTemplate(key, { enabled: e.target.checked }) }),
|
|
2777
2787
|
/* @__PURE__ */ jsx29(Field13, { label: copy.subject, children: /* @__PURE__ */ jsx29(Input6, { value: t.subject, onInput: (e) => editTemplate(key, { subject: e.target.value }) }) }),
|
|
2778
2788
|
/* @__PURE__ */ jsx29(Field13, { label: copy.body, children: /* @__PURE__ */ jsx29(Textarea5, { prose: true, rows: 5, value: t.text, onInput: (e) => editTemplate(key, { text: e.target.value }) }) }),
|
|
@@ -3875,4 +3885,4 @@ export {
|
|
|
3875
3885
|
MembershipDisputes,
|
|
3876
3886
|
MembershipPolicyVersions
|
|
3877
3887
|
};
|
|
3878
|
-
//# sourceMappingURL=chunk-
|
|
3888
|
+
//# sourceMappingURL=chunk-J7ES2OWN.js.map
|