@bobfrankston/rmfmail 1.2.164 → 1.2.166

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 (52) hide show
  1. package/bin/mailx.js +100 -82
  2. package/bin/mailx.js.map +1 -1
  3. package/bin/mailx.ts +89 -71
  4. package/client/android-bootstrap.bundle.js +8 -5
  5. package/client/android-bootstrap.bundle.js.map +2 -2
  6. package/client/app.bundle.js +45 -0
  7. package/client/app.bundle.js.map +3 -3
  8. package/client/app.js +48 -0
  9. package/client/app.js.map +1 -1
  10. package/client/app.ts +47 -0
  11. package/client/compose/compose.bundle.js +15 -0
  12. package/client/compose/compose.bundle.js.map +2 -2
  13. package/client/compose/compose.js +14 -0
  14. package/client/compose/compose.js.map +1 -1
  15. package/client/compose/compose.ts +12 -0
  16. package/client/index.html +1 -0
  17. package/client/lib/api-client.js +7 -0
  18. package/client/lib/api-client.js.map +1 -1
  19. package/client/lib/api-client.ts +7 -0
  20. package/client/lib/mailxapi.js +7 -0
  21. package/package.json +5 -5
  22. package/packages/mailx-imap/index.d.ts.map +1 -1
  23. package/packages/mailx-imap/index.js +32 -7
  24. package/packages/mailx-imap/index.js.map +1 -1
  25. package/packages/mailx-imap/index.ts +33 -7
  26. package/packages/mailx-imap/package-lock.json +2 -2
  27. package/packages/mailx-imap/package.json +1 -1
  28. package/packages/mailx-service/index.d.ts +15 -0
  29. package/packages/mailx-service/index.d.ts.map +1 -1
  30. package/packages/mailx-service/index.js +15 -0
  31. package/packages/mailx-service/index.js.map +1 -1
  32. package/packages/mailx-service/index.ts +12 -0
  33. package/packages/mailx-service/jsonrpc.js +2 -0
  34. package/packages/mailx-service/jsonrpc.js.map +1 -1
  35. package/packages/mailx-service/jsonrpc.ts +2 -0
  36. package/packages/mailx-service/package.json +1 -1
  37. package/packages/mailx-settings/package.json +1 -1
  38. package/packages/mailx-store/package.json +1 -1
  39. package/packages/mailx-store-web/android-bootstrap.d.ts.map +1 -1
  40. package/packages/mailx-store-web/android-bootstrap.js +16 -6
  41. package/packages/mailx-store-web/android-bootstrap.js.map +1 -1
  42. package/packages/mailx-store-web/android-bootstrap.ts +17 -6
  43. package/packages/mailx-store-web/package.json +1 -1
  44. package/packages/mailx-store-web/sync-manager.d.ts.map +1 -1
  45. package/packages/mailx-store-web/sync-manager.js +20 -5
  46. package/packages/mailx-store-web/sync-manager.js.map +1 -1
  47. package/packages/mailx-store-web/sync-manager.ts +21 -5
  48. package/packages/mailx-types/mailx-api.d.ts +6 -0
  49. package/packages/mailx-types/mailx-api.d.ts.map +1 -1
  50. package/packages/mailx-types/mailx-api.ts +3 -0
  51. package/packages/mailx-types/package.json +1 -1
  52. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-10468 → node_modules.npmglobalize-stash-61300}/.package-lock.json +0 -0
package/client/app.js CHANGED
@@ -4885,6 +4885,54 @@ document.getElementById("btn-edit-jsonc")?.addEventListener("click", async () =>
4885
4885
  settingsDropdown.hidden = true;
4886
4886
  await openJsoncEditor("accounts.jsonc");
4887
4887
  });
4888
+ // Settings → "Make default email app...". Registers rmfmail as the OS
4889
+ // mailto: handler (same work as `rmfmail -register-mailto`), then walks the
4890
+ // user through the one step Windows refuses to automate: picking rmfmail in
4891
+ // Settings → Default apps (UserChoice is hash-protected). Discoverability
4892
+ // fix — the CLI flag existed but nothing in the app pointed at it (Bob
4893
+ // 2026-07-20 "couldn't figure out how to make rmfmail the responder").
4894
+ document.getElementById("btn-register-mailto")?.addEventListener("click", async () => {
4895
+ const settingsDropdown = document.getElementById("settings-dropdown");
4896
+ if (settingsDropdown)
4897
+ settingsDropdown.hidden = true;
4898
+ const { registerMailto } = await import("./lib/api-client.js");
4899
+ const r = await registerMailto();
4900
+ const backdrop = document.createElement("div");
4901
+ backdrop.className = "mailx-modal-backdrop";
4902
+ backdrop.style.cssText = "position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,0.4);display:flex;align-items:center;justify-content:center;";
4903
+ const panel = document.createElement("div");
4904
+ panel.style.cssText = "background:var(--color-bg,#fff);color:var(--color-text,#000);border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,0.3);width:min(520px,90vw);padding:18px;display:flex;flex-direction:column;gap:12px;";
4905
+ const heading = document.createElement("div");
4906
+ heading.style.cssText = "font-weight:600;font-size:1.05em;";
4907
+ heading.textContent = r.ok ? "rmfmail registered as an email handler" : "Registration failed";
4908
+ const body = document.createElement("div");
4909
+ body.style.cssText = "font-size:0.92em;line-height:1.45;white-space:pre-wrap;";
4910
+ body.textContent = r.ok
4911
+ ? "One manual step remains — Windows only lets YOU flip the default:\n\nSettings → Apps → Default apps → search \"rmfmail\" → set it for MAILTO.\n\nIf a picker warns the app must be from the Store, choose \"More options\" / \"Choose an app on this PC\"."
4912
+ : r.message;
4913
+ const btnRow = document.createElement("div");
4914
+ btnRow.style.cssText = "display:flex;gap:8px;justify-content:flex-end;";
4915
+ const closeBtn = document.createElement("button");
4916
+ closeBtn.textContent = "Close";
4917
+ closeBtn.style.cssText = "padding:6px 14px;";
4918
+ closeBtn.addEventListener("click", () => backdrop.remove());
4919
+ btnRow.append(closeBtn);
4920
+ if (r.ok) {
4921
+ const openBtn = document.createElement("button");
4922
+ openBtn.textContent = "Open Default-apps settings";
4923
+ openBtn.style.cssText = "padding:6px 14px;font-weight:500;";
4924
+ openBtn.addEventListener("click", () => {
4925
+ const api = window.mailxapi;
4926
+ if (api?.openExternal)
4927
+ api.openExternal("ms-settings:defaultapps");
4928
+ backdrop.remove();
4929
+ });
4930
+ btnRow.append(openBtn);
4931
+ }
4932
+ panel.append(heading, body, btnRow);
4933
+ backdrop.append(panel);
4934
+ document.body.append(backdrop);
4935
+ });
4888
4936
  // Allow other components (remote-content banner, etc.) to open the editor
4889
4937
  // pre-selected to a specific file.
4890
4938
  document.addEventListener("mailx-open-jsonc-editor", async (ev) => {