@bobfrankston/rmfmail 1.2.231 → 1.2.233

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 (158) hide show
  1. package/client/android-bootstrap.bundle.js +164 -152
  2. package/client/android-bootstrap.bundle.js.map +4 -4
  3. package/client/app.bundle.js +13 -107
  4. package/client/app.bundle.js.map +4 -4
  5. package/client/components/calendar-sidebar.js +1 -1
  6. package/client/components/calendar-sidebar.js.map +1 -1
  7. package/client/components/calendar-sidebar.ts +1 -1
  8. package/client/components/message-list.js +0 -60
  9. package/client/components/message-list.js.map +1 -1
  10. package/client/components/message-list.ts +0 -56
  11. package/client/components/message-viewer.js +3 -2
  12. package/client/components/message-viewer.js.map +1 -1
  13. package/client/components/message-viewer.ts +3 -2
  14. package/client/compose/compose.bundle.js +198 -211
  15. package/client/compose/compose.bundle.js.map +4 -4
  16. package/client/compose/compose.html +0 -8
  17. package/client/compose/compose.js +1 -1
  18. package/client/compose/compose.js.map +1 -1
  19. package/client/compose/compose.ts +1 -1
  20. package/client/compose/editor.js +30 -32
  21. package/client/compose/editor.js.map +1 -1
  22. package/client/compose/editor.ts +27 -29
  23. package/client/compose/ghost-text.js +0 -8
  24. package/client/compose/ghost-text.js.map +1 -1
  25. package/client/compose/ghost-text.ts +0 -6
  26. package/client/compose/spellcheck-core.js +0 -1
  27. package/client/compose/spellcheck-core.js.map +1 -1
  28. package/client/compose/spellcheck-core.ts +0 -1
  29. package/client/index.html +0 -8
  30. package/client/lib/local-service.js +0 -73
  31. package/client/lib/local-service.js.map +1 -1
  32. package/client/lib/local-service.ts +0 -71
  33. package/client/lib/local-store.js +0 -3
  34. package/client/lib/local-store.js.map +1 -1
  35. package/client/lib/local-store.ts +0 -4
  36. package/package.json +1 -3
  37. package/packages/mailx-host/index.d.ts +0 -1
  38. package/packages/mailx-host/index.d.ts.map +1 -1
  39. package/packages/mailx-host/index.js +0 -1
  40. package/packages/mailx-host/index.js.map +1 -1
  41. package/packages/mailx-host/index.ts +0 -1
  42. package/packages/mailx-host/package.json +1 -1
  43. package/packages/mailx-service/index.d.ts.map +1 -1
  44. package/packages/mailx-service/index.js +36 -139
  45. package/packages/mailx-service/index.js.map +1 -1
  46. package/packages/mailx-service/index.ts +36 -148
  47. package/packages/mailx-settings/cloud.d.ts +0 -5
  48. package/packages/mailx-settings/cloud.d.ts.map +1 -1
  49. package/packages/mailx-settings/cloud.js +0 -16
  50. package/packages/mailx-settings/cloud.js.map +1 -1
  51. package/packages/mailx-settings/cloud.ts +0 -12
  52. package/packages/mailx-settings/index.d.ts +0 -3
  53. package/packages/mailx-settings/index.d.ts.map +1 -1
  54. package/packages/mailx-settings/index.js +0 -5
  55. package/packages/mailx-settings/index.js.map +1 -1
  56. package/packages/mailx-settings/index.ts +0 -7
  57. package/packages/mailx-store-web/main-thread-host.d.ts +1 -1
  58. package/packages/mailx-store-web/main-thread-host.d.ts.map +1 -1
  59. package/packages/mailx-store-web/main-thread-host.js +1 -38
  60. package/packages/mailx-store-web/main-thread-host.js.map +1 -1
  61. package/packages/mailx-store-web/main-thread-host.ts +0 -42
  62. package/packages/mailx-store-web/package.json +1 -1
  63. package/packages/mailx-store-web/web-service.d.ts.map +1 -1
  64. package/packages/mailx-store-web/web-service.js +28 -114
  65. package/packages/mailx-store-web/web-service.js.map +1 -1
  66. package/packages/mailx-store-web/web-service.ts +28 -124
  67. package/packages/mailx-store-web/web-settings.d.ts +0 -4
  68. package/packages/mailx-store-web/web-settings.d.ts.map +1 -1
  69. package/packages/mailx-store-web/web-settings.js +0 -29
  70. package/packages/mailx-store-web/web-settings.js.map +1 -1
  71. package/packages/mailx-store-web/web-settings.ts +0 -24
  72. package/packages/mailx-types/index.d.ts +2 -0
  73. package/packages/mailx-types/index.d.ts.map +1 -1
  74. package/packages/mailx-types/index.js +1 -0
  75. package/packages/mailx-types/index.js.map +1 -1
  76. package/packages/mailx-types/index.ts +2 -0
  77. package/packages/mailx-types/mime-build.d.ts +74 -0
  78. package/packages/mailx-types/mime-build.d.ts.map +1 -0
  79. package/packages/mailx-types/mime-build.js +160 -0
  80. package/packages/mailx-types/mime-build.js.map +1 -0
  81. package/packages/mailx-types/mime-build.ts +217 -0
  82. package/packages/mailx-types/package.json +1 -1
  83. package/packages/mailx-types/test/mime-build.test.mjs +200 -0
  84. package/client/components/calendar.js +0 -220
  85. package/client/components/calendar.js.map +0 -1
  86. package/client/components/calendar.ts +0 -213
  87. package/client/components/tasks.js +0 -261
  88. package/client/components/tasks.js.map +0 -1
  89. package/client/components/tasks.ts +0 -234
  90. package/packages/mailx-compose/.gitattributes +0 -10
  91. package/packages/mailx-compose/index.d.ts +0 -21
  92. package/packages/mailx-compose/index.d.ts.map +0 -1
  93. package/packages/mailx-compose/index.js +0 -66
  94. package/packages/mailx-compose/index.js.map +0 -1
  95. package/packages/mailx-compose/index.ts +0 -91
  96. package/packages/mailx-compose/package.json +0 -18
  97. package/packages/mailx-compose/tsconfig.json +0 -9
  98. package/packages/mailx-core/index.d.ts +0 -142
  99. package/packages/mailx-core/index.d.ts.map +0 -1
  100. package/packages/mailx-core/index.js +0 -430
  101. package/packages/mailx-core/index.js.map +0 -1
  102. package/packages/mailx-core/index.ts +0 -450
  103. package/packages/mailx-core/ipc.d.ts +0 -13
  104. package/packages/mailx-core/ipc.d.ts.map +0 -1
  105. package/packages/mailx-core/ipc.js +0 -56
  106. package/packages/mailx-core/ipc.js.map +0 -1
  107. package/packages/mailx-core/ipc.ts +0 -62
  108. package/packages/mailx-core/package.json +0 -18
  109. package/packages/mailx-core/tsconfig.json +0 -9
  110. package/packages/mailx-send/.gitattributes +0 -10
  111. package/packages/mailx-send/README.md +0 -217
  112. package/packages/mailx-send/cli-queue.d.ts +0 -11
  113. package/packages/mailx-send/cli-queue.d.ts.map +0 -1
  114. package/packages/mailx-send/cli-queue.js +0 -59
  115. package/packages/mailx-send/cli-queue.js.map +0 -1
  116. package/packages/mailx-send/cli-queue.ts +0 -62
  117. package/packages/mailx-send/cli-send.d.ts +0 -17
  118. package/packages/mailx-send/cli-send.d.ts.map +0 -1
  119. package/packages/mailx-send/cli-send.js +0 -75
  120. package/packages/mailx-send/cli-send.js.map +0 -1
  121. package/packages/mailx-send/cli-send.ts +0 -83
  122. package/packages/mailx-send/cli.d.ts +0 -22
  123. package/packages/mailx-send/cli.d.ts.map +0 -1
  124. package/packages/mailx-send/cli.js +0 -115
  125. package/packages/mailx-send/cli.js.map +0 -1
  126. package/packages/mailx-send/cli.ts +0 -126
  127. package/packages/mailx-send/index.d.ts +0 -77
  128. package/packages/mailx-send/index.d.ts.map +0 -1
  129. package/packages/mailx-send/index.js +0 -269
  130. package/packages/mailx-send/index.js.map +0 -1
  131. package/packages/mailx-send/index.ts +0 -338
  132. package/packages/mailx-send/mailsend/README.md +0 -133
  133. package/packages/mailx-send/mailsend/cli.d.ts +0 -12
  134. package/packages/mailx-send/mailsend/cli.d.ts.map +0 -1
  135. package/packages/mailx-send/mailsend/cli.js +0 -70
  136. package/packages/mailx-send/mailsend/cli.js.map +0 -1
  137. package/packages/mailx-send/mailsend/cli.ts +0 -81
  138. package/packages/mailx-send/mailsend/index.d.ts +0 -77
  139. package/packages/mailx-send/mailsend/index.d.ts.map +0 -1
  140. package/packages/mailx-send/mailsend/index.js +0 -264
  141. package/packages/mailx-send/mailsend/index.js.map +0 -1
  142. package/packages/mailx-send/mailsend/index.ts +0 -336
  143. package/packages/mailx-send/mailsend/package-lock.json +0 -65
  144. package/packages/mailx-send/mailsend/package.json +0 -26
  145. package/packages/mailx-send/mailsend/tsconfig.json +0 -21
  146. package/packages/mailx-send/package-lock.json +0 -65
  147. package/packages/mailx-send/package.json +0 -37
  148. package/packages/mailx-send/tsconfig.json +0 -21
  149. package/packages/mailx-server/.gitattributes +0 -10
  150. package/packages/mailx-server/index.d.ts +0 -8
  151. package/packages/mailx-server/index.d.ts.map +0 -1
  152. package/packages/mailx-server/index.js +0 -412
  153. package/packages/mailx-server/index.js.map +0 -1
  154. package/packages/mailx-server/index.ts +0 -445
  155. package/packages/mailx-server/package.json +0 -28
  156. package/packages/mailx-server/tsconfig.json +0 -9
  157. package/packages/mailx-server/tsconfig.tsbuildinfo +0 -1
  158. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-7472 → node_modules.npmglobalize-stash-40004}/.package-lock.json +0 -0
