@bobfrankston/rmfmail 1.2.242 → 1.2.244
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/android-bootstrap.bundle.js +24 -2
- package/client/android-bootstrap.bundle.js.map +2 -2
- package/client/app.bundle.js +28 -52
- package/client/app.bundle.js.map +3 -3
- package/client/app.js +22 -57
- package/client/app.js.map +1 -1
- package/client/app.ts +21 -54
- package/client/components/message-list.js +13 -2
- package/client/components/message-list.js.map +1 -1
- package/client/components/message-viewer.js +10 -2
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +11 -2
- package/package.json +7 -7
- package/packages/mailx-imap/index.d.ts +9 -0
- package/packages/mailx-imap/index.d.ts.map +1 -1
- package/packages/mailx-imap/index.js +86 -0
- package/packages/mailx-imap/index.js.map +1 -1
- package/packages/mailx-imap/index.ts +73 -0
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +1 -1
- package/packages/mailx-service/index.d.ts.map +1 -1
- package/packages/mailx-service/index.js +37 -4
- package/packages/mailx-service/index.js.map +1 -1
- package/packages/mailx-types/mime-inline-images.d.ts +0 -4
- package/packages/mailx-types/mime-inline-images.d.ts.map +1 -1
- package/packages/mailx-types/mime-inline-images.js +48 -4
- package/packages/mailx-types/mime-inline-images.js.map +1 -1
- package/packages/mailx-types/mime-inline-images.ts +45 -5
- package/packages/mailx-types/package.json +1 -1
- package/packages/mailx-types/test/inline-images.test.mjs +79 -0
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-33484 → node_modules.npmglobalize-stash-55392}/.package-lock.json +0 -0
package/client/app.bundle.js
CHANGED
|
@@ -1621,6 +1621,24 @@ var init_address_book = __esm({
|
|
|
1621
1621
|
});
|
|
1622
1622
|
|
|
1623
1623
|
// client/components/message-viewer.js
|
|
1624
|
+
var message_viewer_exports = {};
|
|
1625
|
+
__export(message_viewer_exports, {
|
|
1626
|
+
clearViewer: () => clearViewer,
|
|
1627
|
+
getCurrentMessage: () => getCurrentMessage,
|
|
1628
|
+
initViewer: () => initViewer,
|
|
1629
|
+
invalidateParsedCache: () => invalidateParsedCache,
|
|
1630
|
+
popOutCurrentMessage: () => popOutCurrentMessage,
|
|
1631
|
+
popOutToWindow: () => popOutToWindow,
|
|
1632
|
+
printCurrentMessage: () => printCurrentMessage,
|
|
1633
|
+
printMessage: () => printMessage,
|
|
1634
|
+
saveCurrentMessageAsEml: () => saveCurrentMessageAsEml,
|
|
1635
|
+
saveCurrentMessageAsHtml: () => saveCurrentMessageAsHtml,
|
|
1636
|
+
showMessage: () => showMessage,
|
|
1637
|
+
showPreviewBodyMenu: () => showPreviewBodyMenu,
|
|
1638
|
+
spawnDesktopPopout: () => spawnDesktopPopout,
|
|
1639
|
+
toggleFullscreenPreview: () => toggleFullscreenPreview,
|
|
1640
|
+
wrapHtmlBody: () => wrapHtmlBody
|
|
1641
|
+
});
|
|
1624
1642
|
function parsedCacheGet(accountId, folderId, uid) {
|
|
1625
1643
|
if (folderId == null)
|
|
1626
1644
|
return null;
|
|
@@ -3503,7 +3521,10 @@ function buildPrintableDoc(m) {
|
|
|
3503
3521
|
function printCurrentMessage() {
|
|
3504
3522
|
if (!currentMessage)
|
|
3505
3523
|
return;
|
|
3506
|
-
|
|
3524
|
+
printMessage(currentMessage);
|
|
3525
|
+
}
|
|
3526
|
+
function printMessage(msg) {
|
|
3527
|
+
const doc = buildPrintableDoc(msg);
|
|
3507
3528
|
if (!doc)
|
|
3508
3529
|
return;
|
|
3509
3530
|
const iframe = document.createElement("iframe");
|
|
@@ -4691,7 +4712,9 @@ async function loadSearchResults(query, scope = "all", accountId = "", folderId
|
|
|
4691
4712
|
const partial = !!result.partial;
|
|
4692
4713
|
const foldersFailed = result.foldersFailed || 0;
|
|
4693
4714
|
const foldersSearched = result.foldersSearched || 0;
|
|
4694
|
-
const
|
|
4715
|
+
const foldersGone = result.foldersGone || 0;
|
|
4716
|
+
const goneNote = foldersGone > 0 ? `<div class="ml-search-warning">Removed ${foldersGone} stale folder(s) that no longer exist on the server \u2014 they won't be searched again.</div>` : "";
|
|
4717
|
+
const partialNote = (partial && foldersFailed > 0 ? `<div class="ml-search-warning">\u26A0 Searched ${foldersSearched} folder(s); ${foldersFailed} timed out. Results may be incomplete \u2014 search again to retry those.</div>` : "") + goneNote;
|
|
4695
4718
|
if (result.items.length === 0) {
|
|
4696
4719
|
setMessages([]);
|
|
4697
4720
|
body.innerHTML = partialNote + `<div class="ml-empty">No messages found by "${escapeHtmlText(query)}"${partial ? " in the folders that responded" : ""}</div>`;
|
|
@@ -10336,7 +10359,7 @@ document.addEventListener("mailx-compose", ((e) => {
|
|
|
10336
10359
|
if (e.detail.mode === "draft" && sessionStorage.getItem("composeInit")) {
|
|
10337
10360
|
showComposeOverlay();
|
|
10338
10361
|
} else {
|
|
10339
|
-
openCompose(e.detail.mode);
|
|
10362
|
+
openCompose(e.detail.mode, e.detail.message, e.detail.accountId);
|
|
10340
10363
|
}
|
|
10341
10364
|
}));
|
|
10342
10365
|
document.addEventListener("mailx-delete", () => deleteSelection());
|
|
@@ -13232,56 +13255,9 @@ document.addEventListener("mailx-popout-message", (async (e) => {
|
|
|
13232
13255
|
showComposeOverlay(msg.subject ? `Edit: ${msg.subject}` : "Edit draft");
|
|
13233
13256
|
return;
|
|
13234
13257
|
}
|
|
13235
|
-
const
|
|
13236
|
-
|
|
13237
|
-
wrapper.style.cssText = "position:fixed;top:5vh;right:5vw;width:min(900px,60vw);height:min(800px,80vh);z-index:1500;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;box-shadow:0 8px 32px rgba(0,0,0,0.3);display:flex;flex-direction:column;resize:both;overflow:hidden;";
|
|
13238
|
-
const header = document.createElement("div");
|
|
13239
|
-
header.style.cssText = "display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-bg-surface);border-bottom:1px solid var(--color-border);font-weight:600;cursor:move;";
|
|
13240
|
-
const title = document.createElement("span");
|
|
13241
|
-
title.textContent = subject || "(no subject)";
|
|
13242
|
-
title.style.cssText = "flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;";
|
|
13243
|
-
const closeBtn = document.createElement("button");
|
|
13244
|
-
closeBtn.textContent = "\xD7";
|
|
13245
|
-
closeBtn.style.cssText = "background:none;border:none;font-size:1.4rem;cursor:pointer;padding:0 8px;";
|
|
13246
|
-
closeBtn.addEventListener("click", () => wrapper.remove());
|
|
13247
|
-
header.appendChild(title);
|
|
13248
|
-
header.appendChild(closeBtn);
|
|
13249
|
-
const meta = document.createElement("div");
|
|
13250
|
-
meta.style.cssText = "padding:8px 12px;border-bottom:1px solid var(--color-border);font-size:0.9rem;color:var(--color-text-muted);";
|
|
13251
|
-
meta.innerHTML = `<div><b>From:</b> ${escapeHtmlBasic(msg.from?.name || "")} <${escapeHtmlBasic(msg.from?.address || "")}></div>
|
|
13252
|
-
<div><b>To:</b> ${(msg.to || []).map((a) => escapeHtmlBasic(`${a.name || ""} <${a.address}>`)).join(", ")}</div>
|
|
13253
|
-
${msg.cc?.length ? `<div><b>Cc:</b> ${msg.cc.map((a) => escapeHtmlBasic(`${a.name || ""} <${a.address}>`)).join(", ")}</div>` : ""}
|
|
13254
|
-
<div><b>Date:</b> ${new Date(msg.date).toLocaleString()}</div>`;
|
|
13255
|
-
const body = document.createElement("iframe");
|
|
13256
|
-
body.style.cssText = "flex:1;border:none;width:100%;background:#fff;";
|
|
13257
|
-
body.sandbox.add("allow-same-origin");
|
|
13258
|
-
wrapper.appendChild(header);
|
|
13259
|
-
wrapper.appendChild(meta);
|
|
13260
|
-
wrapper.appendChild(body);
|
|
13261
|
-
document.body.appendChild(wrapper);
|
|
13262
|
-
body.srcdoc = msg.bodyHtml ? wrapHtmlBody(msg.bodyHtml, !!msg.remoteAllowed) : `<!DOCTYPE html><html><head><style>body{font-family:system-ui,sans-serif;font-size:17.5px;line-height:1.5;color:#1a1a2e;padding:1rem;margin:0;}pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:inherit;margin:0;}</style></head><body><pre>${escapeHtmlBasic(msg.bodyText || "(no body)")}</pre></body></html>`;
|
|
13263
|
-
let dragX = 0, dragY = 0, dragging = false;
|
|
13264
|
-
header.addEventListener("mousedown", (de) => {
|
|
13265
|
-
if (de.target.tagName === "BUTTON") return;
|
|
13266
|
-
dragging = true;
|
|
13267
|
-
const rect = wrapper.getBoundingClientRect();
|
|
13268
|
-
dragX = de.clientX - rect.left;
|
|
13269
|
-
dragY = de.clientY - rect.top;
|
|
13270
|
-
de.preventDefault();
|
|
13271
|
-
});
|
|
13272
|
-
document.addEventListener("mousemove", (de) => {
|
|
13273
|
-
if (!dragging) return;
|
|
13274
|
-
wrapper.style.left = `${de.clientX - dragX}px`;
|
|
13275
|
-
wrapper.style.top = `${de.clientY - dragY}px`;
|
|
13276
|
-
wrapper.style.right = "auto";
|
|
13277
|
-
});
|
|
13278
|
-
document.addEventListener("mouseup", () => {
|
|
13279
|
-
dragging = false;
|
|
13280
|
-
});
|
|
13258
|
+
const { spawnDesktopPopout: spawnDesktopPopout2 } = await Promise.resolve().then(() => (init_message_viewer(), message_viewer_exports));
|
|
13259
|
+
spawnDesktopPopout2(msg, accountId);
|
|
13281
13260
|
}));
|
|
13282
|
-
function escapeHtmlBasic(s) {
|
|
13283
|
-
return (s || "").replace(/[&<>"']/g, (c) => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" })[c]);
|
|
13284
|
-
}
|
|
13285
13261
|
document.getElementById("status-queue")?.addEventListener("click", async () => {
|
|
13286
13262
|
try {
|
|
13287
13263
|
const { openOutboxView: openOutboxView2 } = await Promise.resolve().then(() => (init_outbox_view(), outbox_view_exports));
|