@bobfrankston/rmfmail 1.2.112 → 1.2.114
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/TODO.md +5 -5
- package/bin/mailx.js +72 -3
- package/bin/mailx.js.map +1 -1
- package/bin/mailx.ts +62 -3
- package/client/android-bootstrap.bundle.js +60 -3
- package/client/android-bootstrap.bundle.js.map +2 -2
- package/client/app.bundle.js +42 -0
- package/client/app.bundle.js.map +2 -2
- package/client/app.js +58 -0
- package/client/app.js.map +1 -1
- package/client/app.ts +60 -0
- package/client/compose/compose.bundle.js +50 -5
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/compose/compose.ts +13 -5
- package/client/compose/spellcheck-core.js +59 -3
- package/client/compose/spellcheck-core.js.map +1 -1
- package/client/compose/spellcheck-core.ts +58 -3
- package/client/compose/spellcheck.js +15 -6
- package/client/compose/spellcheck.js.map +1 -1
- package/client/compose/spellcheck.ts +15 -6
- package/package.json +1 -1
- package/packages/mailx-imap/index.d.ts +4 -1
- package/packages/mailx-imap/index.d.ts.map +1 -1
- package/packages/mailx-imap/index.js +59 -5
- package/packages/mailx-imap/index.js.map +1 -1
- package/packages/mailx-imap/index.ts +55 -5
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +1 -1
- package/packages/mailx-store-web/android-bootstrap.js +48 -3
- package/packages/mailx-store-web/android-bootstrap.js.map +1 -1
- package/packages/mailx-store-web/android-bootstrap.ts +47 -4
- package/packages/mailx-store-web/package.json +1 -1
- package/packages/mailx-store-web/web-service.d.ts +21 -0
- package/packages/mailx-store-web/web-service.d.ts.map +1 -1
- package/packages/mailx-store-web/web-service.js +11 -0
- package/packages/mailx-store-web/web-service.js.map +1 -1
- package/packages/mailx-store-web/web-service.ts +11 -0
- package/packages/mailx-types/mailx-api.d.ts +22 -0
- package/packages/mailx-types/mailx-api.d.ts.map +1 -1
- package/packages/mailx-types/mailx-api.ts +7 -0
- package/packages/mailx-types/package.json +1 -1
|
@@ -1902,14 +1902,22 @@ let wordEditId: string | null = null;
|
|
|
1902
1902
|
// the user returns from Word). Null when no hint is showing.
|
|
1903
1903
|
let extEditHintClose: (() => void) | null = null;
|
|
1904
1904
|
// Edit-in-Word is desktop-only — hide the button on Android where the file
|
|
1905
|
-
// system / external-editor path can't work.
|
|
1906
|
-
//
|
|
1905
|
+
// system / external-editor path can't work. The old check asked
|
|
1906
|
+
// `window.mailxapi?.platform` — but in the compose IFRAME the bridge lives
|
|
1907
|
+
// on the PARENT window (and parent property access is origin-sensitive in
|
|
1908
|
+
// the MAUI WebView), so the check silently failed and the button stayed
|
|
1909
|
+
// visible (2026-07-07 screenshot shows it). UA is synchronous and reliable
|
|
1910
|
+
// in the MAUI WebView; the bridge checks remain as a fallback. Also:
|
|
1911
|
+
// `hidden` loses to inline `display` — use style.display.
|
|
1907
1912
|
{
|
|
1908
|
-
|
|
1909
|
-
|
|
1913
|
+
let parentPlatform: string | undefined;
|
|
1914
|
+
try { parentPlatform = (window.parent as any)?.mailxapi?.platform; } catch { /* cross-origin */ }
|
|
1915
|
+
const isAndroid = /Android/i.test(navigator.userAgent)
|
|
1916
|
+
|| (window as any).mailxapi?.platform === "android"
|
|
1917
|
+
|| parentPlatform === "android";
|
|
1910
1918
|
if (isAndroid) {
|
|
1911
1919
|
const btn = document.getElementById("btn-edit-in-word") as HTMLElement | null;
|
|
1912
|
-
if (btn) btn.
|
|
1920
|
+
if (btn) btn.style.display = "none";
|
|
1913
1921
|
}
|
|
1914
1922
|
}
|
|
1915
1923
|
|
|
@@ -92,6 +92,57 @@ export function addToUserDict(word, sp) {
|
|
|
92
92
|
sp.add(word);
|
|
93
93
|
addUserDictWord(word).catch(e => console.error("[spell] addUserDictWord:", e));
|
|
94
94
|
}
|
|
95
|
+
/** Is this token spelled correctly? Wraps nspell.correct with the grammar-vs-
|
|
96
|
+
* spelling distinctions (Bob 2026-07-08):
|
|
97
|
+
* - A possessive 's (or trailing apostrophe) is grammar, not spelling —
|
|
98
|
+
* strip it before the dictionary lookup so "Daniell's" checks "Daniell".
|
|
99
|
+
* Hyphenated compounds don't reach here as one token — the tokenizers in
|
|
100
|
+
* scan()/getWordAtPoint split on hyphens so each part is checked alone. */
|
|
101
|
+
export function isWordCorrect(word, sp) {
|
|
102
|
+
let w = word.replace(/['’]+$/u, ""); // dogs' → dogs
|
|
103
|
+
w = w.replace(/['’][sS]$/u, ""); // Daniell's → Daniell
|
|
104
|
+
if (w.length < MIN_WORD_LEN)
|
|
105
|
+
return true;
|
|
106
|
+
return sp.correct(w);
|
|
107
|
+
}
|
|
108
|
+
// URL / email spans to exclude from spell-checking. A URL run continues over
|
|
109
|
+
// characters common in URLs (letters, digits, .-_~/:?#@$&+=%!*) and
|
|
110
|
+
// terminates on whitespace or other punctuation (comma, semicolon, quotes,
|
|
111
|
+
// brackets). Covers partially-typed URLs too (scheme:… / www.… match before
|
|
112
|
+
// the user finishes). Bare word.word domains ("iecc.com", "bob.ma") are
|
|
113
|
+
// included — autolink never converts those, so the scanner must skip them
|
|
114
|
+
// itself.
|
|
115
|
+
const URL_BODY = String.raw `[\w.\-~:/?#@$&+=%!*]`;
|
|
116
|
+
const SKIP_SPAN_RE = new RegExp(String.raw `(?:(?:[A-Za-z][A-Za-z\d.+-]{1,14}://|mailto:|tel:)${URL_BODY}+` + // scheme'd URL
|
|
117
|
+
String.raw `|www\.${URL_BODY}+` + // www.…
|
|
118
|
+
String.raw `|[\w.+\-]+@[\w\-]+(?:\.[\w\-]+)+` + // email
|
|
119
|
+
String.raw `|[\w\-]+(?:\.[A-Za-z][\w\-]*)+(?:/${URL_BODY}*)?)`, // bare domain [+path]
|
|
120
|
+
"g");
|
|
121
|
+
/** Character ranges of URL/email spans in `text`, as [start, end) pairs.
|
|
122
|
+
* Trailing sentence punctuation is left OUTSIDE the span — "example.com. Next"
|
|
123
|
+
* ends the URL before the "." (the dot belongs to the sentence). */
|
|
124
|
+
export function findSkipRanges(text) {
|
|
125
|
+
if (!/[.@:]/.test(text))
|
|
126
|
+
return []; // no URL/email possible — cheap out
|
|
127
|
+
const ranges = [];
|
|
128
|
+
SKIP_SPAN_RE.lastIndex = 0;
|
|
129
|
+
let m;
|
|
130
|
+
while ((m = SKIP_SPAN_RE.exec(text))) {
|
|
131
|
+
let end = m.index + m[0].length;
|
|
132
|
+
while (end > m.index && /[.,;:!?]/.test(text[end - 1]))
|
|
133
|
+
end--;
|
|
134
|
+
if (end > m.index)
|
|
135
|
+
ranges.push([m.index, end]);
|
|
136
|
+
}
|
|
137
|
+
return ranges;
|
|
138
|
+
}
|
|
139
|
+
/** Does [start, end) overlap any of the given skip ranges? */
|
|
140
|
+
export function inSkipRange(ranges, start, end) {
|
|
141
|
+
for (const [s, e] of ranges)
|
|
142
|
+
if (start < e && end > s)
|
|
143
|
+
return true;
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
95
146
|
/** Build a suggestion list: transpositions first (the single most common
|
|
96
147
|
* English typo class — "hte"→"the"), then nspell.suggest, deduped, capped at 7. */
|
|
97
148
|
export function buildSuggestionList(word, sp) {
|
|
@@ -234,9 +285,11 @@ export function getWordAtPoint(root, x, y) {
|
|
|
234
285
|
const text = node.data;
|
|
235
286
|
if (offset > text.length)
|
|
236
287
|
offset = text.length;
|
|
237
|
-
// Word boundary: letters
|
|
238
|
-
//
|
|
239
|
-
|
|
288
|
+
// Word boundary: letters and apostrophes. NO hyphen — hyphenated
|
|
289
|
+
// compounds are checked one part at a time (Bob 2026-07-08). Same
|
|
290
|
+
// tokenization as the walker in spellcheck.ts so both editors flag
|
|
291
|
+
// the same tokens.
|
|
292
|
+
const isWordChar = (c) => /[\p{L}'’]/u.test(c);
|
|
240
293
|
let start = offset;
|
|
241
294
|
while (start > 0 && isWordChar(text[start - 1]))
|
|
242
295
|
start--;
|
|
@@ -248,6 +301,9 @@ export function getWordAtPoint(root, x, y) {
|
|
|
248
301
|
const word = text.slice(start, end);
|
|
249
302
|
if (!/^[\p{L}]/u.test(word))
|
|
250
303
|
return null; // must start with a letter
|
|
304
|
+
// Clicks inside a plain-text URL or email address are not words.
|
|
305
|
+
if (inSkipRange(findSkipRanges(text), start, end))
|
|
306
|
+
return null;
|
|
251
307
|
return { word, node: node, start, end };
|
|
252
308
|
}
|
|
253
309
|
//# sourceMappingURL=spellcheck-core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spellcheck-core.js","sourceRoot":"","sources":["spellcheck-core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spellcheck-core.js","sourceRoot":"","sources":["spellcheck-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,6 +90,57 @@ export function addToUserDict(word: string, sp: NSpellInstance): void {
|
|
|
90
90
|
addUserDictWord(word).catch(e => console.error("[spell] addUserDictWord:", e));
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
/** Is this token spelled correctly? Wraps nspell.correct with the grammar-vs-
|
|
94
|
+
* spelling distinctions (Bob 2026-07-08):
|
|
95
|
+
* - A possessive 's (or trailing apostrophe) is grammar, not spelling —
|
|
96
|
+
* strip it before the dictionary lookup so "Daniell's" checks "Daniell".
|
|
97
|
+
* Hyphenated compounds don't reach here as one token — the tokenizers in
|
|
98
|
+
* scan()/getWordAtPoint split on hyphens so each part is checked alone. */
|
|
99
|
+
export function isWordCorrect(word: string, sp: NSpellInstance): boolean {
|
|
100
|
+
let w = word.replace(/['’]+$/u, ""); // dogs' → dogs
|
|
101
|
+
w = w.replace(/['’][sS]$/u, ""); // Daniell's → Daniell
|
|
102
|
+
if (w.length < MIN_WORD_LEN) return true;
|
|
103
|
+
return sp.correct(w);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// URL / email spans to exclude from spell-checking. A URL run continues over
|
|
107
|
+
// characters common in URLs (letters, digits, .-_~/:?#@$&+=%!*) and
|
|
108
|
+
// terminates on whitespace or other punctuation (comma, semicolon, quotes,
|
|
109
|
+
// brackets). Covers partially-typed URLs too (scheme:… / www.… match before
|
|
110
|
+
// the user finishes). Bare word.word domains ("iecc.com", "bob.ma") are
|
|
111
|
+
// included — autolink never converts those, so the scanner must skip them
|
|
112
|
+
// itself.
|
|
113
|
+
const URL_BODY = String.raw`[\w.\-~:/?#@$&+=%!*]`;
|
|
114
|
+
const SKIP_SPAN_RE = new RegExp(
|
|
115
|
+
String.raw`(?:(?:[A-Za-z][A-Za-z\d.+-]{1,14}://|mailto:|tel:)${URL_BODY}+` + // scheme'd URL
|
|
116
|
+
String.raw`|www\.${URL_BODY}+` + // www.…
|
|
117
|
+
String.raw`|[\w.+\-]+@[\w\-]+(?:\.[\w\-]+)+` + // email
|
|
118
|
+
String.raw`|[\w\-]+(?:\.[A-Za-z][\w\-]*)+(?:/${URL_BODY}*)?)`, // bare domain [+path]
|
|
119
|
+
"g",
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
/** Character ranges of URL/email spans in `text`, as [start, end) pairs.
|
|
123
|
+
* Trailing sentence punctuation is left OUTSIDE the span — "example.com. Next"
|
|
124
|
+
* ends the URL before the "." (the dot belongs to the sentence). */
|
|
125
|
+
export function findSkipRanges(text: string): Array<[number, number]> {
|
|
126
|
+
if (!/[.@:]/.test(text)) return []; // no URL/email possible — cheap out
|
|
127
|
+
const ranges: Array<[number, number]> = [];
|
|
128
|
+
SKIP_SPAN_RE.lastIndex = 0;
|
|
129
|
+
let m: RegExpExecArray | null;
|
|
130
|
+
while ((m = SKIP_SPAN_RE.exec(text))) {
|
|
131
|
+
let end = m.index + m[0].length;
|
|
132
|
+
while (end > m.index && /[.,;:!?]/.test(text[end - 1])) end--;
|
|
133
|
+
if (end > m.index) ranges.push([m.index, end]);
|
|
134
|
+
}
|
|
135
|
+
return ranges;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/** Does [start, end) overlap any of the given skip ranges? */
|
|
139
|
+
export function inSkipRange(ranges: Array<[number, number]>, start: number, end: number): boolean {
|
|
140
|
+
for (const [s, e] of ranges) if (start < e && end > s) return true;
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
|
|
93
144
|
/** Build a suggestion list: transpositions first (the single most common
|
|
94
145
|
* English typo class — "hte"→"the"), then nspell.suggest, deduped, capped at 7. */
|
|
95
146
|
export function buildSuggestionList(word: string, sp: NSpellInstance): string[] {
|
|
@@ -228,9 +279,11 @@ export function getWordAtPoint(
|
|
|
228
279
|
}
|
|
229
280
|
const text = (node as Text).data;
|
|
230
281
|
if (offset > text.length) offset = text.length;
|
|
231
|
-
// Word boundary: letters
|
|
232
|
-
//
|
|
233
|
-
|
|
282
|
+
// Word boundary: letters and apostrophes. NO hyphen — hyphenated
|
|
283
|
+
// compounds are checked one part at a time (Bob 2026-07-08). Same
|
|
284
|
+
// tokenization as the walker in spellcheck.ts so both editors flag
|
|
285
|
+
// the same tokens.
|
|
286
|
+
const isWordChar = (c: string) => /[\p{L}'’]/u.test(c);
|
|
234
287
|
let start = offset;
|
|
235
288
|
while (start > 0 && isWordChar(text[start - 1])) start--;
|
|
236
289
|
let end = offset;
|
|
@@ -238,5 +291,7 @@ export function getWordAtPoint(
|
|
|
238
291
|
if (end - start < MIN_WORD_LEN) return null;
|
|
239
292
|
const word = text.slice(start, end);
|
|
240
293
|
if (!/^[\p{L}]/u.test(word)) return null; // must start with a letter
|
|
294
|
+
// Clicks inside a plain-text URL or email address are not words.
|
|
295
|
+
if (inSkipRange(findSkipRanges(text), start, end)) return null;
|
|
241
296
|
return { word, node: node as Text, start, end };
|
|
242
297
|
}
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
* user-dictionary persistence are all shared with the Quill adapter via
|
|
37
37
|
* spellcheck-core.ts.
|
|
38
38
|
*/
|
|
39
|
-
import { getSpell, addToUserDict, buildSuggestionList, showSuggestionsMenu, getWordAtPoint, MIN_WORD_LEN, SKIP_TAGS, } from "./spellcheck-core.js";
|
|
39
|
+
import { getSpell, addToUserDict, buildSuggestionList, showSuggestionsMenu, getWordAtPoint, isWordCorrect, findSkipRanges, inSkipRange, MIN_WORD_LEN, SKIP_TAGS, } from "./spellcheck-core.js";
|
|
40
40
|
// Re-scan after the user pauses. Long enough not to fire mid-word; short
|
|
41
41
|
// enough to feel responsive. Nothing about this debounce affects typing
|
|
42
42
|
// stability anymore (the scan never touches the content), so it's purely a
|
|
@@ -125,19 +125,28 @@ export function wireSpellcheck(editor) {
|
|
|
125
125
|
const sx = body.scrollLeft;
|
|
126
126
|
const sy = body.scrollTop;
|
|
127
127
|
const frag = doc.createDocumentFragment();
|
|
128
|
-
// A word starts with a letter, then letters / apostrophes
|
|
129
|
-
|
|
128
|
+
// A word starts with a letter, then letters / apostrophes. NO hyphen:
|
|
129
|
+
// hyphenated compounds are spell-checked one part at a time (the
|
|
130
|
+
// hyphenation itself is grammar, not spelling — Bob 2026-07-08).
|
|
131
|
+
const wordRe = /[\p{L}][\p{L}'’]*/gu;
|
|
130
132
|
for (let n = walker.nextNode(); n; n = walker.nextNode()) {
|
|
131
133
|
const text = n.data;
|
|
132
134
|
if (!text || text.length < MIN_WORD_LEN)
|
|
133
135
|
continue;
|
|
136
|
+
// Plain-text URLs and email addresses are never spell-checked —
|
|
137
|
+
// including partially-typed ones (autolinked <a> are already
|
|
138
|
+
// excluded via SKIP_TAGS; this covers text autolink hasn't, or
|
|
139
|
+
// never will, convert — e.g. bare domains).
|
|
140
|
+
const skip = findSkipRanges(text);
|
|
134
141
|
wordRe.lastIndex = 0;
|
|
135
142
|
let m;
|
|
136
143
|
while ((m = wordRe.exec(text))) {
|
|
137
144
|
const w = m[0];
|
|
138
145
|
if (w.length < MIN_WORD_LEN)
|
|
139
146
|
continue;
|
|
140
|
-
if (
|
|
147
|
+
if (inSkipRange(skip, m.index, m.index + w.length))
|
|
148
|
+
continue;
|
|
149
|
+
if (isWordCorrect(w, sp))
|
|
141
150
|
continue;
|
|
142
151
|
const r = doc.createRange();
|
|
143
152
|
r.setStart(n, m.index);
|
|
@@ -223,8 +232,8 @@ export function wireSpellcheck(editor) {
|
|
|
223
232
|
return;
|
|
224
233
|
const hit = getWordAtPoint(body, e.clientX, e.clientY);
|
|
225
234
|
if (!hit)
|
|
226
|
-
return; // not on a word
|
|
227
|
-
if (
|
|
235
|
+
return; // not on a word (or in a URL/email)
|
|
236
|
+
if (isWordCorrect(hit.word, sp))
|
|
228
237
|
return; // spelled correctly — no menu
|
|
229
238
|
e.preventDefault();
|
|
230
239
|
e.stopPropagation();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spellcheck.js","sourceRoot":"","sources":["spellcheck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EACH,QAAQ,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EACjE,cAAc,EAAE,YAAY,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"spellcheck.js","sourceRoot":"","sources":["spellcheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
*/
|
|
39
39
|
import {
|
|
40
40
|
getSpell, addToUserDict, buildSuggestionList, showSuggestionsMenu,
|
|
41
|
-
getWordAtPoint,
|
|
41
|
+
getWordAtPoint, isWordCorrect, findSkipRanges, inSkipRange,
|
|
42
|
+
MIN_WORD_LEN, SKIP_TAGS, type NSpellInstance, type MenuItem,
|
|
42
43
|
} from "./spellcheck-core.js";
|
|
43
44
|
|
|
44
45
|
// Re-scan after the user pauses. Long enough not to fire mid-word; short
|
|
@@ -131,18 +132,26 @@ export function wireSpellcheck(editor: any): void {
|
|
|
131
132
|
const sx = body.scrollLeft;
|
|
132
133
|
const sy = body.scrollTop;
|
|
133
134
|
const frag = doc.createDocumentFragment();
|
|
134
|
-
// A word starts with a letter, then letters / apostrophes
|
|
135
|
-
|
|
135
|
+
// A word starts with a letter, then letters / apostrophes. NO hyphen:
|
|
136
|
+
// hyphenated compounds are spell-checked one part at a time (the
|
|
137
|
+
// hyphenation itself is grammar, not spelling — Bob 2026-07-08).
|
|
138
|
+
const wordRe = /[\p{L}][\p{L}'’]*/gu;
|
|
136
139
|
|
|
137
140
|
for (let n = walker.nextNode() as Text | null; n; n = walker.nextNode() as Text | null) {
|
|
138
141
|
const text = n.data;
|
|
139
142
|
if (!text || text.length < MIN_WORD_LEN) continue;
|
|
143
|
+
// Plain-text URLs and email addresses are never spell-checked —
|
|
144
|
+
// including partially-typed ones (autolinked <a> are already
|
|
145
|
+
// excluded via SKIP_TAGS; this covers text autolink hasn't, or
|
|
146
|
+
// never will, convert — e.g. bare domains).
|
|
147
|
+
const skip = findSkipRanges(text);
|
|
140
148
|
wordRe.lastIndex = 0;
|
|
141
149
|
let m: RegExpExecArray | null;
|
|
142
150
|
while ((m = wordRe.exec(text))) {
|
|
143
151
|
const w = m[0];
|
|
144
152
|
if (w.length < MIN_WORD_LEN) continue;
|
|
145
|
-
if (
|
|
153
|
+
if (inSkipRange(skip, m.index, m.index + w.length)) continue;
|
|
154
|
+
if (isWordCorrect(w, sp)) continue;
|
|
146
155
|
const r = doc.createRange();
|
|
147
156
|
r.setStart(n, m.index);
|
|
148
157
|
r.setEnd(n, m.index + w.length);
|
|
@@ -224,8 +233,8 @@ export function wireSpellcheck(editor: any): void {
|
|
|
224
233
|
const body: HTMLElement | null = editor.getBody?.();
|
|
225
234
|
if (!body || !sp) return;
|
|
226
235
|
const hit = getWordAtPoint(body, e.clientX, e.clientY);
|
|
227
|
-
if (!hit) return;
|
|
228
|
-
if (
|
|
236
|
+
if (!hit) return; // not on a word (or in a URL/email)
|
|
237
|
+
if (isWordCorrect(hit.word, sp)) return; // spelled correctly — no menu
|
|
229
238
|
e.preventDefault();
|
|
230
239
|
e.stopPropagation();
|
|
231
240
|
|
package/package.json
CHANGED
|
@@ -701,7 +701,10 @@ export declare class ImapManager extends EventEmitter {
|
|
|
701
701
|
* contacts added or removed in this run. */
|
|
702
702
|
syncGoogleContacts(accountId: string): Promise<number>;
|
|
703
703
|
private syncGoogleContactsImpl;
|
|
704
|
-
/** Sync contacts for all OAuth accounts
|
|
704
|
+
/** Sync contacts for all GOOGLE OAuth accounts. The People API only
|
|
705
|
+
* accepts Google tokens — feeding it an Outlook/AOL OAuth token just
|
|
706
|
+
* logged `API error for outlook: 401` on every periodic tick. Outlook
|
|
707
|
+
* contacts belong to the Graph provider (blocked on Azure app reg). */
|
|
705
708
|
syncAllContacts(): Promise<void>;
|
|
706
709
|
/** Shut down all watchers and timers */
|
|
707
710
|
shutdown(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|
|
@@ -906,7 +906,54 @@ export class ImapManager extends EventEmitter {
|
|
|
906
906
|
// to re-enable for a debugging session. Default is quiet.
|
|
907
907
|
const imapTrace = process.env.RMFMAIL_IMAP_TRACE === "1";
|
|
908
908
|
const cfgWithVerbose = (imapTrace && (purpose === "ops" || purpose === "fast")) ? { ...config, verbose: true } : config;
|
|
909
|
-
|
|
909
|
+
// C121: connect-phase progress. Wrap the injected transport so the
|
|
910
|
+
// socket phase (DNS+TCP+TLS inside transport.connect) is visibly
|
|
911
|
+
// distinct from the IMAP handshake (greeting + LOGIN, which run
|
|
912
|
+
// inside client.connect after the socket is up). The client shows
|
|
913
|
+
// "Connecting to <host> (<phase>, N.Ns)" from these events, so
|
|
914
|
+
// "DNS/TCP/TLS hung" vs "greeting missing" vs "LOGIN slow" are
|
|
915
|
+
// distinguishable at a glance instead of one opaque long wait.
|
|
916
|
+
let connT0 = Date.now();
|
|
917
|
+
const phaseT = {};
|
|
918
|
+
const emitPhase = (phase, detail) => {
|
|
919
|
+
phaseT[phase] = Date.now();
|
|
920
|
+
this.emit("connectProgress", accountId, {
|
|
921
|
+
host, purpose, phase, detail,
|
|
922
|
+
elapsedMs: Date.now() - connT0,
|
|
923
|
+
});
|
|
924
|
+
};
|
|
925
|
+
const phaseTimings = () => Object.entries(phaseT).map(([p, t]) => `${p}@${t - connT0}ms`).join(" ");
|
|
926
|
+
const wrappedFactory = () => {
|
|
927
|
+
const t = this.transportFactory();
|
|
928
|
+
const origTransportConnect = t.connect.bind(t);
|
|
929
|
+
t.connect = async (h, p, tls, sni) => {
|
|
930
|
+
emitPhase("socket");
|
|
931
|
+
await origTransportConnect(h, p, tls, sni);
|
|
932
|
+
emitPhase("handshake");
|
|
933
|
+
};
|
|
934
|
+
return t;
|
|
935
|
+
};
|
|
936
|
+
client = new CompatImapClient(cfgWithVerbose, wrappedFactory);
|
|
937
|
+
const origClientConnect = client.connect?.bind(client);
|
|
938
|
+
if (origClientConnect) {
|
|
939
|
+
client.connect = async (...a) => {
|
|
940
|
+
// Clock starts when the connect actually begins — clients
|
|
941
|
+
// are constructed eagerly but connect lazily on first use.
|
|
942
|
+
connT0 = Date.now();
|
|
943
|
+
try {
|
|
944
|
+
const r = await origClientConnect(...a);
|
|
945
|
+
emitPhase("done");
|
|
946
|
+
const total = Date.now() - connT0;
|
|
947
|
+
if (total > 3000)
|
|
948
|
+
console.log(` [conn-slow] ${accountId} (${purpose}): connect took ${total}ms — ${phaseTimings()}`);
|
|
949
|
+
return r;
|
|
950
|
+
}
|
|
951
|
+
catch (e) {
|
|
952
|
+
emitPhase("failed", e?.message || String(e));
|
|
953
|
+
throw e;
|
|
954
|
+
}
|
|
955
|
+
};
|
|
956
|
+
}
|
|
910
957
|
}
|
|
911
958
|
catch (e) {
|
|
912
959
|
releaseHostSlot();
|
|
@@ -5996,13 +6043,20 @@ export class ImapManager extends EventEmitter {
|
|
|
5996
6043
|
}
|
|
5997
6044
|
return changed;
|
|
5998
6045
|
}
|
|
5999
|
-
/** Sync contacts for all OAuth accounts
|
|
6046
|
+
/** Sync contacts for all GOOGLE OAuth accounts. The People API only
|
|
6047
|
+
* accepts Google tokens — feeding it an Outlook/AOL OAuth token just
|
|
6048
|
+
* logged `API error for outlook: 401` on every periodic tick. Outlook
|
|
6049
|
+
* contacts belong to the Graph provider (blocked on Azure app reg). */
|
|
6000
6050
|
async syncAllContacts() {
|
|
6001
6051
|
const settings = loadSettings();
|
|
6002
6052
|
for (const account of settings.accounts) {
|
|
6003
|
-
if (account.imap.auth
|
|
6004
|
-
|
|
6005
|
-
|
|
6053
|
+
if (account.imap.auth !== "oauth2")
|
|
6054
|
+
continue;
|
|
6055
|
+
if (!(account.enabled || account.syncContacts))
|
|
6056
|
+
continue;
|
|
6057
|
+
if (!this.isGmailAccount(account.id))
|
|
6058
|
+
continue;
|
|
6059
|
+
await this.syncGoogleContacts(account.id);
|
|
6006
6060
|
}
|
|
6007
6061
|
}
|
|
6008
6062
|
/** Shut down all watchers and timers */
|