@bobfrankston/rmfmail 1.2.250 → 1.2.251
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.
|
@@ -29,7 +29,15 @@ const bridge = read("client/lib/mailxapi.js");
|
|
|
29
29
|
const rpc = read("packages/mailx-service/jsonrpc.ts");
|
|
30
30
|
|
|
31
31
|
const called = new Set();
|
|
32
|
-
|
|
32
|
+
// Match every shape api-client uses to reach the bridge:
|
|
33
|
+
// ipc().foo?.(…) plain
|
|
34
|
+
// (ipc() as any).foo?.(…) cast — the old pattern required a literal
|
|
35
|
+
// "ipc()." and skipped ALL of these
|
|
36
|
+
// const fn = (ipc() as any).foo; captured first, called later
|
|
37
|
+
// Hence: no trailing "(" requirement — a property read off the bridge is
|
|
38
|
+
// a call site as far as this contract is concerned. fetchRemoteImage was
|
|
39
|
+
// invisible to the old regex on both counts (Bob 2026-08-11).
|
|
40
|
+
for (const m of api.matchAll(/ipc\(\)(?:\s+as\s+[\w.<>[\]]+)?\s*\)?\.(\w+)/g)) called.add(m[1]);
|
|
33
41
|
|
|
34
42
|
const inBridge = new Set();
|
|
35
43
|
for (const m of bridge.matchAll(/^\s+(\w+)\s*:\s*(?:async\s+)?function/gm)) inBridge.add(m[1]);
|
package/client/lib/mailxapi.js
CHANGED
|
@@ -276,6 +276,18 @@
|
|
|
276
276
|
unsubscribeOneClick: function(url) {
|
|
277
277
|
return callNode("unsubscribeOneClick", { url: url });
|
|
278
278
|
},
|
|
279
|
+
fetchRemoteImage: function(url) {
|
|
280
|
+
return callNode("fetchRemoteImage", { url: url });
|
|
281
|
+
},
|
|
282
|
+
// These two were dead the same way copyMessages was: handler in
|
|
283
|
+
// jsonrpc, caller in api-client, nothing in between — the widened
|
|
284
|
+
// bridge-contract check surfaced them (2026-08-11).
|
|
285
|
+
openInTextEditor: function(path) {
|
|
286
|
+
return callNode("openInTextEditor", { path: path });
|
|
287
|
+
},
|
|
288
|
+
consumePendingShare: function() {
|
|
289
|
+
return callNode("consumePendingShare", {});
|
|
290
|
+
},
|
|
279
291
|
openInWord: function(editId, html, popoutId) {
|
|
280
292
|
return callNode("openInWord", { editId: editId, html: html, popoutId: popoutId || "" });
|
|
281
293
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bobfrankston/rmfmail",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.251",
|
|
4
4
|
"description": "Local-first email client with IMAP sync and standalone native app",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "bin/mailx.js",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@bobfrankston/iflow-direct": "^0.1.65",
|
|
36
36
|
"@bobfrankston/mailx-host": "^0.1.15",
|
|
37
|
-
"@bobfrankston/mailx-imap": "^0.1.
|
|
38
|
-
"@bobfrankston/mailx-store-web": "^0.1.
|
|
37
|
+
"@bobfrankston/mailx-imap": "^0.1.151",
|
|
38
|
+
"@bobfrankston/mailx-store-web": "^0.1.77",
|
|
39
39
|
"@bobfrankston/mailx-sync": "^0.1.29",
|
|
40
40
|
"@bobfrankston/miscinfo": "^1.0.17",
|
|
41
41
|
"@bobfrankston/msger": "^0.1.424",
|
|
@@ -114,8 +114,8 @@
|
|
|
114
114
|
"dependencies": {
|
|
115
115
|
"@bobfrankston/iflow-direct": "^0.1.65",
|
|
116
116
|
"@bobfrankston/mailx-host": "^0.1.15",
|
|
117
|
-
"@bobfrankston/mailx-imap": "^0.1.
|
|
118
|
-
"@bobfrankston/mailx-store-web": "^0.1.
|
|
117
|
+
"@bobfrankston/mailx-imap": "^0.1.151",
|
|
118
|
+
"@bobfrankston/mailx-store-web": "^0.1.77",
|
|
119
119
|
"@bobfrankston/mailx-sync": "^0.1.29",
|
|
120
120
|
"@bobfrankston/miscinfo": "^1.0.17",
|
|
121
121
|
"@bobfrankston/msger": "^0.1.424",
|