@bobfrankston/rmfmail 1.1.228 → 1.1.231

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.
Files changed (41) hide show
  1. package/client/android-bootstrap.bundle.js +4 -1
  2. package/client/android-bootstrap.bundle.js.map +2 -2
  3. package/client/app.bundle.js +54 -20
  4. package/client/app.bundle.js.map +2 -2
  5. package/client/app.js +42 -7
  6. package/client/app.js.map +1 -1
  7. package/client/app.ts +43 -7
  8. package/client/components/message-viewer.js +30 -9
  9. package/client/components/message-viewer.js.map +1 -1
  10. package/client/components/message-viewer.ts +28 -9
  11. package/client/compose/compose.bundle.js +9 -9
  12. package/client/compose/compose.bundle.js.map +2 -2
  13. package/client/compose/compose.js +2 -2
  14. package/client/compose/compose.js.map +1 -1
  15. package/client/compose/compose.ts +2 -2
  16. package/client/lib/api-client.js +7 -7
  17. package/client/lib/api-client.js.map +1 -1
  18. package/client/lib/api-client.ts +7 -7
  19. package/client/lib/mailxapi.js +4 -4
  20. package/package.json +5 -5
  21. package/packages/mailx-service/index.d.ts +3 -3
  22. package/packages/mailx-service/index.d.ts.map +1 -1
  23. package/packages/mailx-service/index.js +148 -29
  24. package/packages/mailx-service/index.js.map +1 -1
  25. package/packages/mailx-service/index.ts +135 -23
  26. package/packages/mailx-service/jsonrpc.js +3 -3
  27. package/packages/mailx-service/jsonrpc.js.map +1 -1
  28. package/packages/mailx-service/jsonrpc.ts +3 -3
  29. package/packages/mailx-store/db.d.ts.map +1 -1
  30. package/packages/mailx-store/db.js +30 -8
  31. package/packages/mailx-store/db.js.map +1 -1
  32. package/packages/mailx-store/db.ts +27 -8
  33. package/packages/mailx-types/index.d.ts +7 -3
  34. package/packages/mailx-types/index.d.ts.map +1 -1
  35. package/packages/mailx-types/index.js.map +1 -1
  36. package/packages/mailx-types/index.ts +7 -3
  37. package/packages/mailx-types/mailx-api.d.ts +1 -1
  38. package/packages/mailx-types/mailx-api.d.ts.map +1 -1
  39. package/packages/mailx-types/mailx-api.ts +1 -1
  40. package/tsconfig.base.json +1 -0
  41. package/packages/mailx-imap/node_modules.npmglobalize-stash-126048/.package-lock.json +0 -116
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import * as dns from "node:dns/promises";
7
7
  import * as fs from "node:fs";
8
+ import * as os from "node:os";
8
9
  import * as path from "node:path";
9
10
  import { parseSerial } from "@bobfrankston/mailx-store";
10
11
  const __dirname = import.meta.dirname;
@@ -54,6 +55,74 @@ async function detectEmailProvider(domain) {
54
55
  return null;
55
56
  }
56
57
  // sanitizeHtml and encodeQuotedPrintable imported from @bobfrankston/mailx-types (shared with Android)