@@ -1322,6 +1322,15 @@ var init_mime_inline_images = __esm({
1322
1322
  }
1323
1323
  });
1324
1324
 
1325
+ // packages/mailx-types/mime-build.js
1326
+ var init_mime_build = __esm({
1327
+ "packages/mailx-types/mime-build.js"() {
1328
+ "use strict";
1329
+ init_mailx_types();
1330
+ init_mime_inline_images();
1331
+ }
1332
+ });
1333
+
1325
1334
  // packages/mailx-types/index.js
1326
1335
  function _has(msg, flag) {
1327
1336
  return !!msg.flags && msg.flags.includes(flag);
@@ -1342,6 +1351,7 @@ var init_mailx_types = __esm({
1342
1351
  init_groups();
1343
1352
  init_reminder_state();
1344
1353
  init_mime_inline_images();
1354
+ init_mime_build();
1345
1355
  _SEEN = "\\Seen";
1346
1356
  _FLAGGED = "\\Flagged";
1347
1357
  _DRAFT = "\\Draft";
@@ -2364,7 +2374,7 @@ async function showMessage(accountId, uid, folderId, specialUse, isRetry = false
2364
2374
  items.push({ label: "Reply", action: () => document.dispatchEvent(new CustomEvent("mailx-compose", { detail: { mode: "reply" } })) });
2365
2375
  items.push({ label: "Reply All", action: () => document.dispatchEvent(new CustomEvent("mailx-compose", { detail: { mode: "replyAll" } })) });
2366
2376
  items.push({ label: "Forward", action: () => document.dispatchEvent(new CustomEvent("mailx-compose", { detail: { mode: "forward" } })) });
2367
- showContextMenu(me.clientX, me.clientY, items);
2377
+ showContextMenu(me.clientX, me.clientY, items, { editTarget: me.target });
2368
2378
  });
2369
2379
  }
2370
2380
  headerEl.querySelector(".mv-date").textContent = new Date(msg.date).toLocaleString(void 0, { year: "numeric", month: "short", day: "numeric", hour: "2-digit", minute: "2-digit", hour12: false });
@@ -2897,7 +2907,7 @@ async function showMessage(accountId, uid, folderId, specialUse, isRetry = false
2897
2907
  } });
