@bobfrankston/rmfmail 1.2.116 → 1.2.118

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 (37) hide show
  1. package/TODO.md +1 -1
  2. package/bin/mailx.js +41 -0
  3. package/bin/mailx.js.map +1 -1
  4. package/bin/mailx.ts +34 -0
  5. package/bin/popout-server.js +98 -0
  6. package/bin/popout-server.js.map +1 -1
  7. package/bin/popout-server.ts +97 -0
  8. package/client/app.bundle.js +20 -0
  9. package/client/app.bundle.js.map +2 -2
  10. package/client/app.js +1 -0
  11. package/client/app.js.map +1 -1
  12. package/client/app.ts +1 -0
  13. package/client/compose/compose.bundle.js +100 -8
  14. package/client/compose/compose.bundle.js.map +2 -2
  15. package/client/compose/compose.html +1 -0
  16. package/client/compose/compose.js +115 -13
  17. package/client/compose/compose.js.map +1 -1
  18. package/client/compose/compose.ts +105 -12
  19. package/client/lib/api-client.js +21 -0
  20. package/client/lib/api-client.js.map +1 -1
  21. package/client/lib/api-client.ts +22 -0
  22. package/client/lib/mailxapi.js +31 -4
  23. package/client/lib/popout-bridge.js +55 -0
  24. package/client/lib/popout-bridge.js.map +1 -0
  25. package/client/lib/popout-bridge.ts +48 -0
  26. package/package.json +1 -1
  27. package/packages/mailx-service/index.d.ts +37 -1
  28. package/packages/mailx-service/index.d.ts.map +1 -1
  29. package/packages/mailx-service/index.js +50 -2
  30. package/packages/mailx-service/index.js.map +1 -1
  31. package/packages/mailx-service/index.ts +60 -2
  32. package/packages/mailx-service/jsonrpc.js +7 -1
  33. package/packages/mailx-service/jsonrpc.js.map +1 -1
  34. package/packages/mailx-service/jsonrpc.ts +7 -1
  35. package/packages/mailx-types/mailx-api.d.ts +1 -1
  36. package/packages/mailx-types/mailx-api.d.ts.map +1 -1
  37. package/packages/mailx-types/mailx-api.ts +3 -1
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import { createEditor, type MailxEditor } from "./editor.js";
8
- import { getVersion, getSettings, getAccounts, searchContacts, sendMessage, saveDraft as apiSaveDraft, deleteDraft, logClientEvent, addPreferredContact, addToDenylist, openInWord, closeWordEdit, onEvent, installConsoleCapture } from "../lib/api-client.js";
8
+ import { getVersion, getSettings, getAccounts, searchContacts, sendMessage, saveDraft as apiSaveDraft, deleteDraft, logClientEvent, addPreferredContact, addToDenylist, openInWord, closeWordEdit, onEvent, installConsoleCapture, popoutCompose, consumePopoutComposeInit, closeComposePopout } from "../lib/api-client.js";
9
9
  import { showContextMenu, type MenuItem } from "../components/context-menu.js";
10
10
 
11
11
  // Capture compose-iframe console + window errors to the daemon log. Same
@@ -28,9 +28,19 @@ function _ctick(label: string): void {
28
28
  }
29
29
  _ctick("module body executing");
30
30
 
31
+ // Non-empty when this compose is running in its own popped-out OS window
32
+ // (served by the loopback popout server) rather than the main-window overlay.
33
+ // The id keys the daemon-side init stash AND the window handle for close.
34
+ const popoutInitId = new URLSearchParams(location.search).get("pi") || "";
35
+
31
36
  /** Close compose window */