58
+ /** Scratch dir where the *Open* path stages an attachment before handing it to
59
+ * the OS default app. It lives under the OS temp dir — not `~/.rmfmail/` —
60
+ * because these are throwaway copies, not app state: the OS sweeps temp as a
61
+ * backstop and they don't masquerade as durable data. `start`/`open` only need
62
+ * the file to exist long enough for the launched app to read it. */
63
+ function getAttachmentStagingDir() {
64
+ return path.join(os.tmpdir(), "rmfmail", "attachments");
65
+ }
66
+ const ATTACHMENT_STAGING_MAX_AGE_MS = 24 * 60 * 60 * 1000;
67
+ /** Purge stale staged attachments (and retire the legacy
68
+ * `~/.rmfmail/attachments/` location, which never had cleanup and accumulated
69
+ * months of opened files). Best-effort: any error is swallowed — staging is
70
+ * not load-bearing. Called at startup and is cheap (one readdir). */
71
+ function cleanupAttachmentStaging(legacyDir) {
72
+ const sweep = (dir, maxAgeMs) => {
73
+ let entries;
74
+ try {
75
+ entries = fs.readdirSync(dir);
76
+ }
77
+ catch {
78
+ return;
79
+ }
80
+ const now = Date.now();
81
+ for (const name of entries) {
82
+ const p = path.join(dir, name);
83
+ try {
84
+ const st = fs.statSync(p);
85
+ if (st.isFile() && (maxAgeMs === 0 || now - st.mtimeMs > maxAgeMs)) {
86
+ fs.unlinkSync(p);
87
+ }
88
+ }
89
+ catch { /* ignore — file may have vanished or be locked */ }
90
+ }
91
+ };
92
+ sweep(getAttachmentStagingDir(), ATTACHMENT_STAGING_MAX_AGE_MS);
93
+ // Legacy location: these are all orphaned Open-staging copies, so clear
94
+ // them regardless of age (maxAge 0), then drop the now-empty dir.
95
+ sweep(legacyDir, 0);
96
+ try {
97
+ fs.rmdirSync(legacyDir);
98
+ }
99
+ catch { /* not empty / not present — fine */ }
100
+ }
101
+ /** Map a MIME type to a file extension so a saved attachment whose name lost
102
+ * its extension still dispatches to an OS handler. Covers the common types;
103
+ * unknown types return "" (the file opens without an extension as before). */
104
+ function extForMime(mime) {
105
+ const m = (mime || "").toLowerCase().split(";")[0].trim();
106
+ const map = {
107
+ "text/calendar": ".ics",
108
+ "application/ics": ".ics",
109
+ "application/pdf": ".pdf",
110
+ "text/plain": ".txt",
111
+ "text/html": ".html",
112
+ "image/png": ".png",
113
+ "image/jpeg": ".jpg",
114
+ "image/gif": ".gif",
115
+ "image/webp": ".webp",
116
+ "image/svg+xml": ".svg",
117
+ "application/zip": ".zip",
118
+ "application/json": ".json",
119
+ "application/msword": ".doc",
120
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document": ".docx",
121
+ "application/vnd.ms-excel": ".xls",
122
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ".xlsx",
123
+ };
124
+ return map[m] || "";
125
+ }
57
126
  /** Compare a local task row to an incoming Google task projection. Used by
58
127
  * refreshTasks to skip no-op upserts that would otherwise emit `tasksUpdated`
59
128
  * on every poll, feeding back into the UI's getTasks-on-event listener and
@@ -147,6 +216,11 @@ export class MailxService {
147
216
  this.store.db.setOnContactsChanged(() => this.markContactsDirty());
148
217
  // Initial load of contacts.jsonc — fire-and-forget; missing file is fine.
149
218
  this.loadContactsConfig().catch(() => { });
219
+ // Sweep stale Open-staging copies and retire the legacy in-config dir.
220
+ try {
221
+ cleanupAttachmentStaging(path.join(getConfigDir(), "attachments"));
222
+ }
223
+ catch { /* best-effort */ }
150
224
  }
