@bobfrankston/rmfmail 1.1.2 → 1.1.3

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 (80) hide show
  1. package/bin/mailx.js +9 -1
  2. package/bin/mailx.js.map +1 -1
  3. package/bin/mailx.ts +10 -1
  4. package/client/android-bootstrap.bundle.js +1 -1
  5. package/client/android-bootstrap.bundle.js.map +2 -2
  6. package/client/app.bundle.js +58 -1
  7. package/client/app.bundle.js.map +2 -2
  8. package/client/compose/compose.bundle.js +41 -1
  9. package/client/compose/compose.bundle.js.map +2 -2
  10. package/client/lib/api-client.js +41 -0
  11. package/client/lib/api-client.js.map +1 -1
  12. package/client/lib/api-client.ts +29 -0
  13. package/client/lib/message-state.js +23 -0
  14. package/client/lib/message-state.js.map +1 -1
  15. package/client/lib/message-state.ts +21 -0
  16. package/package.json +3 -3
  17. package/packages/mailx-bus/index.d.ts +2 -0
  18. package/packages/mailx-bus/index.d.ts.map +1 -1
  19. package/packages/mailx-bus/index.js +9 -0
  20. package/packages/mailx-bus/index.js.map +1 -1
  21. package/packages/mailx-bus/index.ts +11 -0
  22. package/packages/mailx-bus/package.json +1 -1
  23. package/packages/mailx-bus/store-events.d.ts +79 -0
  24. package/packages/mailx-bus/store-events.d.ts.map +1 -0
  25. package/packages/mailx-bus/store-events.js +155 -0
  26. package/packages/mailx-bus/store-events.js.map +1 -0
  27. package/packages/mailx-bus/store-events.ts +165 -0
  28. package/packages/mailx-core/index.d.ts.map +1 -1
  29. package/packages/mailx-core/index.js +25 -3
  30. package/packages/mailx-core/index.js.map +1 -1
  31. package/packages/mailx-core/index.ts +23 -3
  32. package/packages/mailx-host/package.json +1 -1
  33. package/packages/mailx-imap/index.d.ts +0 -37
  34. package/packages/mailx-imap/index.d.ts.map +1 -1
  35. package/packages/mailx-imap/index.js +17 -172
  36. package/packages/mailx-imap/index.js.map +1 -1
  37. package/packages/mailx-imap/index.ts +17 -179
  38. package/packages/mailx-imap/package-lock.json +2 -2
  39. package/packages/mailx-imap/package.json +1 -1
  40. package/packages/mailx-service/index.d.ts +16 -0
  41. package/packages/mailx-service/index.d.ts.map +1 -1
  42. package/packages/mailx-service/index.js +89 -77
  43. package/packages/mailx-service/index.js.map +1 -1
  44. package/packages/mailx-service/index.ts +83 -75
  45. package/packages/mailx-service/local-store.d.ts +54 -2
  46. package/packages/mailx-service/local-store.d.ts.map +1 -1
  47. package/packages/mailx-service/local-store.js +147 -2
  48. package/packages/mailx-service/local-store.js.map +1 -1
  49. package/packages/mailx-service/local-store.ts +147 -3
  50. package/packages/mailx-service/reconciler.d.ts.map +1 -1
  51. package/packages/mailx-service/reconciler.js +28 -8
  52. package/packages/mailx-service/reconciler.js.map +1 -1
  53. package/packages/mailx-service/reconciler.ts +28 -8
  54. package/packages/mailx-service/sync-queue.d.ts +16 -0
  55. package/packages/mailx-service/sync-queue.d.ts.map +1 -1
  56. package/packages/mailx-service/sync-queue.js +33 -3
  57. package/packages/mailx-service/sync-queue.js.map +1 -1
  58. package/packages/mailx-service/sync-queue.ts +33 -3
  59. package/packages/mailx-settings/package.json +1 -1
  60. package/packages/mailx-store/bus.d.ts +79 -0
  61. package/packages/mailx-store/bus.d.ts.map +1 -0
  62. package/packages/mailx-store/bus.js +155 -0
  63. package/packages/mailx-store/bus.js.map +1 -0
  64. package/packages/mailx-store/index.d.ts +2 -0
  65. package/packages/mailx-store/index.d.ts.map +1 -1
  66. package/packages/mailx-store/index.js +5 -0
  67. package/packages/mailx-store/index.js.map +1 -1
  68. package/packages/mailx-store/index.ts +7 -0
  69. package/packages/mailx-store/package.json +2 -1
  70. package/packages/mailx-store-web/db.d.ts.map +1 -1
  71. package/packages/mailx-store-web/db.js +9 -1
  72. package/packages/mailx-store-web/db.js.map +1 -1
  73. package/packages/mailx-store-web/db.ts +9 -1
  74. package/packages/mailx-store-web/package.json +2 -1
  75. package/packages/mailx-store-web/sync-manager.d.ts +4 -0
  76. package/packages/mailx-store-web/sync-manager.d.ts.map +1 -1
  77. package/packages/mailx-store-web/sync-manager.js +32 -4
  78. package/packages/mailx-store-web/sync-manager.js.map +1 -1
  79. package/packages/mailx-store-web/sync-manager.ts +28 -4
  80. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-36832 → node_modules.npmglobalize-stash-444}/.package-lock.json +0 -0
