@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
- for (const m of api.matchAll(/ipc\(\)\.(\w+)\s*\??\.?\s*\(/g)) called.add(m[1]);
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]);
@@ -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.250",
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.150",
38
- "@bobfrankston/mailx-store-web": "^0.1.76",
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.150",
118
- "@bobfrankston/mailx-store-web": "^0.1.76",
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",