151
225
  /** Transitional getter — direct DB access from MailxService for the
152
226
  * ~50 callsites that haven't yet migrated to Store methods. Future:
@@ -552,7 +626,15 @@ export class MailxService {
552
626
  // back to the same file naturally — no Save-As-Web-Page gymnastics.
553
627
  // The .html-as-input flow had a 50% rate of "user saved but rmfmail
554
628
  // didn't reload" because Word silently switched format to .docx.
555
- const filePath = path.join(dir, `${editId}.docx`);
629
+ //
630
+ // UNIQUE filename per open: re-clicking "Edit in Word" while the
631
+ // previous Word window still holds <editId>.docx made writeFileSync
632
+ // throw EBUSY → fell back to the broken .html path (Bob 2026-06-06).
633
+ // A fresh timestamped path can't be locked, so the primary .docx
634
+ // round-trip always works. Date.now() is fine here (daemon, not a
635
+ // workflow script).
636
+ const fileBase = `${editId}-${Date.now()}`;
637
+ const filePath = path.join(dir, `${fileBase}.docx`);
556
638
  const wrapped = `<!doctype html>
557
639
  <html><head><meta charset="utf-8"><title>mailx draft</title></head>
558
640
  <body>${html || "<p></p>"}</body></html>
@@ -569,7 +651,7 @@ export class MailxService {
569
651
  // gets *something* — they'll need Save-As-Web-Page in Word but
570
652
  // that's better than no edit path at all.
571
653
  console.warn(` [word-edit] html-to-docx failed: ${e?.message || e} — falling back to .html`);
572
- const htmlPath = path.join(dir, `${editId}.html`);
654
+ const htmlPath = path.join(dir, `${fileBase}.html`);
573
655
  fs.writeFileSync(htmlPath, wrapped, "utf-8");
574
656
  // Use the .html path instead of .docx for both launch and watch.
575
657
  return this.openExternalHtmlFallback(editId, htmlPath);
@@ -663,7 +745,7 @@ export class MailxService {
663
745
  let debounce = null;
664
746
  let lastSize = -1;
665
747
  const watcher = fs.watch(dir, (eventType, name) => {
666
- if (name !== `${editId}.docx`)
748
+ if (name !== `${fileBase}.docx`)
667
749
  return;
668
750
  if (debounce)
669
751
  clearTimeout(debounce);
@@ -752,27 +834,43 @@ export class MailxService {
752
834
  }
753
835
  let debounce = null;
754
836
  let lastSize = -1;
755
- const fileName = path.basename(filePath);
837
+ const htmlName = path.basename(filePath); // <editId>.html
838
+ const docxName = htmlName.replace(/\.html$/i, ".docx"); // what Word writes on Ctrl+S
839
+ const docxPath = path.join(dir, docxName);
840
+ // CRITICAL: Word, given an .html, converts it to a SIBLING .docx on save
841
+ // (Bob 2026-06-06: "Word turns it into a docx you don't see when I do
842
+ // ^s"). The old watcher only watched the .html, so those edits never came
843
+ // back. Watch BOTH; prefer the .docx (run it through mammoth) since
844
+ // that's the authoritative save, falling back to the .html.
756
845
  const watcher = fs.watch(dir, (_evt, name) => {
757
- if (name !== fileName)
846
+ if (name !== htmlName && name !== docxName)
758
847
  return;
759
848
  if (debounce)
760
849
  clearTimeout(debounce);
761
- debounce = setTimeout(() => {
762
- let stat;
763
- try {
764
- stat = fs.statSync(filePath);
765
- }
766
- catch {
767
- return;
768
- }
769
- if (stat.size === lastSize)
770
- return;
771
- lastSize = stat.size;
850
+ debounce = setTimeout(async () => {
772
851
  try {
773
- const updatedHtml = fs.readFileSync(filePath, "utf-8");
774
- const bodyMatch = updatedHtml.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
775
- const inner = bodyMatch ? bodyMatch[1] : updatedHtml;
852
+ let inner;
853
+ if (fs.existsSync(docxPath)) {
854
+ const st = fs.statSync(docxPath);
855
+ if (st.size === lastSize)
856
+ return;
857
+ lastSize = st.size;
858
+ const mammoth = (await import("mammoth")).default;
859
+ const result = await mammoth.convertToHtml({ buffer: fs.readFileSync(docxPath) });
860
+ inner = result.value || "";
861
+ const bm = inner.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
862
+ if (bm)
863
+ inner = bm[1];
864
+ }
865
+ else {
866
+ const st = fs.statSync(filePath);
867
+ if (st.size === lastSize)
868
+ return;
869
+ lastSize = st.size;
870
+ const updatedHtml = fs.readFileSync(filePath, "utf-8");
871
+ const bm = updatedHtml.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
872
+ inner = bm ? bm[1] : updatedHtml;
873
+ }
776
874
  this.imapManager.emit("wordEditUpdated", { editId, html: inner });
777
875
  }
778
876
  catch (e) {
@@ -2129,8 +2227,13 @@ export class MailxService {
2129
2227
  // ── Delete / Move / Undelete ──
2130
2228
  /** Trash a single message. Local-first: local row moves to Trash (or
2131
2229
  * expunges if already there); the server mirror is queued. */