@@ -91,6 +91,7 @@ __export(api_client_exports, {
91
91
  setPrioritySender: () => setPrioritySender,
92
92
  setupAccount: () => setupAccount,
93
93
  showReminderPopup: () => showReminderPopup,
94
+ subscribeStore: () => subscribeStore,
94
95
  syncAccount: () => syncAccount,
95
96
  triggerSync: () => triggerSync,
96
97
  undeleteMessage: () => undeleteMessage,
@@ -384,8 +385,46 @@ function onEvent(handler) {
384
385
  eventHandlers.splice(i, 1);
385
386
  };
386
387
  }
388
+ function subscribeStore(topic, handler) {
389
+ let set = storeSubs.get(topic);
390
+ if (!set) {
391
+ set = /* @__PURE__ */ new Set();
392
+ storeSubs.set(topic, set);
393
+ }
394
+ set.add(handler);
395
+ return () => {
396
+ const s = storeSubs.get(topic);
397
+ if (s) {
398
+ s.delete(handler);
399
+ if (s.size === 0)
400
+ storeSubs.delete(topic);
401
+ }
402
+ };
403
+ }
404
+ function deliverStore(event) {
405
+ const exact = storeSubs.get(event.topic);
406
+ if (exact)
407
+ for (const h of exact) {
408
+ try {
409
+ h(event);
410
+ } catch (e) {
411
+ console.error("[store-bus]", e);
412
+ }
413
+ }
414
+ const wild = storeSubs.get("*");
415
+ if (wild)
416
+ for (const h of wild) {
417
+ try {
418
+ h(event);
419
+ } catch (e) {
420
+ console.error("[store-bus]", e);
421
+ }
422
+ }
423
+ }
387
424
  function connectEvents() {
388
425
  ipc().onEvent((event) => {
426
+ if (event && event._event === "store")
427
+ deliverStore(event);
389
428
  for (const h of eventHandlers)
390
429
  h(event);
391
430
  });
@@ -459,13 +498,14 @@ async function getAttachment(accountId, uid, attachmentId, folderId) {
459
498
  async function getDeviceAccounts() {
460
499
  return ipc().getDeviceAccounts?.() ?? [];
461
500
  }
462
- var cachedRelayBridge, messageListAbort, eventHandlers, connectWebSocket, onWsEvent;
501
+ var cachedRelayBridge, messageListAbort, eventHandlers, storeSubs, connectWebSocket, onWsEvent;
463
502
  var init_api_client = __esm({
464
503
  "client/lib/api-client.js"() {
465
504
  "use strict";
466
505
  cachedRelayBridge = null;
467
506
  messageListAbort = null;
468
507
  eventHandlers = [];
508
+ storeSubs = /* @__PURE__ */ new Map();
469
509
  connectWebSocket = connectEvents;
470
510
  onWsEvent = onEvent;
471
511
  }
@@ -641,8 +681,25 @@ var messages, listeners;
641
681
  var init_message_state = __esm({
642
682
  "client/lib/message-state.js"() {
643
683
  "use strict";
684
+ init_api_client();
644
685
  messages = [];
645
686
  listeners = [];
687
+ subscribeStore("*", (event) => {
688
+ if (event.kind !== "flagsChanged")
689
+ return;
690
+ const accountId = event.accountId;
691
+ const uid = event.uid;
692
+ const flags = event.flags;
693
+ if (!accountId || typeof uid !== "number" || !Array.isArray(flags))
694
+ return;
695
+ const msg = messages.find((m) => m.uid === uid && m.accountId === accountId);
696
+ if (!msg)
697
+ return;
698
+ const before = JSON.stringify(msg.flags);
699
+ msg.flags = flags;
700
+ if (before !== JSON.stringify(flags))
701
+ notify();
702
+ });
646
703
  }
647
704
  });
648
705