@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.
- package/client/android-bootstrap.bundle.js +164 -152
- package/client/android-bootstrap.bundle.js.map +4 -4
- package/client/app.bundle.js +13 -107
- package/client/app.bundle.js.map +4 -4
- package/client/components/calendar-sidebar.js +1 -1
- package/client/components/calendar-sidebar.js.map +1 -1
- package/client/components/calendar-sidebar.ts +1 -1
- package/client/components/message-list.js +0 -60
- package/client/components/message-list.js.map +1 -1
- package/client/components/message-list.ts +0 -56
- package/client/components/message-viewer.js +3 -2
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +3 -2
- package/client/compose/compose.bundle.js +198 -211
- package/client/compose/compose.bundle.js.map +4 -4
- package/client/compose/compose.html +0 -8
- package/client/compose/compose.js +1 -1
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +1 -1
- package/client/compose/editor.js +30 -32
- package/client/compose/editor.js.map +1 -1
- package/client/compose/editor.ts +27 -29
- package/client/compose/ghost-text.js +0 -8
- package/client/compose/ghost-text.js.map +1 -1
- package/client/compose/ghost-text.ts +0 -6
- package/client/compose/spellcheck-core.js +0 -1
- package/client/compose/spellcheck-core.js.map +1 -1
- package/client/compose/spellcheck-core.ts +0 -1
- package/client/index.html +0 -8
- package/client/lib/local-service.js +0 -73
- package/client/lib/local-service.js.map +1 -1
- package/client/lib/local-service.ts +0 -71
- package/client/lib/local-store.js +0 -3
- package/client/lib/local-store.js.map +1 -1
- package/client/lib/local-store.ts +0 -4
- package/package.json +1 -3
- package/packages/mailx-host/index.d.ts +0 -1
- package/packages/mailx-host/index.d.ts.map +1 -1
- package/packages/mailx-host/index.js +0 -1
- package/packages/mailx-host/index.js.map +1 -1
- package/packages/mailx-host/index.ts +0 -1
- package/packages/mailx-host/package.json +1 -1
- package/packages/mailx-service/index.d.ts.map +1 -1
- package/packages/mailx-service/index.js +36 -139
- package/packages/mailx-service/index.js.map +1 -1
- package/packages/mailx-service/index.ts +36 -148
- package/packages/mailx-settings/cloud.d.ts +0 -5
- package/packages/mailx-settings/cloud.d.ts.map +1 -1
- package/packages/mailx-settings/cloud.js +0 -16
- package/packages/mailx-settings/cloud.js.map +1 -1
- package/packages/mailx-settings/cloud.ts +0 -12
- package/packages/mailx-settings/index.d.ts +0 -3
- package/packages/mailx-settings/index.d.ts.map +1 -1
- package/packages/mailx-settings/index.js +0 -5
- package/packages/mailx-settings/index.js.map +1 -1
- package/packages/mailx-settings/index.ts +0 -7
- package/packages/mailx-store-web/main-thread-host.d.ts +1 -1
- package/packages/mailx-store-web/main-thread-host.d.ts.map +1 -1
- package/packages/mailx-store-web/main-thread-host.js +1 -38
- package/packages/mailx-store-web/main-thread-host.js.map +1 -1
- package/packages/mailx-store-web/main-thread-host.ts +0 -42
- package/packages/mailx-store-web/package.json +1 -1
- package/packages/mailx-store-web/web-service.d.ts.map +1 -1
- package/packages/mailx-store-web/web-service.js +28 -114
- package/packages/mailx-store-web/web-service.js.map +1 -1
- package/packages/mailx-store-web/web-service.ts +28 -124
- package/packages/mailx-store-web/web-settings.d.ts +0 -4
- package/packages/mailx-store-web/web-settings.d.ts.map +1 -1
- package/packages/mailx-store-web/web-settings.js +0 -29
- package/packages/mailx-store-web/web-settings.js.map +1 -1
- package/packages/mailx-store-web/web-settings.ts +0 -24
- package/packages/mailx-types/index.d.ts +2 -0
- package/packages/mailx-types/index.d.ts.map +1 -1
- package/packages/mailx-types/index.js +1 -0
- package/packages/mailx-types/index.js.map +1 -1
- package/packages/mailx-types/index.ts +2 -0
- package/packages/mailx-types/mime-build.d.ts +74 -0
- package/packages/mailx-types/mime-build.d.ts.map +1 -0
- package/packages/mailx-types/mime-build.js +160 -0
- package/packages/mailx-types/mime-build.js.map +1 -0
- package/packages/mailx-types/mime-build.ts +217 -0
- package/packages/mailx-types/package.json +1 -1
- package/packages/mailx-types/test/mime-build.test.mjs +200 -0
- package/client/components/calendar.js +0 -220
- package/client/components/calendar.js.map +0 -1
- package/client/components/calendar.ts +0 -213
- package/client/components/tasks.js +0 -261
- package/client/components/tasks.js.map +0 -1
- package/client/components/tasks.ts +0 -234
- package/packages/mailx-compose/.gitattributes +0 -10
- package/packages/mailx-compose/index.d.ts +0 -21
- package/packages/mailx-compose/index.d.ts.map +0 -1
- package/packages/mailx-compose/index.js +0 -66
- package/packages/mailx-compose/index.js.map +0 -1
- package/packages/mailx-compose/index.ts +0 -91
- package/packages/mailx-compose/package.json +0 -18
- package/packages/mailx-compose/tsconfig.json +0 -9
- package/packages/mailx-core/index.d.ts +0 -142
- package/packages/mailx-core/index.d.ts.map +0 -1
- package/packages/mailx-core/index.js +0 -430
- package/packages/mailx-core/index.js.map +0 -1
- package/packages/mailx-core/index.ts +0 -450
- package/packages/mailx-core/ipc.d.ts +0 -13
- package/packages/mailx-core/ipc.d.ts.map +0 -1
- package/packages/mailx-core/ipc.js +0 -56
- package/packages/mailx-core/ipc.js.map +0 -1
- package/packages/mailx-core/ipc.ts +0 -62
- package/packages/mailx-core/package.json +0 -18
- package/packages/mailx-core/tsconfig.json +0 -9
- package/packages/mailx-send/.gitattributes +0 -10
- package/packages/mailx-send/README.md +0 -217
- package/packages/mailx-send/cli-queue.d.ts +0 -11
- package/packages/mailx-send/cli-queue.d.ts.map +0 -1
- package/packages/mailx-send/cli-queue.js +0 -59
- package/packages/mailx-send/cli-queue.js.map +0 -1
- package/packages/mailx-send/cli-queue.ts +0 -62
- package/packages/mailx-send/cli-send.d.ts +0 -17
- package/packages/mailx-send/cli-send.d.ts.map +0 -1
- package/packages/mailx-send/cli-send.js +0 -75
- package/packages/mailx-send/cli-send.js.map +0 -1
- package/packages/mailx-send/cli-send.ts +0 -83
- package/packages/mailx-send/cli.d.ts +0 -22
- package/packages/mailx-send/cli.d.ts.map +0 -1
- package/packages/mailx-send/cli.js +0 -115
- package/packages/mailx-send/cli.js.map +0 -1
- package/packages/mailx-send/cli.ts +0 -126
- package/packages/mailx-send/index.d.ts +0 -77
- package/packages/mailx-send/index.d.ts.map +0 -1
- package/packages/mailx-send/index.js +0 -269
- package/packages/mailx-send/index.js.map +0 -1
- package/packages/mailx-send/index.ts +0 -338
- package/packages/mailx-send/mailsend/README.md +0 -133
- package/packages/mailx-send/mailsend/cli.d.ts +0 -12
- package/packages/mailx-send/mailsend/cli.d.ts.map +0 -1
- package/packages/mailx-send/mailsend/cli.js +0 -70
- package/packages/mailx-send/mailsend/cli.js.map +0 -1
- package/packages/mailx-send/mailsend/cli.ts +0 -81
- package/packages/mailx-send/mailsend/index.d.ts +0 -77
- package/packages/mailx-send/mailsend/index.d.ts.map +0 -1
- package/packages/mailx-send/mailsend/index.js +0 -264
- package/packages/mailx-send/mailsend/index.js.map +0 -1
- package/packages/mailx-send/mailsend/index.ts +0 -336
- package/packages/mailx-send/mailsend/package-lock.json +0 -65
- package/packages/mailx-send/mailsend/package.json +0 -26
- package/packages/mailx-send/mailsend/tsconfig.json +0 -21
- package/packages/mailx-send/package-lock.json +0 -65
- package/packages/mailx-send/package.json +0 -37
- package/packages/mailx-send/tsconfig.json +0 -21
- package/packages/mailx-server/.gitattributes +0 -10
- package/packages/mailx-server/index.d.ts +0 -8
- package/packages/mailx-server/index.d.ts.map +0 -1
- package/packages/mailx-server/index.js +0 -412
- package/packages/mailx-server/index.js.map +0 -1
- package/packages/mailx-server/index.ts +0 -445
- package/packages/mailx-server/package.json +0 -28
- package/packages/mailx-server/tsconfig.json +0 -9
- package/packages/mailx-server/tsconfig.tsbuildinfo +0 -1
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-7472 → node_modules.npmglobalize-stash-40004}/.package-lock.json +0 -0
package/client/app.bundle.js
CHANGED
|
@@ -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
|
}
|