@bobfrankston/rmfmail 1.2.291 → 1.2.293
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/.commitmsg +24 -27
- package/client/android-bootstrap.bundle.js +34 -2
- package/client/android-bootstrap.bundle.js.map +2 -2
- package/client/app.bundle.js +37 -1
- package/client/app.bundle.js.map +2 -2
- package/client/components/message-viewer.js +56 -1
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +54 -1
- package/client/compose/compose.bundle.js +5 -1
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/lib/api-client.js +7 -1
- package/client/lib/api-client.js.map +1 -1
- package/client/lib/api-client.ts +9 -2
- package/client/lib/mailxapi.js +3 -0
- package/client/styles/components.css +25 -0
- package/npmchanges.md +66 -0
- package/package.json +6 -6
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +1 -1
- package/packages/mailx-service/index.d.ts +20 -0
- package/packages/mailx-service/index.d.ts.map +1 -1
- package/packages/mailx-service/index.js +37 -0
- package/packages/mailx-service/index.js.map +1 -1
- package/packages/mailx-service/index.ts +37 -1
- package/packages/mailx-service/jsonrpc.js +2 -0
- package/packages/mailx-service/jsonrpc.js.map +1 -1
- package/packages/mailx-service/jsonrpc.ts +2 -0
- package/packages/mailx-service/package.json +1 -1
- package/packages/mailx-settings/index.d.ts +19 -0
- package/packages/mailx-settings/index.d.ts.map +1 -1
- package/packages/mailx-settings/index.js +33 -10
- package/packages/mailx-settings/index.js.map +1 -1
- package/packages/mailx-settings/index.ts +33 -11
- package/packages/mailx-settings/package.json +1 -1
- package/packages/mailx-store/package.json +1 -1
- package/packages/mailx-store/store.d.ts.map +1 -1
- package/packages/mailx-store/store.js +17 -2
- package/packages/mailx-store/store.js.map +1 -1
- package/packages/mailx-store/store.ts +17 -2
- package/packages/mailx-store-web/android-bootstrap.js +3 -0
- package/packages/mailx-store-web/android-bootstrap.js.map +1 -1
- package/packages/mailx-store-web/android-bootstrap.ts +3 -0
- package/packages/mailx-store-web/package.json +1 -1
- package/packages/mailx-store-web/web-jsonrpc.js +2 -0
- package/packages/mailx-store-web/web-jsonrpc.js.map +1 -1
- package/packages/mailx-store-web/web-jsonrpc.ts +2 -0
- package/packages/mailx-store-web/web-service.d.ts +9 -0
- package/packages/mailx-store-web/web-service.d.ts.map +1 -1
- package/packages/mailx-store-web/web-service.js +28 -0
- package/packages/mailx-store-web/web-service.js.map +1 -1
- package/packages/mailx-store-web/web-service.ts +23 -1
- package/packages/mailx-store-web/web-settings.d.ts +2 -0
- package/packages/mailx-store-web/web-settings.d.ts.map +1 -1
- package/packages/mailx-store-web/web-settings.js +2 -0
- package/packages/mailx-store-web/web-settings.js.map +1 -1
- package/packages/mailx-store-web/web-settings.ts +2 -0
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-27960 → node_modules.npmglobalize-stash-29688}/.package-lock.json +0 -0
package/client/app.bundle.js
CHANGED
|
@@ -125,6 +125,7 @@ __export(api_client_exports, {
|
|
|
125
125
|
syncAccount: () => syncAccount,
|
|
126
126
|
syncFolderNow: () => syncFolderNow,
|
|
127
127
|
triggerSync: () => triggerSync,
|
|
128
|
+
trustSenderOrDomain: () => trustSenderOrDomain,
|
|
128
129
|
undeleteMessage: () => undeleteMessage,
|
|
129
130
|
unsubscribeOneClick: () => unsubscribeOneClick,
|
|
130
131
|
updateCalendarEvent: () => updateCalendarEvent,
|
|
@@ -351,8 +352,11 @@ function addUserDictWords(words) {
|
|
|
351
352
|
function removeUserDictWord(word) {
|
|
352
353
|
return ipc().removeUserDictWord?.(word) ?? Promise.resolve([]);
|
|
353
354
|
}
|
|
355
|
+
function trustSenderOrDomain(type, value) {
|
|
356
|
+
return ipc().trustSenderOrDomain?.(type, value) ?? Promise.resolve({ trusted: false });
|
|
357
|
+
}
|
|
354
358
|
function getAllowlist() {
|
|
355
|
-
return ipc().getAllowlist?.() ?? Promise.resolve({ senders: [], domains: [], recipients: [], flaggedSenders: [], flaggedDomains: [] });
|
|
359
|
+
return ipc().getAllowlist?.() ?? Promise.resolve({ senders: [], domains: [], recipients: [], flaggedSenders: [], flaggedDomains: [], trustedSenders: [], trustedDomains: [] });
|
|
356
360
|
}
|
|
357
361
|
function flagSenderOrDomain(type, value) {
|
|
358
362
|
return ipc().flagSenderOrDomain?.(type, value) ?? Promise.resolve({ flagged: false });
|
|
@@ -3126,6 +3130,38 @@ async function showMessage(accountId, uid, folderId, specialUse, isRetry = false
|
|
|
3126
3130
|
const warn = document.createElement("div");
|
|
3127
3131
|
warn.className = `mv-trust mv-trust-${worst}`;
|
|
3128
3132
|
warn.innerHTML = (head ? `<div class="mv-trust-head">${head}</div>` : "") + trust.map((f) => `<div class="mv-trust-item mv-trust-${escapeText(f.severity)}"><div class="mv-trust-text">${escapeText(f.text)}</div><div class="mv-trust-detail">${escapeText(f.detail)}</div></div>`).join("") + (worst === "info" ? "" : `<div class="mv-trust-foot">Links and attachments here should not be opened.</div>`);
|
|
3133
|
+
const spamOnly = trust.length === 1 && trust[0].id === "server-spam-verdict" && worst !== "danger";
|
|
3134
|
+
const fromAddr = (msg.from?.address || "").toLowerCase();
|
|
3135
|
+
const fromDomain = fromAddr.split("@")[1] || "";
|
|
3136
|
+
if (spamOnly && spam?.proved && fromAddr) {
|
|
3137
|
+
const actions = document.createElement("div");
|
|
3138
|
+
actions.className = "mv-trust-actions";
|
|
3139
|
+
for (const [label, type, value] of [
|
|
3140
|
+
[`Stop warning about ${fromAddr}`, "sender", fromAddr],
|
|
3141
|
+
[`Stop warning about *@${fromDomain}`, "domain", fromDomain]
|
|
3142
|
+
]) {
|
|
3143
|
+
if (!value)
|
|
3144
|
+
continue;
|
|
3145
|
+
const b = document.createElement("button");
|
|
3146
|
+
b.className = "mv-trust-action";
|
|
3147
|
+
b.textContent = label;
|
|
3148
|
+
b.addEventListener("click", async () => {
|
|
3149
|
+
b.disabled = true;
|
|
3150
|
+
try {
|
|
3151
|
+
const res = await trustSenderOrDomain(type, value);
|
|
3152
|
+
if (!res?.trusted)
|
|
3153
|
+
throw new Error("the sender list did not save");
|
|
3154
|
+
warn.remove();
|
|
3155
|
+
document.querySelector(".mv-spamscore")?.remove();
|
|
3156
|
+
} catch (e) {
|
|
3157
|
+
b.disabled = false;
|
|
3158
|
+
b.textContent = `Could not save: ${e?.message || e}`;
|
|
3159
|
+
}
|
|
3160
|
+
});
|
|
3161
|
+
actions.appendChild(b);
|
|
3162
|
+
}
|
|
3163
|
+
warn.appendChild(actions);
|
|
3164
|
+
}
|
|
3129
3165
|
bodyEl.appendChild(warn);
|
|
3130
3166
|
}
|
|
3131
3167
|
if (msg.hasRemoteContent) {
|