@bobfrankston/rmfmail 1.0.597 → 1.0.599

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/TODO.md CHANGED
@@ -793,6 +793,9 @@ Was part of S1 "local-first reconciliation refactor" until 2026-04-23 when S1's
793
793
  | **Prefetch data-loss fix — guard against "0 of N returned"** — `mailx-imap.prefetchBodies` was pruning the entire requested batch when `fetchBodiesBatch` returned successfully but with no bodies (FETCH parser miss, wrong-folder, transient that didn't throw). User-reported on 2026-05-08: `[prefetch] bobma: 0 bodies cached, 66 stale rows pruned (done)` — 66 messages silently deleted from local DB. Earlier fix only covered "thrown batch ⇒ don't prune" (the 296-message loss); this one closes the parallel "successful but empty batch" hole on both IMAP and Gmail-API paths. Now: prune only when at least one body returned. Zero-return logs `batch returned 0/N bodies — NOT pruning (set-diff reconcile owns deletion)` and defers to syncFolder's grace-window reconcile. Per Bob's 2026-05-07 set-diff insight: deletion is exclusively the set-diff path's responsibility. | v1.0.585 |
794
794
  | **mailx → rmfmail (CLI strings + log filename + post-register hint)** — daily log file is now `rmfmail-YYYY-MM-DD.log`; the 30-day retention scanner also matches the legacy `mailx-` prefix so old files age out cleanly. `mailx-store/db.ts` schema-mismatch error: "Run 'rmfmail -rebuild'". `mailx-server/index.ts` startup banner: "rmfmail server starting…" / "rmfmail server running on …". `--register-mailto` post-output rewritten to point at the right Win11 Settings path, name the Store-app warning, and explain the hash-protected `UrlAssociations\mailto\UserChoice` so the user understands why a registry write alone can't flip the active default. `openLocalPath("log")` opens `rmfmail-…` first, falls back to legacy filename if the daemon hasn't restarted since the upgrade. | v1.0.584 |
795
795
  | **Trailing-comma email validation** — `mailx-service.send()` `validateAndPrune` (was `validateList`) silently drops empty / whitespace-only address fragments instead of throwing "empty address". Pruned list replaces `msg.to/cc/bcc` so the artifact also doesn't reach SMTP envelope assembly. Bare-name fragments (no `@`) still throw — that's a different bug. | v1.0.584 |
796
+ | **Send-hang root cause: synchronous group expansion (compose.ts)** — Send appeared to hang for 61 s on Bob 2026-05-09 00:16:57 because `await expandGroups(...)` inside the click handler awaited `loadGroupsMap()` which awaited `readJsoncFile("contacts.jsonc")` which fired a GDrive HTTP read. Slow network → 61 s hang → user clicked Send again at 00:23 → two real outgoing messages with different Message-IDs. expandGroups is now SYNCHRONOUS from in-memory cache + localStorage; cloud refresh runs in background at module load. Send NEVER awaits cloud I/O for group expansion. | v1.0.597 |
797
+ | **Message-ID dedup in INBOX views (db.ts)** — Thunderbird/Outlook collapse same-Message-ID rows in the inbox view; mailx was showing every copy. When a sender includes multiple of the user's own addresses on the recipient line, the local mail server delivers ONE message as N rows in the local DB — same Message-ID, different UIDs. SQL ROW_NUMBER OVER PARTITION BY message_id keeps the newest per Message-ID. Applied to both `getUnifiedInbox` and `getMessages`. Empty Message-IDs (rare; non-RFC senders) get unique buckets so each is its own row. | v1.0.597 |
798
+ | **Instant folder-switch via in-memory list cache (message-list.ts)** — clicking "All Inboxes" or any folder paints from the JS Map cache (~1 ms) BEFORE the IPC round-trip even fires; the IPC runs in background and only re-renders if the new data diverges from the cached snapshot. Listed-equality check (UIDs + flags) avoids DOM churn / scroll-jump on the common no-change refresh. The user-visible "click → empty pane → 50-200 ms wait → list paints" pattern collapses to "click → list visible immediately". First visit to a folder still needs the IPC round-trip; second-and-later are instant. | v1.0.597 |
796
799
  | **Stale-response guard in message-list** — `loadMessages`, `loadUnifiedInbox`, `loadSearchResults` each capture a generation counter at the top and check before rendering. Rapid folder switches no longer let the previous folder's response clobber the new folder's render after the user has moved on. Dead `abortMessageListRequests` was incomplete cancellation; gen-counter is the working pattern. | v1.0.596 |
797
800
  | **Send is atomic / fire-and-forget close** — `compose.ts` Send button used to await the IPC round-trip before closing. With a server-side stall the user could keep typing for several hundred ms, then their last edits vanished mid-keystroke when IPC eventually returned and triggered close. Snapshot body, validate locally (regex + non-empty To), close compose IMMEDIATELY, fire-and-forget the IPC. Failures bubble to the parent as `mailx-send-error` postMessage; the local outbox write inside `service.send` is synchronous-on-disk so the message is durable before the IPC even resolves. | v1.0.595 |
798
801
  | **Outbox Cancel always available + claim age** — `outbox-view.ts` "Cancel" button was disabled whenever `claimed: true`, so a stuck `.sending-host-pid` claim left the message uncancelable. Now Cancel is always enabled; claim age is shown in the badge ("sending… (5s)" → "stuck (3m)" after 60 s). Confirm prompt warns that an in-flight cancel may cross the SMTP-send window — Message-ID dedup catches the duplicate, so it's still safe. Stale-claim recovery threshold cut from 1 h → 5 min so abandoned `.sending-` files reclaim themselves automatically before the user sees them as "stuck forever". Render-back failure now logs loudly instead of swallowing. | v1.0.595 |
@@ -43,6 +43,30 @@ let currentSortDir = "desc";
43
43
  * preview shows folder Y" because folder X's getMessages eventually
44
44
  * resolved AFTER folder Y's render and clobbered it. */
45
45
  let loadGen = 0;
46
+ const listCache = new Map();
47
+ const CACHE_KEY_UNIFIED = "unified";
48
+ function cacheKey(mode, a, f, flagged, q) {
49
+ if (mode === "folder")
50
+ return `folder:${a}:${f}:${flagged ? "flag" : ""}`;
51
+ return `search:${q}`;
52
+ }
53
+ /** Quick equality check — same UID set, same flag pattern, same total.
54
+ * Skip re-render when this returns true to avoid DOM churn / scroll-
55
+ * jump on a refresh that didn't change anything. */
56
+ function listResultsEqual(a, b) {
57
+ if (!a || a.length !== b.length)
58
+ return false;
59
+ for (let i = 0; i < a.length; i++) {
60
+ if (a[i].uid !== b[i].uid)
61
+ return false;
62
+ if (a[i].accountId !== b[i].accountId)
63
+ return false;
64
+ // Flags-changed → must re-render (read/unread, flagged).
65
+ if ((a[i].flags || []).join(",") !== (b[i].flags || []).join(","))
66
+ return false;
67
+ }
68
+ return true;
69
+ }
46
70
  /** Single source of truth for "which row is focused" in the list.
47
71
  *
48
72
  * Each rendered row is a `MessageRow` instance owning its DOM element,
@@ -502,7 +526,24 @@ export async function loadUnifiedInbox(autoSelect = true) {
502
526
  fromHeader.textContent = "From";
503
527
  const savedScroll = !autoSelect ? body.scrollTop : 0;
504
528
  const savedUid = !autoSelect ? body.querySelector(".ml-row.selected")?.getAttribute("data-uid") : null;
505
- if (autoSelect) {
529
+ // Instant first paint from cache. The IPC fires in background below
530
+ // and only triggers a re-render if the result diverges from the
531
+ // cached snapshot. The cache lives for the session; no TTL — the
532
+ // re-render covers staleness. C126 part 1 (the part that doesn't
533
+ // need cross-restart persistence; cold-start pre-render is part 2).
534
+ const cached = listCache.get(CACHE_KEY_UNIFIED);
535
+ if (cached) {
536
+ totalMessages = cached.total;
537
+ state.setMessages(cached.items);
538
+ renderMessages(body, "", cached.items);
539
+ if (autoSelect)
540
+ selectFirst(body);
541
+ else {
542
+ body.scrollTop = savedScroll;
543
+ restoreSelection(body, savedUid);
544
+ }
545
+ }
546
+ else if (autoSelect) {
506
547
  body.innerHTML = `<div class="ml-empty">Loading...</div>`;
507
548
  }
508
549
  try {
@@ -510,6 +551,12 @@ export async function loadUnifiedInbox(autoSelect = true) {
510
551
  if (myGen !== loadGen)
511
552
  return; // user moved on; drop stale response
512
553
  totalMessages = result.total;
554
+ listCache.set(CACHE_KEY_UNIFIED, { items: result.items, total: result.total, timestamp: Date.now() });
555
+ // Skip the re-render entirely if the IPC result matches what
556
+ // the cache already painted. Avoids DOM churn / scroll-jump
557
+ // on the common no-change refresh.
558
+ if (cached && listResultsEqual(cached.items, result.items))
559
+ return;
513
560
  if (result.items.length === 0) {
514
561
  state.setMessages([]);
515
562
  body.innerHTML = `<div class="ml-empty">${result.total > 0 ? `${result.total} messages syncing...` : "Syncing — messages will appear shortly"}</div>`;
@@ -640,11 +687,26 @@ export async function loadMessages(accountId, folderId, page = 1, specialUse = "
640
687
  fromHeader.textContent = showToInsteadOfFrom ? "To" : "From";
641
688
  const savedScroll = !autoSelect ? body.scrollTop : 0;
642
689
  const savedUid = !autoSelect ? body.querySelector(".ml-row.selected")?.getAttribute("data-uid") : null;
643
- if (autoSelect) {
690
+ const flaggedOnly = document.getElementById("ml-body")?.classList.contains("flagged-only") || false;
691
+ const cKey = cacheKey("folder", accountId, folderId, flaggedOnly);
692
+ const cached = listCache.get(cKey);
693
+ if (cached) {
694
+ totalMessages = cached.total;
695
+ state.setMessages(cached.items);
696
+ renderMessages(body, accountId, cached.items);
697
+ if (autoSelect)
698
+ selectFirst(body);
699
+ else {
700
+ requestAnimationFrame(() => {
701
+ body.scrollTop = savedScroll;
702
+ restoreSelection(body, savedUid);
703
+ });
704
+ }
705
+ }
706
+ else if (autoSelect) {
644
707
  body.innerHTML = `<div class="ml-empty">Loading...</div>`;
645
708
  }
646
709
  try {
647
- const flaggedOnly = document.getElementById("ml-body")?.classList.contains("flagged-only") || false;
648
710
  const result = await apiGetMessages(accountId, folderId, 1, 50, flaggedOnly, currentSort, currentSortDir);
649
711
  // Stale-response guard: a newer load* fired while we were
650
712
  // awaiting; the new view already painted. Drop this result
@@ -652,7 +714,11 @@ export async function loadMessages(accountId, folderId, page = 1, specialUse = "
652
714
  if (myGen !== loadGen)
653
715
  return;
654
716
  totalMessages = result.total;
717
+ listCache.set(cKey, { items: result.items, total: result.total, timestamp: Date.now() });
655
718
  updateSortIndicators();
719
+ // Skip re-render if data unchanged from the painted cache.
720
+ if (cached && listResultsEqual(cached.items, result.items))
721
+ return;
656
722
  if (result.items.length === 0) {
657
723
  state.setMessages([]);
658
724
  body.innerHTML = `<div class="ml-empty">${flaggedOnly ? "No flagged messages" : "No messages"}</div>`;
@@ -1 +1 @@
1
- {"version":3,"file":"message-list.js","sourceRoot":"","sources":["message-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-list.js","sourceRoot":"","sources":["message-list.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,40 @@ let currentSortDir: "asc" | "desc" = "desc";
50
50
  * resolved AFTER folder Y's render and clobbered it. */
51
51
  let loadGen = 0;
52
52
 
53
+ /** In-memory message cache for instant folder switches. Keyed by view —
54
+ * `unified`, `account:folder:flagged?`, `search:query`. The first click
55
+ * on a folder paints from this cache (~1 ms) BEFORE the IPC round-trip
56
+ * even fires; the IPC runs in background and only re-renders if the
57
+ * result diverges from the cached version. Bob 2026-05-09: clicking
58
+ * "All Inboxes" felt slow even though IPC returned in 18 ms because
59
+ * the round-trip + DOM build was the user-visible pause. With the
60
+ * cache, second-and-later clicks are instant. */
61
+ interface CachedListResult {
62
+ items: any[];
63
+ total: number;
64
+ timestamp: number;
65
+ }
66
+ const listCache = new Map<string, CachedListResult>();
67
+ const CACHE_KEY_UNIFIED = "unified";
68
+ function cacheKey(mode: "folder" | "search", a?: string, f?: number, flagged?: boolean, q?: string): string {
69
+ if (mode === "folder") return `folder:${a}:${f}:${flagged ? "flag" : ""}`;
70
+ return `search:${q}`;
71
+ }
72
+
73
+ /** Quick equality check — same UID set, same flag pattern, same total.
74
+ * Skip re-render when this returns true to avoid DOM churn / scroll-
75
+ * jump on a refresh that didn't change anything. */
76
+ function listResultsEqual(a: any[] | undefined, b: any[]): boolean {
77
+ if (!a || a.length !== b.length) return false;
78
+ for (let i = 0; i < a.length; i++) {
79
+ if (a[i].uid !== b[i].uid) return false;
80
+ if (a[i].accountId !== b[i].accountId) return false;
81
+ // Flags-changed → must re-render (read/unread, flagged).
82
+ if ((a[i].flags || []).join(",") !== (b[i].flags || []).join(",")) return false;
83
+ }
84
+ return true;
85
+ }
86
+
53
87
  /** Single source of truth for "which row is focused" in the list.
54
88
  *
55
89
  * Each rendered row is a `MessageRow` instance owning its DOM element,
@@ -509,7 +543,19 @@ export async function loadUnifiedInbox(autoSelect = true): Promise<void> {
509
543
  const savedScroll = !autoSelect ? body.scrollTop : 0;
510
544
  const savedUid = !autoSelect ? body.querySelector(".ml-row.selected")?.getAttribute("data-uid") : null;
511
545
 
512
- if (autoSelect) {
546
+ // Instant first paint from cache. The IPC fires in background below
547
+ // and only triggers a re-render if the result diverges from the
548
+ // cached snapshot. The cache lives for the session; no TTL — the
549
+ // re-render covers staleness. C126 part 1 (the part that doesn't
550
+ // need cross-restart persistence; cold-start pre-render is part 2).
551
+ const cached = listCache.get(CACHE_KEY_UNIFIED);
552
+ if (cached) {
553
+ totalMessages = cached.total;
554
+ state.setMessages(cached.items);
555
+ renderMessages(body, "", cached.items);
556
+ if (autoSelect) selectFirst(body);
557
+ else { body.scrollTop = savedScroll; restoreSelection(body, savedUid); }
558
+ } else if (autoSelect) {
513
559
  body.innerHTML = `<div class="ml-empty">Loading...</div>`;
514
560
  }
515
561
 
@@ -517,6 +563,12 @@ export async function loadUnifiedInbox(autoSelect = true): Promise<void> {
517
563
  const result = await apiGetUnifiedInbox(1);
518
564
  if (myGen !== loadGen) return; // user moved on; drop stale response
519
565
  totalMessages = result.total;
566
+ listCache.set(CACHE_KEY_UNIFIED, { items: result.items, total: result.total, timestamp: Date.now() });
567
+
568
+ // Skip the re-render entirely if the IPC result matches what
569
+ // the cache already painted. Avoids DOM churn / scroll-jump
570
+ // on the common no-change refresh.
571
+ if (cached && listResultsEqual(cached.items, result.items)) return;
520
572
 
521
573
  if (result.items.length === 0) {
522
574
  state.setMessages([]);
@@ -645,19 +697,35 @@ export async function loadMessages(accountId: string, folderId: number, page = 1
645
697
  const savedScroll = !autoSelect ? body.scrollTop : 0;
646
698
  const savedUid = !autoSelect ? body.querySelector(".ml-row.selected")?.getAttribute("data-uid") : null;
647
699
 
648
- if (autoSelect) {
700
+ const flaggedOnly = document.getElementById("ml-body")?.classList.contains("flagged-only") || false;
701
+ const cKey = cacheKey("folder", accountId, folderId, flaggedOnly);
702
+ const cached = listCache.get(cKey);
703
+ if (cached) {
704
+ totalMessages = cached.total;
705
+ state.setMessages(cached.items);
706
+ renderMessages(body, accountId, cached.items);
707
+ if (autoSelect) selectFirst(body);
708
+ else {
709
+ requestAnimationFrame(() => {
710
+ body.scrollTop = savedScroll;
711
+ restoreSelection(body, savedUid);
712
+ });
713
+ }
714
+ } else if (autoSelect) {
649
715
  body.innerHTML = `<div class="ml-empty">Loading...</div>`;
650
716
  }
651
717
 
652
718
  try {
653
- const flaggedOnly = document.getElementById("ml-body")?.classList.contains("flagged-only") || false;
654
719
  const result = await apiGetMessages(accountId, folderId, 1, 50, flaggedOnly, currentSort, currentSortDir);
655
720
  // Stale-response guard: a newer load* fired while we were
656
721
  // awaiting; the new view already painted. Drop this result
657
722
  // silently rather than overwriting.
658
723
  if (myGen !== loadGen) return;
659
724
  totalMessages = result.total;
725
+ listCache.set(cKey, { items: result.items, total: result.total, timestamp: Date.now() });
660
726
  updateSortIndicators();
727
+ // Skip re-render if data unchanged from the painted cache.
728
+ if (cached && listResultsEqual(cached.items, result.items)) return;
661
729
 
662
730
  if (result.items.length === 0) {
663
731
  state.setMessages([]);
@@ -605,42 +605,81 @@ function parseAddrs(s) {
605
605
  * contacts.jsonc → groups map. Recipients that match a group name (case
606
606
  * insensitive) get replaced by their member list, recursively. Unresolved
607
607
  * tokens are left in place so the user sees them and can fix the typo.
608
- * Loaded once per send via `getContactsConfig`; cached for the session. */
609
- let _groupsCache = null;
610
- async function loadGroupsMap() {
611
- if (_groupsCache)
612
- return _groupsCache;
608
+ * Loaded ASYNCHRONOUSLY at compose-init time Send must NEVER await
609
+ * this. Earlier `await loadGroupsMap()` inside the click handler hung
610
+ * Send for 61 seconds (Bob 2026-05-09 00:16:57): the GDrive read of
611
+ * contacts.jsonc was on a slow connection. Bob then clicked Send a
612
+ * second time at 00:23, producing two real outgoing messages with
613
+ * different Message-IDs because each Send call assigned its own. Send
614
+ * must be instantaneous; group expansion must not gate it.
615
+ *
616
+ * localStorage is the synchronous tier — populated by the background
617
+ * refresh, read instantly by `expandGroups`. If localStorage has
618
+ * nothing yet (first ever launch on this device), expandGroups is a
619
+ * no-op and the user's literal recipient string flows through. The
620
+ * background refresh seeds localStorage on first success. */
621
+ const GROUPS_LS_KEY = "mailx-groups-cache-v1";
622
+ let _groupsCache = readGroupsFromLocalStorage();
623
+ function readGroupsFromLocalStorage() {
613
624
  try {
614
- const { readJsoncFile } = await import("../lib/api-client.js");
615
- const r = await readJsoncFile("contacts.jsonc");
616
- if (!r?.content) {
617
- _groupsCache = {};
618
- return _groupsCache;
619
- }
620
- // Use a loose JSONC parse: strip // comments + trailing commas.
621
- const stripped = r.content.replace(/^\s*\/\/.*$/gm, "").replace(/,(\s*[}\]])/g, "$1");
622
- const cfg = JSON.parse(stripped);
623
- _groupsCache = (cfg && typeof cfg.groups === "object" && cfg.groups) ? cfg.groups : {};
624
- return _groupsCache;
625
+ const raw = localStorage.getItem(GROUPS_LS_KEY);
626
+ if (raw)
627
+ return JSON.parse(raw) || {};
625
628
  }
626
- catch {
627
- _groupsCache = {};
628
- return _groupsCache;
629
+ catch { /* */ }
630
+ return {};
631
+ }
632
+ function writeGroupsToLocalStorage(groups) {
633
+ try {
634
+ localStorage.setItem(GROUPS_LS_KEY, JSON.stringify(groups));
629
635
  }
636
+ catch { /* localStorage full or private mode */ }
630
637
  }
631
- /** Expand the raw recipient string against the loaded groups map. */
632
- async function expandGroups(raw) {
638
+ /** Background refresh of the groups map. Fires once at compose init,
639
+ * results land in `_groupsCache` and localStorage for next time. */
640
+ function refreshGroupsMapInBackground() {
641
+ (async () => {
642
+ try {
643
+ const { readJsoncFile } = await import("../lib/api-client.js");
644
+ const r = await readJsoncFile("contacts.jsonc");
645
+ if (!r?.content)
646
+ return;
647
+ const stripped = r.content.replace(/^\s*\/\/.*$/gm, "").replace(/,(\s*[}\]])/g, "$1");
648
+ const cfg = JSON.parse(stripped);
649
+ const groups = (cfg && typeof cfg.groups === "object" && cfg.groups) ? cfg.groups : {};
650
+ _groupsCache = groups;
651
+ writeGroupsToLocalStorage(groups);
652
+ }
653
+ catch { /* leave existing cache in place */ }
654
+ })();
655
+ }
656
+ // Kick off the background refresh once when this module loads.
657
+ refreshGroupsMapInBackground();
658
+ /** Expand the raw recipient string against the cached groups map.
659
+ * SYNCHRONOUS by design — Send must not wait on cloud I/O for group
660
+ * expansion. If no groups are cached, the input passes through. */
661
+ function expandGroups(raw) {
633
662
  if (!raw.trim())
634
663
  return raw;
635
- const groups = await loadGroupsMap();
636
- if (Object.keys(groups).length === 0)
664
+ if (Object.keys(_groupsCache).length === 0)
637
665
  return raw;
638
- const { expandRecipients } = await import("@bobfrankston/mailx-types");
639
- const r = expandRecipients(raw, groups);
640
- if (r.unresolved.length > 0) {
641
- console.warn(`[groups] unresolved recipients: ${r.unresolved.join(", ")}`);
666
+ // Lazy-load the expansion utility synchronously isn't possible
667
+ // since it's a separate package — fall back to inline expansion.
668
+ // Same algorithm as `expandRecipients`: split on comma, look up
669
+ // each token (case-insensitive), keep the original on miss.
670
+ const groupsLc = {};
671
+ for (const k of Object.keys(_groupsCache))
672
+ groupsLc[k.toLowerCase()] = _groupsCache[k];
673
+ const tokens = raw.split(",").map(s => s.trim()).filter(Boolean);
674
+ const out = [];
675
+ for (const tok of tokens) {
676
+ const members = groupsLc[tok.toLowerCase()];
677
+ if (members && Array.isArray(members))
678
+ out.push(...members);
679
+ else
680
+ out.push(tok);
642
681
  }
643
- return r.addresses.join(", ");
682
+ return out.join(", ");
644
683
  }
645
684
  function applyInit(init) {
646
685
  // Populate the From datalist with known accounts
@@ -960,9 +999,14 @@ document.getElementById("btn-send")?.addEventListener("click", async () => {
960
999
  // Group expansion — replace any group names (family, neighbors, etc.)
961
1000
  // with their address lists from contacts.jsonc → groups before parsing
962
1001
  // into the validated {name, address}[] shape the service expects.
963
- const toExpanded = await expandGroups(toInput.value);
964
- const ccExpanded = await expandGroups(ccInput.value);
965
- const bccExpanded = await expandGroups(bccInput.value);
1002
+ // Synchronous group expansion — reads in-memory + localStorage cache
1003
+ // ONLY. NEVER awaits cloud I/O. This used to be `await expandGroups`
1004
+ // which fired a GDrive read of contacts.jsonc and hung Send for 61 s
1005
+ // on a slow network (Bob 2026-05-09 00:16:57); the user clicked
1006
+ // Send again, producing a real duplicate message.
1007
+ const toExpanded = expandGroups(toInput.value);
1008
+ const ccExpanded = expandGroups(ccInput.value);
1009
+ const bccExpanded = expandGroups(bccInput.value);
966
1010
  const body = {
967
1011
  from: getFromAccountId(),
968
1012
  fromAddress: getFromAddress(),