2898
2908
  }
2899
2909
  }
2900
- showContextMenu(e.clientX, e.clientY, items);
2910
+ showContextMenu(e.clientX, e.clientY, items, { editTarget: e.target });
2901
2911
  });
2902
2912
  attEl.appendChild(chip);
2903
2913
  }
@@ -3879,7 +3889,6 @@ __export(message_list_exports, {
3879
3889
  setLiveFilter: () => setLiveFilter,
3880
3890
  setRowFlagged: () => setRowFlagged,
3881
3891
  setRowSeen: () => setRowSeen,
3882
- showSelectionMenu: () => showSelectionMenu,
3883
3892
  showThreadPopup: () => showThreadPopup
3884
3893
  });
3885
3894
  function setLiveFilter(query) {
@@ -4139,16 +4148,6 @@ function selectedRows() {
4139
4148
  }
4140
4149
  return out;
4141
4150
  }
4142
- function visibleRowObjs() {
4143
- const body = document.getElementById("ml-body");
4144
- if (!body)
4145
- return [];
4146
- return Array.from(body.querySelectorAll(".ml-row:not(.filter-hidden)")).map((el) => rowByKey.get(rowKey(el.dataset.accountId || "", Number(el.dataset.uid), el.dataset.folderId))).filter((r) => !!r);
4147
- }
4148
- function bulkTargets() {
4149
- const sel = selectedRows();
4150
- return sel.length > 0 ? sel : visibleRowObjs();
4151
- }
4152
4151
  async function bulkSetFlagged(rows, flagged) {
4153
4152
  const undo = [];
4154
4153
  await Promise.all(rows.map(async (row) => {
@@ -4185,99 +4184,6 @@ async function bulkSetSeen(rows, seen) {
4185
4184
  }
4186
4185
  }));
4187
4186
  }
