@bobfrankston/rmfmail 1.1.123 → 1.1.125

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/client/app.js CHANGED
@@ -1260,10 +1260,16 @@ function sanitizeQuotedBody(msg) {
1260
1260
  // raw whitespace or not. pre-wrap stays as belt-and-braces and to
1261
1261
  // keep multi-space runs (alignment, indented quote-markers like
1262
1262
  // `> > >`) visible.
1263
- const escaped = String(msg.bodyText || "")
1263
+ let escaped = String(msg.bodyText || "")
1264
1264
  .replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;")
1265
1265
  .replace(/\r\n?/g, "\n")
1266
1266
  .replace(/\n/g, "<br>");
1267
+ // Linkify bare URLs. Without this, replying to a plain-text email
1268
+ // (mailing lists, etc.) drops every URL into the quote as dead
1269
+ // text — the editor has nothing to keep clickable, so the sent
1270
+ // reply has no working links (Bob 2026-05-22). The regex stops at
1271
+ // `<`, so the <br>s inserted above can't be swallowed into an href.
1272
+ escaped = escaped.replace(/(https?:\/\/[^\s<>"')\]]+)/g, '<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>');
1267
1273
  return `<div style="white-space:pre-wrap;font-family:inherit;margin:0">${escaped}</div>`;
1268
1274
  }
1269
1275
  let body = msg.bodyHtml;