@bobfrankston/rmfmail 1.2.279 → 1.2.280

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/client/app.js CHANGED
@@ -5765,9 +5765,39 @@ async function openAboutDialog() {
5765
5765
  backdrop.addEventListener("mousedown", (e) => { if (e.target === backdrop)
5766
5766
  close(); });
5767
5767
  try {
5768
- const [v, accounts] = await Promise.all([
5768
+ // The bundled editor's own version, read from the tree the editor
5769
+ // actually loads from — so it cannot drift from what is running. Both
5770
+ // specs are caret ranges and the resolved version moves whenever npm
5771
+ // re-resolves: tinymce sat at 8.6.0 for weeks under ^8.5.0 with nothing
5772
+ // to notice (Bob 2026-08-23, "do you track updates for TinyMCE?").
5773
+ // build-tinymce.js also prints it, but npmglobalize swallows a
5774
+ // sub-build's stdout — only "Build succeeded" reaches the archived
5775
+ // transcript — so the build log is NOT where this question gets
5776
+ // answered. Here it is answerable on the machine showing the symptom.
5777
+ // (Claude Code 2026-08-24)
5778
+ const editorBundle = async () => {
5779
+ const readJson = async (url) => {
5780
+ try {
5781
+ const r = await fetch(url);
5782
+ return r.ok ? await r.json() : null;
5783
+ }
5784
+ catch {
5785
+ return null;
5786
+ }
5787
+ };
5788
+ const [pkg, langs] = await Promise.all([
5789
+ readJson("lib/tinymce/package.json"),
5790
+ readJson("lib/tinymce/langs/index.json"),
5791
+ ]);
5792
+ if (!pkg?.version)
5793
+ return "";
5794
+ const n = langs?.length || 0;
5795
+ return n ? `TinyMCE ${pkg.version} · ${n} languages` : `TinyMCE ${pkg.version}`;
5796
+ };
5797
+ const [v, accounts, editorInfo] = await Promise.all([
5769
5798
  getVersion().catch(() => ({})),
5770
5799
  getAccounts().catch(() => []),
5800
+ editorBundle(),
5771
5801
  ]);
5772
5802
  const storage = v.storage || {};
5773
5803
  const isApp = typeof mailxapi !== "undefined" && mailxapi?.isApp;
@@ -5795,6 +5825,8 @@ async function openAboutDialog() {
5795
5825
  rows.push(["Drive owner", storage.folderOwner]);
5796
5826
  if (storage.configDir)
5797
5827
  rows.push(["Config dir", storage.configDir]);
5828
+ if (editorInfo)
5829
+ rows.push(["Editor bundle", editorInfo]);
5798
5830
  rows.push(["Accounts", String((accounts || []).length)]);
5799
5831
  rows.push(["User agent", navigator.userAgent]);
5800
5832
  rows.push(["Screen", `${screen.width}×${screen.height}`]);