Patch Changes
- Updated dependencies [16ff94c]
- react-email@6.6.0
--clients option to email dev and a COMPATIBILITY_EMAIL_CLIENTS environment variable to narrow which email clients trigger compatibility warnings. By default the preview still warns for gmail, apple-mail, outlook, and yahoo. Teams that only target one or two clients can now skip the noise: email dev --clients outlook,apple-mail. The CLI flag wins over the env var; an empty or fully-invalid list falls back to the defaults so warnings can't be silently switched off. Builds on #2797 by @ReemX.--clients option to email dev and a COMPATIBILITY_EMAIL_CLIENTS environment variable to narrow which email clients trigger compatibility warnings. By default the preview still warns for gmail, apple-mail, outlook, and yahoo. Teams that only target one or two clients can now skip the noise: email dev --clients outlook,apple-mail. The CLI flag wins over the env var; an empty or fully-invalid list falls back to the defaults so warnings can't be silently switched off. Builds on #2797 by @ReemX.dir/lang on Body, an empty alt fallback on Img, role="presentation" on the Markdown table, and a <title> from Preview.javascript:, vbscript:, and non-image data: URLs from pasted HTML and drop script, iframe, object, embed, meta, and base elements. This pass now runs on every paste; previously, content carrying the editor's node-* class marker took a fast-path that skipped sanitization entirely and could be spoofed by hosting attacker HTML with the same class name. Legitimate intra-editor copy/paste still round-trips class, style, and data-* attributes as before.--tw-* CSS variables in non-inlinable rules so Tailwind media query utilities no longer break GmailcomposeReactEmail as a new unformattedHtml field on the result. The existing html field is unchanged and still Prettier-formatted. Consumers that persist or send the email should prefer unformattedHtml, since pretty() indentation can inflate the byte size by 5–10× on deeply-nested table layouts (e.g. exports from Stripo or Mailchimp) and pushes the output past Gmail's 102 KB clipping threshold.renderEmailByPath and getEmailPathFromSlug to close a path-traversal vector in the preview servercssJS and merged theme objects from Object.create(null) so attacker-controlled __proto__, constructor, or prototype keys in panel-style input become regular own properties instead of mutating Object.prototype
27587f1: stop accepting the emails directory path as a server-action argument
The getEmailsDirectoryMetadataAction server action used to take an
absolute filesystem path from the client and walk that directory on the
server, which allowed any caller of the endpoint to enumerate arbitrary
directories on the host. The action now reads the path from the server-only
REACT_EMAIL_INTERNAL_EMAILS_DIR_ABSOLUTE_PATH env variable and ignores
client input.
Patch Changes f355fba: prevent prototype pollution in the email-theming plugin by building and merged theme objects from so attacker-contro…
Resend · React EmailPatch Changes 5c6c805: Blocks typing over the divider block and by mistake removing it from the content. Updated dependencies \[1c386ce] Up…
Resend · React Email