@bobfrankston/rmfmail 1.2.233 → 1.2.235
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 +6 -1
- package/client/app.bundle.js.map +1 -1
- package/client/compose/compose.bundle.js +23 -3
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/compose/compose.js +42 -4
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +32 -3
- package/client/lib/api-client.ts +1 -1
- package/package.json +5 -5
- package/packages/mailx-service/index.d.ts +21 -2
- package/packages/mailx-service/index.d.ts.map +1 -1
- package/packages/mailx-service/index.js +102 -7
- package/packages/mailx-service/index.js.map +1 -1
- package/packages/mailx-service/index.ts +113 -9
- package/packages/mailx-service/test/word-edit-guard.test.mjs +92 -0
- package/packages/mailx-types/mailx-api.d.ts +3 -0
- package/packages/mailx-types/mailx-api.d.ts.map +1 -1
- package/packages/mailx-types/mailx-api.ts +3 -1
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-40004 → node_modules.npmglobalize-stash-53964}/.package-lock.json +0 -0
|
@@ -1097,9 +1097,34 @@ export class MailxService implements MailxApi {
|
|
|
1097
1097
|
|
|
1098
1098
|
// ── External edit in Microsoft Word ──
|
|
1099
1099
|
|
|
1100
|
-
/** Per-session map: editId → temp file path
|
|
1101
|
-
* Lives in memory only — cleared when the user closes
|
|
1102
|
-
|
|
1100
|
+
/** Per-session map: editId → temp file path, which editor got it, and
|
|
1101
|
+
* watcher cleanup. Lives in memory only — cleared when the user closes
|
|
1102
|
+
* compose or sends. */
|
|
1103
|
+
private wordEdits = new Map<string, {
|
|
1104
|
+
path: string;
|
|
1105
|
+
stop: () => void;
|
|
1106
|
+
opener: string;
|
|
1107
|
+
/** The compose HTML this file was converted FROM. Lets a later click
|
|
1108
|
+
* tell "nothing has changed, just show me the editor again" from
|
|
1109
|
+
* "I've typed more since, give me a fresh document". */
|
|
1110
|
+
html: string;
|
|
1111
|
+
/** Set when the editor is known to have closed the document (the
|
|
1112
|
+
* win32 Word autosave sidecar reports this). A closed session must
|
|
1113
|
+
* not be re-activated — the file on disk no longer reflects what the
|
|
1114
|
+
* user would expect to see. */
|
|
1115
|
+
closed?: boolean;
|
|
1116
|
+
}>();
|
|
1117
|
+
|
|
1118
|
+
/** In-flight opens, keyed by editId. Converting a body to .docx and
|
|
1119
|
+
* launching Word takes seconds, during which the button looks dead — so
|
|
1120
|
+
* the user clicks it again, and again. Each of those clicks used to
|
|
1121
|
+
* convert its own timestamped file and spawn its own Word window, and
|
|
1122
|
+
* because each open re-armed the watcher on ITS file, only the LAST
|
|
1123
|
+
* window's saves came back: editing in one of the earlier windows was
|
|
1124
|
+
* silently discarded (Bob 2026-08-09: "it shouldn't spawn multiple
|
|
1125
|
+
* instances but just ignore extras"). Extra clicks now join the first
|
|
1126
|
+
* open's promise instead of starting a second one. */
|
|
1127
|
+
private wordEditOpens = new Map<string, Promise<{ ok: boolean; path: string; opener: string; reused?: boolean; superseded?: boolean }>>();
|
|
1103
1128
|
|
|
1104
1129
|
/** Hand the current compose body off to Microsoft Word for editing. Writes
|
|
1105
1130
|
* the HTML to `~/.mailx/external-edit/<editId>.html`, opens it via the
|
|
@@ -1111,7 +1136,79 @@ export class MailxService implements MailxApi {
|
|
|
1111
1136
|
* Windows-only by current default — on Mac/Linux there's no equivalent
|
|
1112
1137
|
* reliable round-trip. The compose toolbar should hide the button on
|
|
1113
1138
|
* non-win32 platforms. */
|
|
1114
|
-
async openInWord(editId: string, html: string, fromPopout = false): Promise<{ ok: boolean; path: string; opener: string }> {
|
|
1139
|
+
async openInWord(editId: string, html: string, fromPopout = false): Promise<{ ok: boolean; path: string; opener: string; reused?: boolean; superseded?: boolean }> {
|
|
1140
|
+
// A second click while the first open is still working joins it —
|
|
1141
|
+
// same promise, same file, one Word window.
|
|
1142
|
+
const inFlight = this.wordEditOpens.get(editId);
|
|
1143
|
+
if (inFlight) {
|
|
1144
|
+
console.log(` [word-edit] open already in progress for ${editId} — ignoring extra click`);
|
|
1145
|
+
return inFlight;
|
|
1146
|
+
}
|
|
1147
|
+
// Re-activate the existing document rather than converting a second
|
|
1148
|
+
// one — but only while it is plausibly still OPEN in the editor with
|
|
1149
|
+
// the SAME content we handed over. Two independent signals, because
|
|
1150
|
+
// neither covers every platform:
|
|
1151
|
+
// - `closed` is definitive but exists only for Word on Windows,
|
|
1152
|
+
// where the autosave sidecar sees the document go away;
|
|
1153
|
+
// - an unchanged body means a re-conversion would produce the same
|
|
1154
|
+
// document anyway, so re-opening the existing one is right for
|
|
1155
|
+
// any editor.
|
|
1156
|
+
// Re-launching the same path makes the OS raise the window that
|
|
1157
|
+
// already holds it instead of opening a second copy. Newer
|
|
1158
|
+
// compose-side text is deliberately NOT pushed into an open document:
|
|
1159
|
+
// that would fight whatever the user is typing in Word.
|
|
1160
|
+
const live = this.wordEdits.get(editId);
|
|
1161
|
+
const liveOnDisk = !!live && !live.closed && fs.existsSync(live.path);
|
|
1162
|
+
if (liveOnDisk && live!.html === html) {
|
|
1163
|
+
console.log(` [word-edit] ${live!.path} already open via ${live!.opener} — re-activating, not re-opening`);
|
|
1164
|
+
void this.relaunchExternal(live!.path, live!.opener);
|
|
1165
|
+
return { ok: true, path: live!.path, opener: live!.opener, reused: true };
|
|
1166
|
+
}
|
|
1167
|
+
// Body changed since the hand-off: the user is asking for a document
|
|
1168
|
+
// that reflects what rmfmail holds now, so a fresh one it is. The old
|
|
1169
|
+
// window may still be sitting there, and openInWordUncached stops its
|
|
1170
|
+
// watcher — saves made in it from here on go nowhere. Report that so
|
|
1171
|
+
// the UI can say it out loud; silently ignoring those saves is the
|
|
1172
|
+
// failure mode this whole change exists to remove.
|
|
1173
|
+
const superseded = liveOnDisk;
|
|
1174
|
+
const open = this.openInWordUncached(editId, html, fromPopout)
|
|
1175
|
+
.then(r => (superseded ? { ...r, superseded: true } : r))
|
|
1176
|
+
.finally(() => { this.wordEditOpens.delete(editId); });
|
|
1177
|
+
this.wordEditOpens.set(editId, open);
|
|
1178
|
+
return open;
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
/** Re-launch an already-written external-edit file. Same launch commands
|
|
1182
|
+
* as the first open; the OS activates the existing window when the
|
|
1183
|
+
* document is already loaded. Failure is not fatal — the file is there
|
|
1184
|
+
* and the watcher is still armed. */
|
|
1185
|
+
private async relaunchExternal(filePath: string, opener: string): Promise<void> {
|
|
1186
|
+
try {
|
|
1187
|
+
const { spawn } = await import("node:child_process");
|
|
1188
|
+
const go = (cmd: string, args: string[]) => {
|
|
1189
|
+
const child = spawn(cmd, args, { detached: true, stdio: "ignore", windowsHide: true });
|
|
1190
|
+
child.on("error", () => { /* editor vanished — nothing to do */ });
|
|
1191
|
+
child.unref();
|
|
1192
|
+
};
|
|
1193
|
+
if (process.platform === "win32") {
|
|
1194
|
+
if (opener === "word") go("cmd", ["/c", "start", "", "/B", "winword.exe", filePath]);
|
|
1195
|
+
else if (opener === "libreoffice") go("cmd", ["/c", "start", "", "/B", "soffice.exe", "--writer", filePath]);
|
|
1196
|
+
else go("cmd", ["/c", "start", "", filePath]);
|
|
1197
|
+
return;
|
|
1198
|
+
}
|
|
1199
|
+
if (process.platform === "darwin") {
|
|
1200
|
+
if (opener === "word") go("open", ["-a", "Microsoft Word", filePath]);
|
|
1201
|
+
else if (opener === "libreoffice") go("open", ["-a", "LibreOffice", filePath]);
|
|
1202
|
+
else go("open", [filePath]);
|
|
1203
|
+
return;
|
|
1204
|
+
}
|
|
1205
|
+
go("xdg-open", [filePath]);
|
|
1206
|
+
} catch (e: any) {
|
|
1207
|
+
console.warn(` [word-edit] re-activate failed: ${e?.message || e}`);
|
|
1208
|
+
}
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
private async openInWordUncached(editId: string, html: string, fromPopout = false): Promise<{ ok: boolean; path: string; opener: string }> {
|
|
1115
1212
|
const dir = path.join(getConfigDir(), "external-edit");
|
|
1116
1213
|
fs.mkdirSync(dir, { recursive: true });
|
|
1117
1214
|
// Pre-convert to .docx (Word's native format) so Save in Word writes
|
|
@@ -1179,7 +1276,7 @@ export class MailxService implements MailxApi {
|
|
|
1179
1276
|
const htmlPath = path.join(dir, `${fileBase}.html`);
|
|
1180
1277
|
fs.writeFileSync(htmlPath, wrapped, "utf-8");
|
|
1181
1278
|
// Use the .html path instead of .docx for both launch and watch.
|
|
1182
|
-
return this.openExternalHtmlFallback(editId, htmlPath);
|
|
1279
|
+
return this.openExternalHtmlFallback(editId, htmlPath, html);
|
|
1183
1280
|
}
|
|
1184
1281
|
|
|
1185
1282
|
// Stop any existing watcher for this edit (re-open re-arms cleanly).
|
|
@@ -1297,7 +1394,14 @@ export class MailxService implements MailxApi {
|
|
|
1297
1394
|
// just close()). Raising main over a compose POPOUT would
|
|
1298
1395
|
// bury the very window the user needs, so the forwarder
|
|
1299
1396
|
// uses this to skip the focus in that case.
|
|
1300
|
-
if (code === 0)
|
|
1397
|
+
if (code === 0) {
|
|
1398
|
+
// Document closed: the next Edit-in-Word click must
|
|
1399
|
+
// convert afresh rather than re-raise a window that
|
|
1400
|
+
// is no longer there.
|
|
1401
|
+
const entry = this.wordEdits.get(editId);
|
|
1402
|
+
if (entry) entry.closed = true;
|
|
1403
|
+
this.imapManager.emit("wordEditClosed", { editId, fromPopout });
|
|
1404
|
+
}
|
|
1301
1405
|
});
|
|
1302
1406
|
console.log(` [word-edit] autosave sidecar armed — closing Word is the only step`);
|
|
1303
1407
|
} catch (e: any) {
|
|
@@ -1368,7 +1472,7 @@ export class MailxService implements MailxApi {
|
|
|
1368
1472
|
if (debounce) clearTimeout(debounce);
|
|
1369
1473
|
try { autosaveChild?.kill(); } catch { /* */ }
|
|
1370
1474
|
};
|
|
1371
|
-
this.wordEdits.set(editId, { path: filePath, stop });
|
|
1475
|
+
this.wordEdits.set(editId, { path: filePath, stop, opener, html });
|
|
1372
1476
|
|
|
1373
1477
|
return { ok: opener !== "none", path: filePath, opener };
|
|
1374
1478
|
}
|
|
@@ -1377,7 +1481,7 @@ export class MailxService implements MailxApi {
|
|
|
1377
1481
|
* .html-based flow: writes <editId>.html, watches it, emits the body
|
|
1378
1482
|
* content on save. User has to Save-As-Web-Page in Word for the file
|
|
1379
1483
|
* to update — but at least the edit path works. */
|
|
1380
|
-
private async openExternalHtmlFallback(editId: string, filePath: string): Promise<{ ok: boolean; path: string; opener: string }> {
|
|
1484
|
+
private async openExternalHtmlFallback(editId: string, filePath: string, html: string): Promise<{ ok: boolean; path: string; opener: string }> {
|
|
1381
1485
|
const dir = path.dirname(filePath);
|
|
1382
1486
|
this.wordEdits.get(editId)?.stop();
|
|
1383
1487
|
const { spawn } = await import("node:child_process");
|
|
@@ -1445,7 +1549,7 @@ export class MailxService implements MailxApi {
|
|
|
1445
1549
|
}, 300);
|
|
1446
1550
|
});
|
|
1447
1551
|
const stop = () => { try { watcher.close(); } catch { /* */ } if (debounce) clearTimeout(debounce); };
|
|
1448
|
-
this.wordEdits.set(editId, { path: filePath, stop });
|
|
1552
|
+
this.wordEdits.set(editId, { path: filePath, stop, opener, html });
|
|
1449
1553
|
return { ok: opener !== "none", path: filePath, opener };
|
|
1450
1554
|
}
|
|
1451
1555
|
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exercises the openInWord de-duplication on the REAL compiled service class,
|
|
3
|
+
* with only the expensive tail (convert + launch) stubbed — the guard itself,
|
|
4
|
+
* the session map and the flags are the shipped code.
|
|
5
|
+
*/
|
|
6
|
+
import fs from "node:fs";
|
|
7
|
+
import path from "node:path";
|
|
8
|
+
import os from "node:os";
|
|
9
|
+
import assert from "node:assert";
|
|
10
|
+
|
|
11
|
+
const { MailxService } = await import("file:///Y:/dev/email/mailx/app/packages/mailx-service/index.js");
|
|
12
|
+
|
|
13
|
+
const svc = Object.create(MailxService.prototype);
|
|
14
|
+
svc.wordEdits = new Map();
|
|
15
|
+
svc.wordEditOpens = new Map();
|
|
16
|
+
|
|
17
|
+
const dir = fs.mkdtempSync(path.join(os.tmpdir(), "wordguard-"));
|
|
18
|
+
let uncachedCalls = 0;
|
|
19
|
+
let relaunches = 0;
|
|
20
|
+
let resolveGate = null;
|
|
21
|
+
|
|
22
|
+
// stub the expensive tail: pretend to convert + launch, register the session
|
|
23
|
+
svc.openInWordUncached = async (editId, html) => {
|
|
24
|
+
uncachedCalls++;
|
|
25
|
+
if (resolveGate) await resolveGate; // hold the "conversion" open
|
|
26
|
+
const filePath = path.join(dir, `${editId}-${uncachedCalls}.docx`);
|
|
27
|
+
fs.writeFileSync(filePath, "docx");
|
|
28
|
+
svc.wordEdits.get(editId)?.stop?.();
|
|
29
|
+
svc.wordEdits.set(editId, { path: filePath, stop: () => {}, opener: "word", html });
|
|
30
|
+
return { ok: true, path: filePath, opener: "word" };
|
|
31
|
+
};
|
|
32
|
+
svc.relaunchExternal = async () => { relaunches++; };
|
|
33
|
+
|
|
34
|
+
const ID = "compose-1";
|
|
35
|
+
const BODY = "<p>hello</p>";
|
|
36
|
+
|
|
37
|
+
// 1. Rapid repeat clicks during a slow open → ONE conversion, one window.
|
|
38
|
+
let release;
|
|
39
|
+
resolveGate = new Promise(r => { release = r; });
|
|
40
|
+
const clicks = [svc.openInWord(ID, BODY), svc.openInWord(ID, BODY), svc.openInWord(ID, BODY)];
|
|
41
|
+
release();
|
|
42
|
+
const results = await Promise.all(clicks);
|
|
43
|
+
assert.strictEqual(uncachedCalls, 1, `3 rapid clicks must convert once, got ${uncachedCalls}`);
|
|
44
|
+
assert.strictEqual(new Set(results.map(r => r.path)).size, 1, "all clicks must get the same file");
|
|
45
|
+
resolveGate = null;
|
|
46
|
+
|
|
47
|
+
// 2. Click again later, body unchanged → re-activate, no new document.
|
|
48
|
+
const again = await svc.openInWord(ID, BODY);
|
|
49
|
+
assert.strictEqual(uncachedCalls, 1, "unchanged body must not convert again");
|
|
50
|
+
assert.strictEqual(relaunches, 1, "unchanged body must re-raise the existing window");
|
|
51
|
+
assert.strictEqual(again.reused, true, "caller must be told it was a re-activation");
|
|
52
|
+
|
|
53
|
+
// 3. Body changed since hand-off → fresh document, and say the old one is dead.
|
|
54
|
+
const changed = await svc.openInWord(ID, "<p>hello, more</p>");
|
|
55
|
+
assert.strictEqual(uncachedCalls, 2, "changed body must produce a fresh document");
|
|
56
|
+
assert.strictEqual(changed.superseded, true, "must report that the earlier window is now orphaned");
|
|
57
|
+
assert.notStrictEqual(changed.path, again.path, "fresh document must be a different file");
|
|
58
|
+
|
|
59
|
+
// 4. Editor closed (sidecar reported it) → next click converts afresh.
|
|
60
|
+
svc.wordEdits.get(ID).closed = true;
|
|
61
|
+
const afterClose = await svc.openInWord(ID, "<p>hello, more</p>");
|
|
62
|
+
assert.strictEqual(uncachedCalls, 3, "a closed document must not be re-activated");
|
|
63
|
+
assert.ok(!afterClose.reused, "closed session must not report reuse");
|
|
64
|
+
assert.ok(!afterClose.superseded, "a closed window is not superseded — it is gone");
|
|
65
|
+
|
|
66
|
+
// 5. File deleted underneath us → convert afresh, no crash.
|
|
67
|
+
fs.unlinkSync(svc.wordEdits.get(ID).path);
|
|
68
|
+
const afterUnlink = await svc.openInWord(ID, "<p>hello, more</p>");
|
|
69
|
+
assert.strictEqual(uncachedCalls, 4, "missing file must force a fresh conversion");
|
|
70
|
+
assert.ok(!afterUnlink.reused);
|
|
71
|
+
|
|
72
|
+
// 6. Two different compose windows must not interfere.
|
|
73
|
+
const other = await svc.openInWord("compose-2", BODY);
|
|
74
|
+
assert.strictEqual(uncachedCalls, 5, "a different editId is a different document");
|
|
75
|
+
assert.notStrictEqual(other.path, afterUnlink.path);
|
|
76
|
+
|
|
77
|
+
// 7. A failing open must not wedge the guard — the next click retries.
|
|
78
|
+
svc.openInWordUncached = async () => { throw new Error("html-to-docx exploded"); };
|
|
79
|
+
await assert.rejects(() => svc.openInWord("compose-3", BODY));
|
|
80
|
+
let retried = false;
|
|
81
|
+
svc.openInWordUncached = async (editId, html) => {
|
|
82
|
+
retried = true;
|
|
83
|
+
const p = path.join(dir, "retry.docx");
|
|
84
|
+
fs.writeFileSync(p, "docx");
|
|
85
|
+
svc.wordEdits.set(editId, { path: p, stop: () => {}, opener: "word", html });
|
|
86
|
+
return { ok: true, path: p, opener: "word" };
|
|
87
|
+
};
|
|
88
|
+
await svc.openInWord("compose-3", BODY);
|
|
89
|
+
assert.ok(retried, "a failed open must leave the button usable, not latched");
|
|
90
|
+
|
|
91
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
92
|
+
console.log("word-edit guard: 7 scenarios passed");
|
|
@@ -229,10 +229,13 @@ export interface MailxApi {
|
|
|
229
229
|
}>;
|
|
230
230
|
logClientEvent?(...args: any[]): void | Promise<void>;
|
|
231
231
|
getVersion?(): any | Promise<any>;
|
|
232
|
+
/** `reused` ⇒ this draft was already open in an editor; that window was
|
|
233
|
+
* raised instead of a second copy being spawned. */
|
|
232
234
|
openInWord?(editId: string, html: string): Promise<{
|
|
233
235
|
ok: boolean;
|
|
234
236
|
path: string;
|
|
235
237
|
opener: string;
|
|
238
|
+
reused?: boolean;
|
|
236
239
|
}>;
|
|
237
240
|
closeWordEdit?(editId: string): Promise<void>;
|
|
238
241
|
showReminderPopup?(opts: any): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailx-api.d.ts","sourceRoot":"","sources":["mailx-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mailx-api.d.ts","sourceRoot":"","sources":["mailx-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -169,7 +169,9 @@ export interface MailxApi {
|
|
|
169
169
|
// ── Desktop-only (OS popups, native FS, Word integration) ─────────
|
|
170
170
|
// Browser/Android services may omit these — declared optional so a
|
|
171
171
|
// missing implementation on the web side compiles cleanly.
|
|
172
|
-
|
|
172
|
+
/** `reused` ⇒ this draft was already open in an editor; that window was
|
|
173
|
+
* raised instead of a second copy being spawned. */
|
|
174
|
+
openInWord?(editId: string, html: string): Promise<{ ok: boolean; path: string; opener: string; reused?: boolean }>;
|
|
173
175
|
closeWordEdit?(editId: string): Promise<void>;
|
|
174
176
|
showReminderPopup?(opts: any): Promise<{ button: string; form?: any }>;
|
|
175
177
|
openInTextEditor?(filePath: string): Promise<{ ok: boolean; opener: string; reason?: string }>;
|