@bobfrankston/rmfmail 1.0.705 → 1.0.707
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/bin/mailx.js +15 -1
- package/bin/mailx.js.map +1 -1
- package/bin/mailx.ts +17 -1
- package/client/android-bootstrap.bundle.js +163 -2
- package/client/android-bootstrap.bundle.js.map +2 -2
- package/client/app.bundle.js +12 -0
- package/client/app.bundle.js.map +2 -2
- package/client/compose/compose.bundle.js +47 -5
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/compose/compose.js +25 -5
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +21 -5
- package/client/compose/spellcheck.js +34 -5
- package/client/compose/spellcheck.js.map +1 -1
- package/client/compose/spellcheck.ts +31 -4
- package/client/lib/api-client.js +9 -0
- package/client/lib/api-client.js.map +1 -1
- package/client/lib/api-client.ts +9 -0
- package/package.json +1 -1
- package/packages/mailx-service/index.d.ts +30 -2
- package/packages/mailx-service/index.d.ts.map +1 -1
- package/packages/mailx-service/index.js +38 -1
- package/packages/mailx-service/index.js.map +1 -1
- package/packages/mailx-service/index.ts +44 -3
- package/packages/mailx-service/jsonrpc.js +6 -0
- package/packages/mailx-service/jsonrpc.js.map +1 -1
- package/packages/mailx-service/jsonrpc.ts +6 -0
- package/packages/mailx-settings/index.d.ts +7 -0
- package/packages/mailx-settings/index.d.ts.map +1 -1
- package/packages/mailx-settings/index.js +35 -1
- package/packages/mailx-settings/index.js.map +1 -1
- package/packages/mailx-settings/index.ts +36 -1
- package/packages/mailx-store/index.d.ts +1 -1
- package/packages/mailx-store/index.d.ts.map +1 -1
- package/packages/mailx-store/index.js +1 -1
- package/packages/mailx-store/index.js.map +1 -1
- package/packages/mailx-store/index.ts +1 -1
- package/packages/mailx-store/parse-serial.d.ts +40 -24
- package/packages/mailx-store/parse-serial.d.ts.map +1 -1
- package/packages/mailx-store/parse-serial.js +161 -29
- package/packages/mailx-store/parse-serial.js.map +1 -1
- package/packages/mailx-store/parse-serial.ts +151 -37
- package/packages/mailx-store/parse-worker.d.ts +2 -0
- package/packages/mailx-store/parse-worker.d.ts.map +1 -0
- package/packages/mailx-store/parse-worker.js +53 -0
- package/packages/mailx-store/parse-worker.js.map +1 -0
- package/packages/mailx-store/parse-worker.ts +62 -0
- package/packages/mailx-store-web/package.json +1 -1
- package/packages/mailx-store-web/web-service.d.ts +88 -3
- package/packages/mailx-store-web/web-service.d.ts.map +1 -1
- package/packages/mailx-store-web/web-service.js +92 -2
- package/packages/mailx-store-web/web-service.js.map +1 -1
- package/packages/mailx-store-web/web-service.ts +110 -5
- package/packages/mailx-types/index.d.ts +1 -0
- package/packages/mailx-types/index.d.ts.map +1 -1
- package/packages/mailx-types/index.js.map +1 -1
- package/packages/mailx-types/index.ts +1 -0
- package/packages/mailx-types/mailx-api.d.ts +212 -0
- package/packages/mailx-types/mailx-api.d.ts.map +1 -0
- package/packages/mailx-types/mailx-api.js +41 -0
- package/packages/mailx-types/mailx-api.js.map +1 -0
- package/packages/mailx-types/mailx-api.ts +159 -0
- package/packages/mailx-types/package.json +1 -1
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-34984 → node_modules.npmglobalize-stash-40064}/.package-lock.json +0 -0
|
@@ -38,6 +38,7 @@ __export(api_client_exports, {
|
|
|
38
38
|
addContact: () => addContact,
|
|
39
39
|
addPreferredContact: () => addPreferredContact,
|
|
40
40
|
addToDenylist: () => addToDenylist,
|
|
41
|
+
addUserDictWord: () => addUserDictWord,
|
|
41
42
|
aiTransform: () => aiTransform,
|
|
42
43
|
allowRemoteContent: () => allowRemoteContent,
|
|
43
44
|
autocomplete: () => autocomplete,
|
|
@@ -77,6 +78,7 @@ __export(api_client_exports, {
|
|
|
77
78
|
getTasks: () => getTasks,
|
|
78
79
|
getThreadMessages: () => getThreadMessages,
|
|
79
80
|
getUnifiedInbox: () => getUnifiedInbox,
|
|
81
|
+
getUserDict: () => getUserDict,
|
|
80
82
|
getVersion: () => getVersion,
|
|
81
83
|
hasBccHistoryTo: () => hasBccHistoryTo,
|
|
82
84
|
hasCcHistoryTo: () => hasCcHistoryTo,
|
|
@@ -98,6 +100,7 @@ __export(api_client_exports, {
|
|
|
98
100
|
reauthGoogleScopes: () => reauthGoogleScopes,
|
|
99
101
|
reauthenticate: () => reauthenticate,
|
|
100
102
|
recordSpamReport: () => recordSpamReport,
|
|
103
|
+
removeUserDictWord: () => removeUserDictWord,
|
|
101
104
|
renameFolder: () => renameFolder,
|
|
102
105
|
repairAccounts: () => repairAccounts,
|
|
103
106
|
restartServer: () => restartServer,
|
|
@@ -318,6 +321,15 @@ function openInTextEditor(path) {
|
|
|
318
321
|
function allowRemoteContent(type, value) {
|
|
319
322
|
return ipc().allowRemoteContent(type, value);
|
|
320
323
|
}
|
|
324
|
+
function getUserDict() {
|
|
325
|
+
return ipc().getUserDict?.() ?? Promise.resolve([]);
|
|
326
|
+
}
|
|
327
|
+
function addUserDictWord(word) {
|
|
328
|
+
return ipc().addUserDictWord?.(word) ?? Promise.resolve([]);
|
|
329
|
+
}
|
|
330
|
+
function removeUserDictWord(word) {
|
|
331
|
+
return ipc().removeUserDictWord?.(word) ?? Promise.resolve([]);
|
|
332
|
+
}
|
|
321
333
|
function flagSenderOrDomain(type, value) {
|
|
322
334
|
return ipc().flagSenderOrDomain?.(type, value) ?? Promise.resolve({ flagged: false });
|
|
323
335
|
}
|
|
@@ -1758,6 +1770,20 @@ async function getSpell() {
|
|
|
1758
1770
|
sp.add(w);
|
|
1759
1771
|
} catch {
|
|
1760
1772
|
}
|
|
1773
|
+
getUserDict().then((cloud) => {
|
|
1774
|
+
if (!Array.isArray(cloud) || cloud.length === 0)
|
|
1775
|
+
return;
|
|
1776
|
+
for (const w of cloud)
|
|
1777
|
+
sp.add(w);
|
|
1778
|
+
try {
|
|
1779
|
+
const raw = localStorage.getItem(USER_DICT_KEY);
|
|
1780
|
+
const local = raw ? JSON.parse(raw) : [];
|
|
1781
|
+
const merged = [.../* @__PURE__ */ new Set([...local, ...cloud])];
|
|
1782
|
+
localStorage.setItem(USER_DICT_KEY, JSON.stringify(merged));
|
|
1783
|
+
} catch {
|
|
1784
|
+
}
|
|
1785
|
+
}).catch(() => {
|
|
1786
|
+
});
|
|
1761
1787
|
return sp;
|
|
1762
1788
|
})();
|
|
1763
1789
|
return spellPromise;
|
|
@@ -1766,13 +1792,14 @@ function addToUserDict(word, sp) {
|
|
|
1766
1792
|
try {
|
|
1767
1793
|
const raw = localStorage.getItem(USER_DICT_KEY);
|
|
1768
1794
|
const arr = raw ? JSON.parse(raw) : [];
|
|
1769
|
-
if (arr.includes(word))
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1795
|
+
if (!arr.includes(word)) {
|
|
1796
|
+
arr.push(word);
|
|
1797
|
+
localStorage.setItem(USER_DICT_KEY, JSON.stringify(arr));
|
|
1798
|
+
}
|
|
1773
1799
|
} catch {
|
|
1774
1800
|
}
|
|
1775
1801
|
sp.add(word);
|
|
1802
|
+
addUserDictWord(word).catch((e) => console.error("[spell] addUserDictWord:", e));
|
|
1776
1803
|
}
|
|
1777
1804
|
function decorate(editor2, sp) {
|
|
1778
1805
|
const body = editor2.getBody?.();
|
|
@@ -2176,6 +2203,7 @@ var init_spellcheck = __esm({
|
|
|
2176
2203
|
"client/compose/spellcheck.js"() {
|
|
2177
2204
|
"use strict";
|
|
2178
2205
|
import_nspell = __toESM(require_lib(), 1);
|
|
2206
|
+
init_api_client();
|
|
2179
2207
|
USER_DICT_KEY = "mailx-user-dict";
|
|
2180
2208
|
MARKER_ATTR = "data-mailx-spellerror";
|
|
2181
2209
|
DECORATE_DEBOUNCE_MS = 1200;
|
|
@@ -3895,14 +3923,28 @@ function waitForParentInit(maxMs) {
|
|
|
3895
3923
|
editor.onContentChange(scheduleDraftSave);
|
|
3896
3924
|
draftTimer = setInterval(saveDraft2, DRAFT_INTERVAL_MS);
|
|
3897
3925
|
let lastPolledHtml = editor.getHtml();
|
|
3926
|
+
let _pollBackoffSkips = 0;
|
|
3927
|
+
let _pollSkipsRemaining = 0;
|
|
3898
3928
|
setInterval(() => {
|
|
3899
3929
|
try {
|
|
3930
|
+
if (_pollSkipsRemaining > 0) {
|
|
3931
|
+
_pollSkipsRemaining--;
|
|
3932
|
+
return;
|
|
3933
|
+
}
|
|
3900
3934
|
const current = editor.getHtml();
|
|
3901
3935
|
if (current === lastPolledHtml) return;
|
|
3902
3936
|
lastPolledHtml = current;
|
|
3903
3937
|
markComposeDirty();
|
|
3904
3938
|
lastDraftContent = "";
|
|
3905
|
-
|
|
3939
|
+
const wasFailing = draftSaveFailed;
|
|
3940
|
+
saveDraft2().then(() => {
|
|
3941
|
+
if (!draftSaveFailed) _pollBackoffSkips = 0;
|
|
3942
|
+
}).catch(() => {
|
|
3943
|
+
});
|
|
3944
|
+
if (wasFailing || draftSaveFailed) {
|
|
3945
|
+
_pollBackoffSkips = Math.min(_pollBackoffSkips + 1, 7);
|
|
3946
|
+
_pollSkipsRemaining = _pollBackoffSkips;
|
|
3947
|
+
}
|
|
3906
3948
|
} catch {
|
|
3907
3949
|
}
|
|
3908
3950
|
}, 4e3);
|