@bobfrankston/rmfmail 1.2.166 → 1.2.168

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 (50) hide show
  1. package/TODO.md +4 -0
  2. package/client/android-bootstrap.bundle.js +23 -4
  3. package/client/android-bootstrap.bundle.js.map +2 -2
  4. package/client/app.bundle.js +45 -0
  5. package/client/app.bundle.js.map +2 -2
  6. package/client/app.js +23 -0
  7. package/client/app.js.map +1 -1
  8. package/client/app.ts +18 -0
  9. package/client/components/folder-tree.js +25 -1
  10. package/client/components/folder-tree.js.map +1 -1
  11. package/client/components/folder-tree.ts +21 -1
  12. package/client/compose/compose.bundle.js +292 -0
  13. package/client/compose/compose.bundle.js.map +4 -4
  14. package/client/compose/compose.js +23 -0
  15. package/client/compose/compose.js.map +1 -1
  16. package/client/compose/compose.ts +20 -0
  17. package/client/compose/harper-lint.js +269 -0
  18. package/client/compose/harper-lint.js.map +1 -0
  19. package/client/compose/harper-lint.ts +265 -0
  20. package/client/index.html +1 -0
  21. package/client/lib/api-client.js +8 -0
  22. package/client/lib/api-client.js.map +1 -1
  23. package/client/lib/api-client.ts +8 -0
  24. package/client/lib/mailxapi.js +6 -0
  25. package/docs/harper-integration.md +120 -0
  26. package/package.json +8 -5
  27. package/packages/mailx-imap/package-lock.json +2 -2
  28. package/packages/mailx-imap/package.json +1 -1
  29. package/packages/mailx-service/index.d.ts +11 -0
  30. package/packages/mailx-service/index.d.ts.map +1 -1
  31. package/packages/mailx-service/index.js +56 -0
  32. package/packages/mailx-service/index.js.map +1 -1
  33. package/packages/mailx-service/index.ts +54 -0
  34. package/packages/mailx-service/jsonrpc.js +2 -0
  35. package/packages/mailx-service/jsonrpc.js.map +1 -1
  36. package/packages/mailx-service/jsonrpc.ts +2 -0
  37. package/packages/mailx-service/package.json +1 -1
  38. package/packages/mailx-settings/docs/harper-integration.md +120 -0
  39. package/packages/mailx-settings/package.json +1 -1
  40. package/packages/mailx-store/package.json +1 -1
  41. package/packages/mailx-store-web/android-bootstrap.d.ts.map +1 -1
  42. package/packages/mailx-store-web/android-bootstrap.js +31 -4
  43. package/packages/mailx-store-web/android-bootstrap.js.map +1 -1
  44. package/packages/mailx-store-web/android-bootstrap.ts +31 -4
  45. package/packages/mailx-store-web/package.json +1 -1
  46. package/packages/mailx-types/mailx-api.d.ts +12 -0
  47. package/packages/mailx-types/mailx-api.d.ts.map +1 -1
  48. package/packages/mailx-types/mailx-api.ts +4 -0
  49. package/packages/mailx-types/package.json +1 -1
  50. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-61300 → node_modules.npmglobalize-stash-72420}/.package-lock.json +0 -0
@@ -72,6 +72,7 @@ __export(api_client_exports, {
72
72
  getUnifiedInbox: () => getUnifiedInbox,
73
73
  getUserDict: () => getUserDict,
74
74
  getVersion: () => getVersion,
75
+ grammarLint: () => grammarLint,
75
76
  hasBccHistoryTo: () => hasBccHistoryTo,
76
77
  hasCcHistoryTo: () => hasCcHistoryTo,
77
78
  installConsoleCapture: () => installConsoleCapture,
@@ -632,6 +633,12 @@ async function openAttachment(accountId, uid, attachmentId, folderId, filename)
632
633
  async function getMessageSource(accountId, uid, folderId) {
633
634
  return ipc().getMessageSource(accountId, uid, folderId);
634
635
  }
636
+ async function grammarLint(blocks) {
637
+ const fn = ipc().grammarLint;
638
+ if (!fn)
639
+ throw new Error("no grammarLint bridge");
640
+ return fn(blocks);
641
+ }
635
642
  async function registerMailto() {
636
643
  const fn = ipc().registerMailto;
637
644
  if (!fn)
@@ -7377,7 +7384,23 @@ async function loadFolderTree(container) {
7377
7384
  }
7378
7385
  }).catch(() => {
7379
7386
  });
7387
+ const DEVICE_ACCTS_TIMEOUT_MS = 5e3;
7388
+ let deviceAcctsResolved = false;
7389
+ setTimeout(() => {
7390
+ if (deviceAcctsResolved)
7391
+ return;
7392
+ const p = document.getElementById("setup-device-accounts");
7393
+ if (p)
7394
+ p.innerHTML = "";
7395
+ const f = document.getElementById("setup-form");
7396
+ const i = document.getElementById("setup-form-intro");
7397
+ if (f)
7398
+ f.style.display = "block";
7399
+ if (i)
7400
+ i.textContent = "Add your email account to get started.";
7401
+ }, DEVICE_ACCTS_TIMEOUT_MS);
7380
7402
  getDeviceAccounts().then(async (deviceAccounts) => {
7403
+ deviceAcctsResolved = true;
7381
7404
  const pickerEl = document.getElementById("setup-device-accounts");
7382
7405
  if (!pickerEl)
7383
7406
  return;
@@ -7430,6 +7453,7 @@ async function loadFolderTree(container) {
7430
7453
  introEl.textContent = "Add your email account to get started.";
7431
7454
  });
7432
7455
  }).catch(() => {
7456
+ deviceAcctsResolved = true;
7433
7457
  const p = document.getElementById("setup-device-accounts");
7434
7458
  if (p)
7435
7459
  p.innerHTML = "";
@@ -11856,6 +11880,15 @@ getSettings().then((s) => {
11856
11880
  const px = Number(s.ui?.composeFontSize);
11857
11881
  fontEl.value = String(Number.isFinite(px) && px >= 8 && px <= 32 ? px : 15);
11858
11882
  }
11883
+ const gcEl = document.getElementById("opt-grammar-check");
11884
+ if (gcEl) {
11885
+ const on = s.ui?.grammarCheck !== false;
11886
+ gcEl.checked = on;
11887
+ try {
11888
+ localStorage.setItem("mailx-grammar-check", on ? "1" : "0");
11889
+ } catch {
11890
+ }
11891
+ }
11859
11892
  }).catch(() => {
11860
11893
  });
11861
11894
  document.getElementById("opt-compose-window")?.addEventListener("change", (e) => {
@@ -11870,6 +11903,18 @@ document.getElementById("opt-compose-window")?.addEventListener("change", (e) =>
11870
11903
  }).catch(() => {
11871
11904
  });
11872
11905
  });
11906
+ document.getElementById("opt-grammar-check")?.addEventListener("change", (e) => {
11907
+ const on = e.target.checked;
11908
+ try {
11909
+ localStorage.setItem("mailx-grammar-check", on ? "1" : "0");
11910
+ } catch {
11911
+ }
11912
+ getSettings().then((settings) => {
11913
+ settings.ui = { ...settings.ui, grammarCheck: on };
11914
+ saveSettings(settings);
11915
+ }).catch(() => {
11916
+ });
11917
+ });
11873
11918
  document.getElementById("opt-compose-font-size")?.addEventListener("change", (e) => {
11874
11919
  const el = e.target;
11875
11920
  const px = Number(el.value);