@bobfrankston/rmfmail 1.0.478 → 1.0.480

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 (34) hide show
  1. package/client/app.js +18 -2
  2. package/client/app.js.map +1 -1
  3. package/client/app.ts +13 -2
  4. package/client/lib/local-store.js +1 -1
  5. package/client/lib/local-store.js.map +1 -1
  6. package/package.json +5 -5
  7. package/packages/mailx-service/index.d.ts +5 -0
  8. package/packages/mailx-service/index.d.ts.map +1 -1
  9. package/packages/mailx-service/index.ts +1 -1
  10. package/packages/mailx-settings/cloud.d.ts +1 -4
  11. package/packages/mailx-settings/cloud.d.ts.map +1 -1
  12. package/packages/mailx-settings/cloud.js +7 -59
  13. package/packages/mailx-settings/cloud.js.map +1 -1
  14. package/packages/mailx-settings/cloud.ts +7 -58
  15. package/packages/mailx-settings/index.d.ts +3 -0
  16. package/packages/mailx-settings/index.d.ts.map +1 -1
  17. package/packages/mailx-settings/index.js +6 -5
  18. package/packages/mailx-settings/index.js.map +1 -1
  19. package/packages/mailx-settings/index.ts +7 -6
  20. package/packages/mailx-store-web/android-bootstrap.d.ts.map +1 -1
  21. package/packages/mailx-store-web/android-bootstrap.js +18 -9
  22. package/packages/mailx-store-web/android-bootstrap.js.map +1 -1
  23. package/packages/mailx-store-web/android-bootstrap.ts +19 -10
  24. package/packages/mailx-store-web/web-service.d.ts +2 -0
  25. package/packages/mailx-store-web/web-service.d.ts.map +1 -1
  26. package/packages/mailx-store-web/web-service.ts +1 -1
  27. package/packages/mailx-store-web/web-settings.d.ts +3 -1
  28. package/packages/mailx-store-web/web-settings.d.ts.map +1 -1
  29. package/packages/mailx-store-web/web-settings.js +12 -3
  30. package/packages/mailx-store-web/web-settings.js.map +1 -1
  31. package/packages/mailx-store-web/web-settings.ts +12 -4
  32. package/packages/mailx-store-web/worker-entry.js +20 -8
  33. package/packages/mailx-store-web/worker-entry.js.map +1 -1
  34. package/packages/mailx-store-web/worker-entry.ts +20 -9
package/client/app.js CHANGED
@@ -1942,6 +1942,16 @@ onWsEvent((event) => {
1942
1942
  statusSync.textContent = `Error: ${event.message}`;
1943
1943
  showAlert(event.message, "ws-error");
1944
1944
  break;
1945
+ case "fatal":
1946
+ // Unrecoverable startup failure — sticky red banner, no auto-dismiss.
1947
+ // Used for GDrive-folder-missing and similar conditions where the
1948
+ // app cannot function. console.warn would be invisible in the GUI.
1949
+ if (alertBanner)
1950
+ alertBanner.style.background = "oklch(0.45 0.18 25)";
1951
+ showAlert(event.message || "Fatal error", event.key || "fatal", { sticky: true });
1952
+ if (statusSync)
1953
+ statusSync.textContent = `FATAL: ${event.message}`;
1954
+ break;
1945
1955
  case "outboxStatus":
1946
1956
  renderOutboxStatus(event);
1947
1957
  break;
@@ -2826,7 +2836,7 @@ async function openAboutDialog() {
2826
2836
  panel.className = "mailx-modal";
2827
2837
  panel.innerHTML = `
2828
2838
  <div class="mailx-modal-title">
2829
- <span class="mailx-modal-title-text">About mailx</span>
2839
+ <span class="mailx-modal-title-text">About ${APP_NAME}</span>
2830
2840
  <button type="button" class="mailx-modal-close" id="about-x" title="Close (Esc)" aria-label="Close">&times;</button>
2831
2841
  </div>
2832
2842
  <div class="mailx-about" id="about-body">Loading...</div>
@@ -2876,6 +2886,12 @@ async function openAboutDialog() {
2876
2886
  rows.push(["Cloud path", `My Drive/${storage.cloudPath}/`]);
2877
2887
  if (storage.mode)
2878
2888
  rows.push(["Storage mode", storage.mode]);
2889
+ if (storage.folderName)
2890
+ rows.push(["Drive folder", storage.folderName]);
2891
+ if (storage.folderId)
2892
+ rows.push(["Drive folderId", storage.folderId]);
2893
+ if (storage.configDir)
2894
+ rows.push(["Config dir", storage.configDir]);
2879
2895
  rows.push(["Accounts", String((accounts || []).length)]);
2880
2896
  rows.push(["User agent", navigator.userAgent]);
2881
2897
  rows.push(["Screen", `${screen.width}×${screen.height}`]);
@@ -2893,7 +2909,7 @@ async function openAboutDialog() {
2893
2909
  ${accounts.map(a => `<li>${escapeHtml(a.email || a.id)}${a.name ? ` — ${escapeHtml(a.name)}` : ""}</li>`).join("")}
2894
2910
  </ul>
2895
2911
  </div>` : ""}
2896
- <div class="mailx-about-foot">mailx — local-first mail client</div>`;
2912
+ <div class="mailx-about-foot">${APP_NAME} — local-first mail client</div>`;
2897
2913
  }
2898
2914
  catch (e) {
2899
2915
  body.textContent = `Failed to load: ${e.message}`;