4188
- async function bulkMoveSelection() {
4189
- const targets = bulkTargets();
4190
- if (targets.length === 0)
4191
- return;
4192
- const accountId = targets[0].accountId;
4193
- const same = targets.filter((r) => r.accountId === accountId);
4194
- const pick = await pickFolder(accountId, { excludeFolderIds: [same[0].msg.folderId] });
4195
- if (!pick)
4196
- return;
4197
- const uids = same.map((r) => r.msg.uid);
4198
- removeMessagesAndReconcile(uids.map((u) => ({ accountId, uid: u })));
4199
- const statusSync = document.getElementById("status-sync");
4200
- if (statusSync)
4201
- statusSync.textContent = `Moving ${uids.length} message${uids.length !== 1 ? "s" : ""} to ${pick.folderName}\u2026`;
4202
- moveMessages(accountId, uids, pick.folderId).then(() => {
4203
- if (statusSync)
4204
- statusSync.textContent = `Moved ${uids.length} to ${pick.folderName}`;
4205
- }).catch((err) => {
4206
- if (statusSync)
4207
- statusSync.textContent = `Move sync issue: ${err?.message || err}`;
4208
- });
4209
- exitMultiSelect();
4210
- }
4211
- async function showSelectionMenu(x, y) {
4212
- const { showContextMenu: showContextMenu2 } = await Promise.resolve().then(() => (init_context_menu(), context_menu_exports));
4213
- const body = document.getElementById("ml-body");
4214
- const visibleRows = body ? Array.from(body.querySelectorAll(".ml-row:not(.filter-hidden)")) : [];
4215
- const enterMulti = () => body?.classList.add("multi-select-on");
4216
- const shownCount = visibleRows.length;
4217
- const selCount = getSelectedMessages().length;
4218
- const hasShown = shownCount > 0;
4219
- const targetN = selCount > 0 ? selCount : shownCount;
4220
- const onWhat = selCount > 0 ? `selected (${selCount})` : `all shown (${shownCount})`;
4221
- const canAct = targetN > 0;
4222
- const items = [
4223
- { label: `Acting on ${onWhat}`, action: () => {
4224
- }, disabled: true },
4225
- { label: "", action: () => {
4226
- }, separator: true },
4227
- {
4228
- label: `Select all shown (${shownCount})`,
4229
- action: () => {
4230
- if (!body)
4231
- return;
4232
- enterMulti();
4233
- for (const r of visibleRows)
4234
- r.classList.add("selected");
4235
- lastClickedRow = visibleRows[visibleRows.length - 1] || null;
4236
- updateBulkBar();
4237
- },
4238
- disabled: !hasShown
4239
- },
4240
- {
4241
- label: "Select flagged \u2605 among shown",
4242
- action: () => {
4243
- if (!body)
4244
- return;
4245
- enterMulti();
4246
- for (const r of visibleRows)
4247
- r.classList.toggle("selected", r.classList.contains("flagged"));
4248
- lastClickedRow = null;
4249
- updateBulkBar();
4250
- },
4251
- disabled: !hasShown
4252
- },
4253
- {
4254
- label: "Invert selection among shown",
4255
- action: () => {
4256
- if (!body)
4257
- return;
4258
- enterMulti();
4259
- for (const r of visibleRows)
4260
- r.classList.toggle("selected");
4261
- updateBulkBar();
4262
- },
4263
- disabled: !hasShown
4264
- },
4265
- { label: `Deselect all (${selCount})`, action: () => exitMultiSelect(), disabled: selCount === 0 },
4266
- { label: "", action: () => {
4267
- }, separator: true },
4268
- // Actions — auto-targeted (selected else all shown). No count on the
4269
- // verb itself (a number on "Flag" reads as ambiguous, Bob 2026-06-24);
4270
- // the "Acting on …" header above carries the target count.
4271
- { label: "Flag", action: () => bulkSetFlagged(bulkTargets(), true), disabled: !canAct },
4272
- { label: "Unflag", action: () => bulkSetFlagged(bulkTargets(), false), disabled: !canAct },
4273
- { label: "Mark read", action: () => bulkSetSeen(bulkTargets(), true), disabled: !canAct },
4274
- { label: "Mark unread", action: () => bulkSetSeen(bulkTargets(), false), disabled: !canAct },
4275
- { label: "", action: () => {
4276
- }, separator: true },
4277
- { label: "Move to folder\u2026", action: () => bulkMoveSelection(), disabled: !canAct }
4278
- ];
4279
- showContextMenu2(x, y, items);
4280
- }
4281
4187
  function scrollFocusedIntoView() {
4282
4188
  if (!focusedRow)
4283
4189
  return;
@@ -6266,7 +6172,7 @@ async function renderTasks(prefetched) {
6266
6172
  await deleteTask(uuid);
6267
6173
  renderTasks();
6268
6174
  } }
6269
- ]);
6175
+ ], { editTarget: e.target });
6270
6176
  });
6271
6177
  });
6272
6178
  }