@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
@@ -97,6 +97,7 @@ __export(api_client_exports, {
97
97
  reauthGoogleScopes: () => reauthGoogleScopes,
98
98
  reauthenticate: () => reauthenticate,
99
99
  recordSpamReport: () => recordSpamReport,
100
+ registerMailto: () => registerMailto,
100
101
  removeUserDictWord: () => removeUserDictWord,
101
102
  renameFolder: () => renameFolder,
102
103
  repairAccounts: () => repairAccounts,
@@ -631,6 +632,12 @@ async function openAttachment(accountId, uid, attachmentId, folderId, filename)
631
632
  async function getMessageSource(accountId, uid, folderId) {
632
633
  return ipc().getMessageSource(accountId, uid, folderId);
633
634
  }
635
+ async function registerMailto() {
636
+ const fn = ipc().registerMailto;
637
+ if (!fn)
638
+ return { ok: false, message: "Not available in this host \u2014 run `rmfmail -register-mailto` from a terminal." };
639
+ return fn();
640
+ }
634
641
  async function popoutWindow(accountId, uid, folderId, subject) {
635
642
  const fn = ipc().popoutWindow;
636
643
  if (!fn)
@@ -11139,6 +11146,44 @@ document.getElementById("btn-edit-jsonc")?.addEventListener("click", async () =>
11139
11146
  if (settingsDropdown2) settingsDropdown2.hidden = true;
11140
11147
  await openJsoncEditor("accounts.jsonc");
11141
11148
  });
11149
+ document.getElementById("btn-register-mailto")?.addEventListener("click", async () => {
11150
+ const settingsDropdown2 = document.getElementById("settings-dropdown");
11151
+ if (settingsDropdown2) settingsDropdown2.hidden = true;
11152
+ const { registerMailto: registerMailto2 } = await Promise.resolve().then(() => (init_api_client(), api_client_exports));
11153
+ const r = await registerMailto2();
11154
+ const backdrop = document.createElement("div");
11155
+ backdrop.className = "mailx-modal-backdrop";
11156
+ 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;";
11157
+ const panel = document.createElement("div");
11158
+ 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;";
11159
+ const heading = document.createElement("div");
11160
+ heading.style.cssText = "font-weight:600;font-size:1.05em;";
11161
+ heading.textContent = r.ok ? "rmfmail registered as an email handler" : "Registration failed";
11162
+ const body = document.createElement("div");
11163
+ body.style.cssText = "font-size:0.92em;line-height:1.45;white-space:pre-wrap;";
11164
+ body.textContent = r.ok ? 'One manual step remains \u2014 Windows only lets YOU flip the default:\n\nSettings \u2192 Apps \u2192 Default apps \u2192 search "rmfmail" \u2192 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".' : r.message;
11165
+ const btnRow = document.createElement("div");
11166
+ btnRow.style.cssText = "display:flex;gap:8px;justify-content:flex-end;";
11167
+ const closeBtn = document.createElement("button");
11168
+ closeBtn.textContent = "Close";
11169
+ closeBtn.style.cssText = "padding:6px 14px;";
11170
+ closeBtn.addEventListener("click", () => backdrop.remove());
11171
+ btnRow.append(closeBtn);
11172
+ if (r.ok) {
11173
+ const openBtn = document.createElement("button");
11174
+ openBtn.textContent = "Open Default-apps settings";
11175
+ openBtn.style.cssText = "padding:6px 14px;font-weight:500;";
11176
+ openBtn.addEventListener("click", () => {
11177
+ const api = window.mailxapi;
11178
+ if (api?.openExternal) api.openExternal("ms-settings:defaultapps");
11179
+ backdrop.remove();
11180
+ });
11181
+ btnRow.append(openBtn);
11182
+ }
11183
+ panel.append(heading, body, btnRow);
11184
+ backdrop.append(panel);
11185
+ document.body.append(backdrop);
11186
+ });
11142
11187
  document.addEventListener("mailx-open-jsonc-editor", async (ev) => {
11143
11188
  const file = ev.detail?.file || "accounts.jsonc";
11144
11189
  await openJsoncEditor(file);