2132
- async deleteMessage(accountId, uid) {
2133
- const envelope = this.db.getMessageByUid(accountId, uid);
2230
+ async deleteMessage(accountId, uid, folderId) {
2231
+ // folderId disambiguates the row: uid is per-folder, so a bare
2232
+ // (account, uid) lookup can resolve to a DIFFERENT folder's message
2233
+ // (Bob 2026-06-06: pressing Del on an inbox digest trashed a message
2234
+ // that was already in Trash — the daemon found the wrong row). The
2235
+ // client always knows the folder of the selected row; honor it.
2236
+ const envelope = this.db.getMessageByUid(accountId, uid, folderId);
2134
2237
  if (!envelope)
2135
2238
  throw new Error("Message not found");
2136
2239
  this.db.setMessagePendingDelete(accountId, uid, envelope.folderId);
@@ -2145,11 +2248,14 @@ export class MailxService {
2145
2248
  }
2146
2249
  /** Bulk trash. Same shape as deleteMessage but loops; each row gets its
2147
2250
  * own pending-delete flag, local move/expunge, and queue entry. */
2148
- async deleteMessages(accountId, uids) {
2251
+ async deleteMessages(accountId, uids, folderIds) {
2149
2252
  const trash = this.localStore.findSpecialFolder(accountId, "trash");
2150
2253
  this.localStore.bus.withBatch(() => {
2151
- for (const uid of uids) {
2152
- const env = this.db.getMessageByUid(accountId, uid);
2254
+ for (let i = 0; i < uids.length; i++) {
2255
+ const uid = uids[i];
2256
+ // Parallel folderIds[] disambiguates each uid to its folder —
2257
+ // see deleteMessage for why a bare (account, uid) lookup is wrong.
2258
+ const env = this.db.getMessageByUid(accountId, uid, folderIds?.[i]);
2153
2259
  if (!env)
2154
2260
  continue;
2155
2261
  this.db.setMessagePendingDelete(accountId, uid, env.folderId);
@@ -2592,13 +2698,26 @@ export class MailxService {
2592
2698
  * a programmatic `<a download>` click is silently dropped inside msger's
2593
2699
  * WebView2, so the open must happen in the Node process (same pattern as
2594
2700
  * openInWord / openLocalPath). Cross-platform: start / open / xdg-open. */
2595
- async openAttachment(accountId, uid, attachmentId, folderId) {
2701
+ async openAttachment(accountId, uid, attachmentId, folderId, filename) {
2596
2702
  const att = await this.getAttachment(accountId, uid, attachmentId, folderId);
2597
- const dir = path.join(getConfigDir(), "attachments");
2703
+ const dir = getAttachmentStagingDir();
2598
2704
  fs.mkdirSync(dir, { recursive: true });
2599
- // basename() strips any path components so a crafted filename can't
2600
- // escape the temp dir; also drop newlines.
2601
- const safeName = (path.basename(att.filename || "attachment").replace(/[\r\n]/g, "_")) || "attachment";
2705
+ // Prefer the filename the UI is showing it comes from the sync-time
2706
+ // parse stored in the DB. The re-parse inside getAttachment() can lose
2707
+ // a part's name param (notably Google calendar invites: the part
2708
+ // re-parses with an empty filename), and a NAMELESS temp file gets no
2709
+ // extension, so `start` on Windows has no handler to dispatch to and
2710
+ // silently no-ops — the invite.ics that "did nothing" (2026-06-08).
2711
+ // basename() strips any path components so a crafted name can't escape
2712
+ // the temp dir; also drop newlines.
2713
+ let safeName = (path.basename(filename || att.filename || "attachment").replace(/[\r\n]/g, "_")) || "attachment";
2714
+ // Guarantee an extension so the OS has something to associate. Derive
2715
+ // it from the MIME type when the name lacks one.
2716
+ if (!path.extname(safeName)) {
2717
+ const ext = extForMime(att.contentType);
2718
+ if (ext)
2719
+ safeName += ext;
2720
+ }
2602
2721
  const target = path.join(dir, safeName);
2603
2722
  fs.writeFileSync(target, att.content);
2604
2723
  const { spawn } = await import("node:child_process");