@bobfrankston/rmfmail 1.2.270 → 1.2.274

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/client/android-bootstrap.bundle.js +28 -2
  2. package/client/android-bootstrap.bundle.js.map +2 -2
  3. package/client/app.bundle.js +125 -10
  4. package/client/app.bundle.js.map +4 -4
  5. package/client/app.js +19 -0
  6. package/client/app.js.map +1 -1
  7. package/client/app.ts +20 -0
  8. package/client/components/message-list.js +9 -1
  9. package/client/components/message-list.js.map +1 -1
  10. package/client/components/message-list.ts +9 -1
  11. package/client/components/message-viewer.js +40 -2
  12. package/client/components/message-viewer.js.map +1 -1
  13. package/client/components/message-viewer.ts +37 -2
  14. package/client/compose/compose.bundle.js +4 -0
  15. package/client/compose/compose.bundle.js.map +2 -2
  16. package/client/lib/api-client.js +6 -0
  17. package/client/lib/api-client.js.map +1 -1
  18. package/client/lib/api-client.ts +6 -0
  19. package/client/lib/approved-senders.js +66 -0
  20. package/client/lib/approved-senders.js.map +1 -0
  21. package/client/lib/approved-senders.ts +63 -0
  22. package/client/lib/mailxapi.js +3 -0
  23. package/client/package.json +1 -1
  24. package/package.json +5 -5
  25. package/packages/mailx-imap/package-lock.json +2 -2
  26. package/packages/mailx-imap/package.json +1 -1
  27. package/packages/mailx-service/index.d.ts +15 -0
  28. package/packages/mailx-service/index.d.ts.map +1 -1
  29. package/packages/mailx-service/index.js +18 -0
  30. package/packages/mailx-service/index.js.map +1 -1
  31. package/packages/mailx-service/index.ts +19 -0
  32. package/packages/mailx-service/jsonrpc.js +2 -0
  33. package/packages/mailx-service/jsonrpc.js.map +1 -1
  34. package/packages/mailx-service/jsonrpc.ts +2 -0
  35. package/packages/mailx-service/package.json +1 -1
  36. package/packages/mailx-settings/package.json +1 -1
  37. package/packages/mailx-store/package.json +1 -1
  38. package/packages/mailx-store-web/android-bootstrap.js +1 -0
  39. package/packages/mailx-store-web/android-bootstrap.js.map +1 -1
  40. package/packages/mailx-store-web/android-bootstrap.ts +1 -0
  41. package/packages/mailx-store-web/package.json +1 -1
  42. package/packages/mailx-store-web/web-service.d.ts +11 -0
  43. package/packages/mailx-store-web/web-service.d.ts.map +1 -1
  44. package/packages/mailx-store-web/web-service.js +14 -0
  45. package/packages/mailx-store-web/web-service.js.map +1 -1
  46. package/packages/mailx-store-web/web-service.ts +15 -0
  47. package/packages/mailx-types/index.d.ts.map +1 -1
  48. package/packages/mailx-types/index.js +25 -2
  49. package/packages/mailx-types/index.js.map +1 -1
  50. package/packages/mailx-types/index.ts +21 -1
  51. package/packages/mailx-types/package.json +1 -1
  52. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-18100 → node_modules.npmglobalize-stash-31304}/.package-lock.json +0 -0
@@ -2861,9 +2861,20 @@ function displayNameClaimsOtherAddress(name, address) {
2861
2861
  const m = n.match(/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g);
2862
2862
  if (!m)
2863
2863
  return null;
2864
+ const realDomain = real.split("@").pop() || "";
2864
2865
  for (const claimed of m) {
2865
- if (claimed.toLowerCase() !== real)
2866
- return claimed;
2866
+ if (claimed.toLowerCase() === real)
2867
+ continue;
2868
+ const claimedDomain = claimed.toLowerCase().split("@").pop() || "";
2869
+ if (claimedDomain && realDomain) {
2870
+ if (claimedDomain === realDomain)
2871
+ continue;
2872
+ if (claimedDomain.endsWith("." + realDomain))
2873
+ continue;
2874
+ if (realDomain.endsWith("." + claimedDomain))
2875
+ continue;
2876
+ }
2877
+ return claimed;
2867
2878
  }
2868
2879
  return null;
2869
2880
  }
@@ -6392,6 +6403,20 @@ var WebMailxService = class _WebMailxService {
6392
6403
  await this.syncManager.updateFlagsLocal(accountId, uid, envelope?.folderId || 0, flags);
6393
6404
  }
6394
6405
  // ── Remote content allow-list ──
6406
+ /** Read side of the shared allowlist, so the UI can ask whether a sender
6407
+ * has been vouched for. Mirrors MailxService.getAllowlist — the desktop
6408
+ * and Android halves must answer the same question the same way, or the
6409
+ * display-name warning would differ between them. */
6410
+ async getAllowlist() {
6411
+ const list = await loadAllowlist() || {};
6412
+ return {
6413
+ senders: list.senders || [],
6414
+ domains: list.domains || [],
6415
+ recipients: list.recipients || [],
6416
+ flaggedSenders: list.flaggedSenders || [],
6417
+ flaggedDomains: list.flaggedDomains || []
6418
+ };
6419
+ }
6395
6420
  async allowRemoteContent(type, value) {
6396
6421
  await updateAllowlist((list) => {
6397
6422
  if (type === "sender" && !list.senders.includes(value))
@@ -11857,6 +11882,7 @@ function installBridge() {
11857
11882
  await service.allowRemoteContent(type, value);
11858
11883
  return { ok: true };
11859
11884
  },
11885
+ getAllowlist: () => service.getAllowlist(),
11860
11886
  flagSenderOrDomain: async (type, value) => {
11861
11887
  return await service.flagSenderOrDomain(type, value);
11862
11888
  },