32
37
  function closeCompose(): void {
33
38
  logClientEvent("compose-close");
39
+ if (popoutInitId) {
40
+ // Popped-out window: the daemon owns the native window handle, so ask
41
+ // it to close us. window.close() below stays as the fallback.
42
+ void closeComposePopout(popoutInitId).catch(() => { /* window X still works */ });
43
+ }
34
44
  // S61: Android WebView's window.close() override is unreliable inside
35
45
  // iframes — compose overlay sometimes stays visible after Send. Primary
36
46
  // path is a parent postMessage; window.close() is a fallback that also
@@ -54,6 +64,12 @@ interface ComposeInit {
54
64
  draftUid?: number;
55
65
  draftFolderId?: number;
56
66
  draftId?: string;
67
+ // Popout handoff extras — the overlay serializes its LIVE state, which
68
+ // includes fields the app.ts reply/forward initializers never set.
69
+ bcc?: { name: string; address: string }[];
70
+ /** Verbatim From input ("Name <addr>") — wins over fromAddress, which
71
+ * reconstructs the display name from the account list. */
72
+ fromRaw?: string;
57
73
  }
58
74
 
59
75
  // ── Load editor scripts dynamically ──
@@ -1054,7 +1070,9 @@ function applyInit(init: ComposeInit): void {
1054
1070
 
1055
1071
  // If the reply has a specific identity address (alias / +tag), set it
1056
1072
  // as the From value directly — overrides the account default.
1057
- if (init.fromAddress) {
1073
+ if (init.fromRaw) {
1074
+ fromInput.value = init.fromRaw;
1075
+ } else if (init.fromAddress) {
1058
1076
  const account = init.accounts.find(a => a.id === init.accountId);
1059
1077
  const displayName = account?.name || "";
1060
1078
  fromInput.value = displayName ? `${displayName} <${init.fromAddress}>` : init.fromAddress;
@@ -1062,6 +1080,7 @@ function applyInit(init: ComposeInit): void {
1062
1080
 
1063
1081
  toInput.value = formatAddrs(init.to);
1064
1082
  ccInput.value = formatAddrs(init.cc);
1083
+ bccInput.value = formatAddrs(init.bcc || []);
1065
1084
  subjectInput.value = init.subject;
1066
1085
  // Resize the textareas to match the freshly-loaded recipient lists —
1067
1086
  // without this the textareas stay 1-row even when the To: contains a
@@ -1070,6 +1089,14 @@ function applyInit(init: ComposeInit): void {
1070
1089
  autoGrowAddrInput(ccInput);
1071
1090
  autoGrowAddrInput(bccInput);
1072
1091
 
1092
+ // Auto-expand Bcc row if the init carried Bcc content (popout handoff)
1093
+ if (bccInput.value.trim()) {
1094
+ const bccRowEl = document.getElementById("compose-bcc-row");
1095
+ const bccBtn = document.getElementById("btn-toggle-bcc");
1096
+ if (bccRowEl) bccRowEl.hidden = false;
1097
+ if (bccBtn) bccBtn.classList.add("active");
1098
+ }
1099
+
1073
1100
  // Auto-expand Cc row if the init already has Cc content (reply-all, draft-with-cc)
1074
1101
  if (ccInput.value.trim()) {
1075
1102
  const ccRowEl = document.getElementById("compose-cc-row");
@@ -1344,6 +1371,7 @@ async function saveDraft(): Promise<void> {
1344
1371
  bodyText: editor.getText(),
1345
1372
  to: toInput.value,
1346
1373
  cc: ccInput.value,
1374
+ bcc: bccInput.value,
1347
1375
  previousDraftUid: draftUid,
1348
1376
  draftId: draftId,
1349
1377
  });
@@ -1453,15 +1481,29 @@ function waitForParentInit(maxMs: number): Promise<void> {
1453
1481
 
1454
1482
  (async () => {
1455
1483
  _ctick("init IIFE start");
1456
- // Try parent-stash FIRST it's synchronous and most reliable. Only
1457
- // wait/poll if it's empty.
1458
- let parentInit = pullInitFromParent();
1459
- if (!parentInit && !sessionStorage.getItem("composeInit") && !_postedInit) {
1460
- _ctick("waiting for parent init");
1461
- await waitForParentInit(1500);
1462
- _ctick(`parent init received (msgEvents=${_msgEventCount})`);
1463
- // Re-poll the parent stash — it may have been populated during the wait.
1464
- if (!_postedInit) parentInit = pullInitFromParent();
1484
+ let parentInit: ComposeInit | null = null;
1485
+ if (popoutInitId) {
1486
+ // Popped-out OS window — there is no parent frame; the overlay
1487
+ // stashed its live state with the daemon and put the stash id in
1488
+ // our URL. One-shot fetch over the popout server's RPC bridge.
1489
+ try {
1490
+ parentInit = ((await consumePopoutComposeInit(popoutInitId)) as any)?.init || null;
1491
+ } catch (e: any) {
1492
+ console.error("Failed to fetch popout compose init:", e);
1493
+ }
1494
+ _ctick(`popout init ${parentInit ? "received" : "MISSING"}`);
1495
+ try { document.title = parentInit?.subject ? `Compose: ${parentInit.subject}` : "Compose"; } catch { /* */ }
1496
+ } else {
1497
+ // Try parent-stash FIRST — it's synchronous and most reliable. Only
1498
+ // wait/poll if it's empty.
1499
+ parentInit = pullInitFromParent();
1500
+ if (!parentInit && !sessionStorage.getItem("composeInit") && !_postedInit) {
1501
+ _ctick("waiting for parent init");
1502
+ await waitForParentInit(1500);
1503
+ _ctick(`parent init received (msgEvents=${_msgEventCount})`);
1504
+ // Re-poll the parent stash — it may have been populated during the wait.
1505
+ if (!_postedInit) parentInit = pullInitFromParent();
1506
+ }
1465
1507
  }
1466
1508
  // Priority: parent-stash > postMessage > sessionStorage.
1467
1509
  const stored = sessionStorage.getItem("composeInit");
@@ -1471,7 +1513,7 @@ function waitForParentInit(maxMs: number): Promise<void> {
1471
1513
  if (initRaw) {
1472
1514
  sessionStorage.removeItem("composeInit");
1473
1515
  const init = initRaw;
1474
- const src = parentInit ? "parent-stash" : (_postedInit ? "postMessage" : "sessionStorage");
1516
+ const src = parentInit ? (popoutInitId ? "popout" : "parent-stash") : (_postedInit ? "postMessage" : "sessionStorage");
1475
1517
  _ctick(`init parsed (mode=${init.mode}, bodyHtml=${init.bodyHtml?.length || 0} bytes, src=${src})`);
1476
1518
  if (init.accounts && init.accounts.length > 0) {
1477
1519
  // Happy path — init is complete. Apply immediately. Kick
@@ -1832,6 +1874,57 @@ document.getElementById("btn-discard")?.addEventListener("click", async () => {
1832
1874
  closeCompose();
1833
1875
  });
1834
1876
 
1877
+ // ── Popout: continue this compose in its own OS window ──
1878
+ // Serializes the LIVE compose state (fields, body, attachments, draft
1879
+ // identity) and hands it to the daemon, which spawns a native msger window
1880
+ // running this same page against the popout server. Draft continuity comes
1881
+ // from passing draftUid/draftId — the popout keeps replacing the same draft.
1882
+ const composePopoutBtn = document.getElementById("btn-compose-popout") as HTMLButtonElement | null;
1883
+ // Already popped out → no button. style.display, not the hidden attr — the
1884
+ // .tb-btn display rule outranks the UA's [hidden] { display: none }.
1885
+ if (composePopoutBtn && popoutInitId) composePopoutBtn.style.display = "none";
1886
+ composePopoutBtn?.addEventListener("click", async () => {
1887
+ // Pin the draft identity BEFORE serializing: if the overlay's unload
1888
+ // flush still fires a save after the hand-off, it dedups against the
1889
+ // same X-Mailx-Draft-ID the popout continues with — no duplicate draft.
1890
+ if (!draftId) draftId = `mailx-draft-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
1891
+ const init: ComposeInit = {
1892
+ // "draft" mode so applyInit does NOT re-append the signature — the
1893
+ // body already carries whatever the user has (sig included).
1894
+ mode: "draft",
1895
+ accountId: getFromAccountId(),
1896
+ to: parseAddrs(toInput.value),
1897
+ cc: parseAddrs(ccInput.value),
1898
+ bcc: parseAddrs(bccInput.value),
1899
+ subject: subjectInput.value,
1900
+ bodyHtml: editor.getHtml(),
1901
+ inReplyTo: replyInReplyTo,
1902
+ references: replyReferences,
1903
+ accounts: knownAccounts,
1904
+ fromRaw: getFromAddress(),
1905
+ attachments: attachments.map(a => ({ filename: a.filename, mimeType: a.mimeType, dataBase64: a.dataBase64 })),
1906
+ draftUid: draftUid ?? undefined,
1907
+ draftId: draftId ?? undefined,
1908
+ };
1909
+ composePopoutBtn.disabled = true;
1910
+ try {
1911
+ const r = await popoutCompose(init);
1912
+ if (r?.ok) {
1913
+ // Hand-off complete — close the overlay silently (no discard
1914
+ // prompt, no draft delete; the popout owns the draft now).
1915
+ if (draftDebounceTimer) { clearTimeout(draftDebounceTimer); draftDebounceTimer = null; }
1916
+ if (draftTimer) { clearInterval(draftTimer); draftTimer = null; }
1917
+ closeCompose();
1918
+ } else {
1919
+ showDraftStatus(`Popout failed: ${r?.reason || "unknown"}`, true);
1920
+ composePopoutBtn.disabled = false;
1921
+ }
1922
+ } catch (e: any) {
1923
+ showDraftStatus(`Popout failed: ${e?.message || e}`, true);
1924
+ composePopoutBtn.disabled = false;
1925
+ }
1926
+ });
1927
+
1835
1928
  // ── Cc / Bcc toggle ──
1836
1929
  const ccRow = document.getElementById("compose-cc-row") as HTMLElement;
1837
1930
  const bccRow = document.getElementById("compose-bcc-row") as HTMLElement;
@@ -619,6 +619,27 @@ export async function popoutWindow(accountId, uid, folderId, subject) {
619
619
  return { ok: false, reason: "no popoutWindow bridge" };
620
620
  return fn(accountId, uid, folderId, subject);
621
621
  }
622
+ /** Take a live compose into its own native OS window. init is the full
623
+ * compose state; the daemon stashes it and spawns a popout-server-backed
624
+ * msger window that consumes it on boot. */
625
+ export async function popoutCompose(init) {
626
+ const fn = ipc().popoutCompose;
627
+ if (!fn)
628
+ return { ok: false, reason: "no popoutCompose bridge" };
629
+ return fn(init);
630
+ }
631
+ /** Popout compose page boot: one-shot fetch of the init stashed by popoutCompose. */
632
+ export async function consumePopoutComposeInit(id) {
633
+ const fn = ipc().consumePopoutComposeInit;
634
+ if (!fn)
635
+ return { init: null };
636
+ return fn(id);
637
+ }
638
+ /** Ask the daemon to close this compose-popout window (after send/discard). */
639
+ export function closeComposePopout(id) {
640
+ const fn = ipc().closeComposePopout;
641
+ return fn ? fn(id) : Promise.resolve({ ok: false });
642
+ }
622
643
  export async function getDeviceAccounts() {
623
644
  return ipc().getDeviceAccounts?.() ?? [];
624
645
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["api-client.ts"],"names":[],"mappings":"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"}
@@ -682,6 +682,28 @@ export async function popoutWindow(accountId: string, uid: number, folderId?: nu
682
682
  return fn(accountId, uid, folderId, subject);
683
683
  }
684
684
 
685
+ /** Take a live compose into its own native OS window. init is the full
686
+ * compose state; the daemon stashes it and spawns a popout-server-backed
687
+ * msger window that consumes it on boot. */
688
+ export async function popoutCompose(init: any): Promise<{ ok: boolean; reason?: string }> {
689
+ const fn = (ipc() as any).popoutCompose;
690
+ if (!fn) return { ok: false, reason: "no popoutCompose bridge" };
691
+ return fn(init);
692
+ }
693
+
694
+ /** Popout compose page boot: one-shot fetch of the init stashed by popoutCompose. */
695
+ export async function consumePopoutComposeInit(id: string): Promise<{ init: any | null }> {
696
+ const fn = (ipc() as any).consumePopoutComposeInit;
697
+ if (!fn) return { init: null };
698
+ return fn(id);
699
+ }
700
+
701
+ /** Ask the daemon to close this compose-popout window (after send/discard). */
702
+ export function closeComposePopout(id: string): Promise<{ ok: boolean }> {
703
+ const fn = (ipc() as any).closeComposePopout;
704
+ return fn ? fn(id) : Promise.resolve({ ok: false });
705
+ }
706
+
685
707
  export async function getDeviceAccounts(): Promise<{ email: string; name: string }[]> {
686
708
  return ipc().getDeviceAccounts?.() ?? [];
687
709
  }
@@ -32,14 +32,25 @@
32
32
  // log via logClientEvent — `[client] ipc-send <action> cbid=N tEpoch=...`.
33
33
  // High-res `performance.now()` is local to the WebView; we also include
34
34
  // wall-clock so daemon-side timestamps align.
35
+ // The service channel. Normally the host-injected window.ipc (msger Rust
36
+ // WebView2 / MAUI). Popout windows can't use it — msger injects window.ipc
37
+ // as a NON-WRITABLE, NON-CONFIGURABLE property wired to the messagebox
38
+ // channel, where service RPC dies silently. There the popout bridge
39
+ // (popout-bridge.ts) sets window.__rmfIpcOverride, an HTTP-backed
40
+ // postMessage that carries the same payloads to the popout server's /rpc.
41
+ function _chan() {
42
+ return window.__rmfIpcOverride || window.ipc;
43
+ }
44
+
35
45
  function _traceIpcSend(action, id) {
36
46
  try {
37
47
  var hr = (typeof performance !== "undefined" && performance.now) ? performance.now().toFixed(1) : "n/a";
38
48
  var line = "ipc-send " + action + " cbid=" + id + " hr=" + hr + " wall=" + Date.now();
39
49
  // Send via direct postMessage to avoid recursion — logClientEvent
40
50
  // would re-enter callNode and create a circular trace.
41
- if (window.ipc && window.ipc.postMessage) {
42
- window.ipc.postMessage(JSON.stringify({
51
+ var chan = _chan();
52
+ if (chan && chan.postMessage) {
53
+ chan.postMessage(JSON.stringify({
43
54
  _action: "logClientEvent", _cbid: "trace-" + id, tag: line,
44
55
  }));
45
56
  }
@@ -96,12 +107,13 @@
96
107
  var msgStr = JSON.stringify(Object.assign({ _action: action, _cbid: id }, params || {}));
97
108
  return new Promise(function(resolve, reject) {
98
109
  function send() {
99
- if (window.ipc && window.ipc.postMessage) {
110
+ var chan = _chan();
111
+ if (chan && chan.postMessage) {
100
112
  // Trace BEFORE the call so a slow daemon-receive shows up as
101
113
  // ipc-send + N s before the daemon logs `[ipc] ←`. Skip the
102
114
  // trace event itself to avoid recursion.
103
115
  if (action !== "logClientEvent") _traceIpcSend(action, id);
104
- window.ipc.postMessage(msgStr);
116
+ chan.postMessage(msgStr);
105
117
  return true;
106
118
  }
107
119
  return false;
@@ -390,6 +402,20 @@
390
402
  return callNode("popoutWindow", { accountId: accountId, uid: uid, folderId: folderId, subject: subject });
391
403
  },
392
404
 
405
+ // Take a live compose into its own NATIVE msger window. init is the
406
+ // full compose state (fields, body, attachments, draft identity).
407
+ popoutCompose: function(init) {
408
+ return callNode("popoutCompose", { init: init });
409
+ },
410
+ // Popout compose page boot: one-shot fetch of the stashed init.
411
+ consumePopoutComposeInit: function(id) {
412
+ return callNode("consumePopoutComposeInit", { id: id });
413
+ },
414
+ // Popout compose page after send/discard: close my window.
415
+ closeComposePopout: function(id) {
416
+ return callNode("closeComposePopout", { id: id });
417
+ },
418
+
393
419
  // Reminder sound (custom file bytes or mute flag; {} = built-in chime)
394
420
  getReminderSound: function() { return callNode("getReminderSound"); },
395
421
 
@@ -406,6 +432,7 @@
406
432
  reauthenticate: function(accountId) { return callNode("reauthenticate", { accountId: accountId }); },
407
433
  reauthGoogleScopes: function() { return callNode("reauthGoogleScopes"); },
408
434
  hasCcHistoryTo: function(email) { return callNode("hasCcHistoryTo", { email: email }); },
435
+ hasBccHistoryTo: function(email) { return callNode("hasBccHistoryTo", { email: email }); },
409
436
 
410
437
  // Bulk operations
411
438
  deleteMessages: function(accountId, uids, folderIds) {
@@ -0,0 +1,55 @@
1
+ /**
2
+ * popout-bridge — HTTP transport for mailxapi in popout windows served by the
3
+ * loopback popout server (bin/popout-server.ts).
4
+ *
5
+ * The real hosts (msger Rust, MAUI) provide `window.ipc.postMessage` and call
6
+ * `_msgapiServiceResolve/_msgapiServiceReject` with the daemon's response.
7
+ * In a msger url-mode window that channel exists but is wired to the
8
+ * MESSAGEBOX protocol — service RPC posted there dies silently — and
9
+ * window.ipc is injected non-writable/non-configurable, so it cannot be
10
+ * replaced or wrapped. mailxapi.js therefore checks `window.__rmfIpcOverride`
11
+ * before window.ipc; this script provides it: every posted
12
+ * `{ _action, _cbid, ...params }` payload goes to POST /rpc and the
13
+ * `{ _cbid, result | error }` reply resolves the matching callback. The page
14
+ * runs the REAL mailxapi.js unmodified — one API surface, zero duplication.
15
+ *
16
+ * Injected by serveStatic() into every popout-served HTML page, after a
17
+ * config script that sets `window.__rmfPopoutRpc = { url }` and before
18
+ * mailxapi.js. No imports/exports on purpose — this must compile to a plain
19
+ * classic script (mailxapi.js loads the same way).
20
+ */
21
+ (function () {
22
+ const w = window;
23
+ const cfg = w.__rmfPopoutRpc;
24
+ if (!cfg || !cfg.url || w.__rmfIpcOverride)
25
+ return;
26
+ w.__rmfIpcOverride = {
27
+ postMessage: function (msgStr) {
28
+ let cbid = "";
29
+ try {
30
+ cbid = JSON.parse(msgStr)._cbid || "";
31
+ }
32
+ catch { /* resolve path just no-ops */ }
33
+ fetch(cfg.url, {
34
+ method: "POST",
35
+ headers: { "content-type": "application/json" },
36
+ body: msgStr,
37
+ // Let a final draft flush survive window close. keepalive
38
+ // caps the body at ~64KB, so only ask for it when we fit —
39
+ // an attachment-laden saveDraft would otherwise be REJECTED
40
+ // outright instead of merely not surviving unload.
41
+ keepalive: msgStr.length < 60_000,
42
+ })
43
+ .then((r) => r.json())
44
+ .then((res) => {
45
+ if (res && res.error != null)
46
+ w._msgapiServiceReject?.(cbid, res.error);
47
+ else
48
+ w._msgapiServiceResolve?.(cbid, res ? res.result : undefined);
49
+ })
50
+ .catch((e) => w._msgapiServiceReject?.(cbid, String((e && e.message) || e)));
51
+ },
52
+ };
53
+ })();
54
+ export {};
55
+ //# sourceMappingURL=popout-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popout-bridge.js","sourceRoot":"","sources":["popout-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,CAAC;IACG,MAAM,CAAC,GAAG,MAAa,CAAC;IACxB,MAAM,GAAG,GAAG,CAAC,CAAC,cAAc,CAAC;IAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,gBAAgB;QAAE,OAAO;IACnD,CAAC,CAAC,gBAAgB,GAAG;QACjB,WAAW,EAAE,UAAU,MAAc;YACjC,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,CAAC;gBAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;YACvF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBACX,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,MAAM;gBACZ,0DAA0D;gBAC1D,2DAA2D;gBAC3D,4DAA4D;gBAC5D,mDAAmD;gBACnD,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM;aACpC,CAAC;iBACG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACrB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACV,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI;oBAAE,CAAC,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;;oBACnE,CAAC,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACvE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;KACJ,CAAC;AACN,CAAC,CAAC,EAAE,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * popout-bridge — HTTP transport for mailxapi in popout windows served by the
3
+ * loopback popout server (bin/popout-server.ts).
4
+ *
5
+ * The real hosts (msger Rust, MAUI) provide `window.ipc.postMessage` and call
6
+ * `_msgapiServiceResolve/_msgapiServiceReject` with the daemon's response.
7
+ * In a msger url-mode window that channel exists but is wired to the
8
+ * MESSAGEBOX protocol — service RPC posted there dies silently — and
9
+ * window.ipc is injected non-writable/non-configurable, so it cannot be
10
+ * replaced or wrapped. mailxapi.js therefore checks `window.__rmfIpcOverride`
11
+ * before window.ipc; this script provides it: every posted
12
+ * `{ _action, _cbid, ...params }` payload goes to POST /rpc and the
13
+ * `{ _cbid, result | error }` reply resolves the matching callback. The page
14
+ * runs the REAL mailxapi.js unmodified — one API surface, zero duplication.
15
+ *
16
+ * Injected by serveStatic() into every popout-served HTML page, after a
17
+ * config script that sets `window.__rmfPopoutRpc = { url }` and before
18
+ * mailxapi.js. No imports/exports on purpose — this must compile to a plain
19
+ * classic script (mailxapi.js loads the same way).
20
+ */
21
+
22
+ (function (): void {
23
+ const w = window as any;
24
+ const cfg = w.__rmfPopoutRpc;
25
+ if (!cfg || !cfg.url || w.__rmfIpcOverride) return;
26
+ w.__rmfIpcOverride = {
27
+ postMessage: function (msgStr: string): void {
28
+ let cbid = "";
29
+ try { cbid = JSON.parse(msgStr)._cbid || ""; } catch { /* resolve path just no-ops */ }
30
+ fetch(cfg.url, {
31
+ method: "POST",
32
+ headers: { "content-type": "application/json" },
33
+ body: msgStr,
34
+ // Let a final draft flush survive window close. keepalive
35
+ // caps the body at ~64KB, so only ask for it when we fit —
36
+ // an attachment-laden saveDraft would otherwise be REJECTED
37
+ // outright instead of merely not surviving unload.
38
+ keepalive: msgStr.length < 60_000,
39
+ })
40
+ .then((r) => r.json())
41
+ .then((res) => {
42
+ if (res && res.error != null) w._msgapiServiceReject?.(cbid, res.error);
43
+ else w._msgapiServiceResolve?.(cbid, res ? res.result : undefined);
44
+ })
45
+ .catch((e) => w._msgapiServiceReject?.(cbid, String((e && e.message) || e)));
46
+ },
47
+ };
48
+ })();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/rmfmail",
3
- "version": "1.2.116",
3
+ "version": "1.2.118",
4
4
  "description": "Local-first email client with IMAP sync and standalone native app",
5
5
  "type": "module",
6
6
  "main": "bin/mailx.js",
@@ -44,6 +44,21 @@ export type PopoutWindowFn = (opts: {
44
44
  ok: boolean;
45
45
  reason?: string;
46
46
  }>;
47
+ /** Injected compose-popout functions — bin/mailx.ts wraps mailx-host's
48
+ * showMessageBoxEx pointed at the popout server's static compose page, so
49
+ * "take this compose into its own OS window" spawns a native msger window.
50
+ * `open` receives the stash id the page will consume; `close` tears the
51
+ * window down after send/discard. Injection keeps mailx-service host-agnostic. */
52
+ export type ComposePopoutFns = {
53
+ open: (opts: {
54
+ id: string;
55
+ subject?: string;
56
+ }) => Promise<{
57
+ ok: boolean;
58
+ reason?: string;
59
+ }>;
60
+ close: (id: string) => void;
61
+ };
47
62
  export declare class MailxService implements MailxApi {
48
63
  /** The Store is the nexus — owns DB + .eml files + bus + operations.
49
64
  * MailxService is the IPC adapter on top: it routes UI requests to
@@ -73,6 +88,27 @@ export declare class MailxService implements MailxApi {
73
88
  ok: boolean;
74
89
  reason?: string;
75
90
  }>;
91
+ private composePopoutFns;
92
+ /** Compose-popout init stash, keyed by the id embedded in the popout
93
+ * window's URL. One-shot: consumePopoutComposeInit deletes on read. */
94
+ private composePopoutInits;
95
+ setComposePopoutFns(fns: ComposePopoutFns): void;
96
+ /** Take a live compose into its own native OS window. The overlay hands
97
+ * us its full state (fields, body, attachments, draft identity); we
98
+ * stash it under a one-shot id and spawn the window pointed at the
99
+ * popout server's compose page with that id in the URL. */
100
+ popoutCompose(init: any): Promise<{
101
+ ok: boolean;
102
+ reason?: string;
103
+ }>;
104
+ /** One-shot read of a stashed compose-popout init (popout page boot). */
105
+ consumePopoutComposeInit(id: string): {
106
+ init: any | null;
107
+ };
108
+ /** Close a compose-popout window (after send / discard in the popout). */
109
+ closeComposePopout(id: string): {
110
+ ok: boolean;
111
+ };
76
112
  /** Local-first read/write facade. Every UI IPC handler that touches the
77
113
  * local DB or body store goes through this — no awaiting IMAP, no
78
114
  * awaiting Gmail API, no awaiting SMTP. See docs/local-first-plan.md. */
@@ -594,7 +630,7 @@ export declare class MailxService implements MailxApi {
594
630
  ok: boolean;
595
631
  reason?: string;
596
632
  }>;
597
- saveDraft(accountId: string, subject: string, bodyHtml: string, bodyText: string, to?: string, cc?: string, previousDraftUid?: number, draftId?: string): Promise<{
633
+ saveDraft(accountId: string, subject: string, bodyHtml: string, bodyText: string, to?: string, cc?: string, previousDraftUid?: number, draftId?: string, bcc?: string): Promise<{
598
634
  draftUid: number | null;
599
635
  draftId: string;
600
636
  }>;