@bobfrankston/rmfmail 1.2.274 → 1.2.277

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.
Files changed (112) hide show
  1. package/.commitmsg +31 -0
  2. package/bin/build-tinymce.js +27 -0
  3. package/client/android-bootstrap.bundle.js +169 -0
  4. package/client/android-bootstrap.bundle.js.map +2 -2
  5. package/client/app.bundle.js +231 -23
  6. package/client/app.bundle.js.map +4 -4
  7. package/client/app.js +81 -1
  8. package/client/app.js.map +1 -1
  9. package/client/app.ts +75 -1
  10. package/client/components/invite-card.js +107 -0
  11. package/client/components/invite-card.js.map +1 -0
  12. package/client/components/invite-card.ts +119 -0
  13. package/client/components/message-viewer.js +42 -17
  14. package/client/components/message-viewer.js.map +1 -1
  15. package/client/components/message-viewer.ts +42 -16
  16. package/client/compose/compose.bundle.js +90 -2
  17. package/client/compose/compose.bundle.js.map +4 -4
  18. package/client/compose/compose.js +26 -1
  19. package/client/compose/compose.js.map +1 -1
  20. package/client/compose/compose.ts +22 -1
  21. package/client/compose/editor.js +12 -1
  22. package/client/compose/editor.js.map +1 -1
  23. package/client/compose/editor.ts +17 -2
  24. package/client/index.html +1 -0
  25. package/client/lib/rmf-tiny.js +3 -0
  26. package/client/lib/tinymce/langs/ar-SA.js +440 -0
  27. package/client/lib/tinymce/langs/ar.js +441 -0
  28. package/client/lib/tinymce/langs/az.js +440 -0
  29. package/client/lib/tinymce/langs/be.js +440 -0
  30. package/client/lib/tinymce/langs/bg-BG.js +440 -0
  31. package/client/lib/tinymce/langs/bn-BD.js +440 -0
  32. package/client/lib/tinymce/langs/bs.js +440 -0
  33. package/client/lib/tinymce/langs/ca.js +440 -0
  34. package/client/lib/tinymce/langs/cs.js +440 -0
  35. package/client/lib/tinymce/langs/cy.js +440 -0
  36. package/client/lib/tinymce/langs/da.js +440 -0
  37. package/client/lib/tinymce/langs/de.js +440 -0
  38. package/client/lib/tinymce/langs/el.js +440 -0
  39. package/client/lib/tinymce/langs/eo.js +440 -0
  40. package/client/lib/tinymce/langs/es-MX.js +440 -0
  41. package/client/lib/tinymce/langs/es.js +440 -0
  42. package/client/lib/tinymce/langs/et.js +440 -0
  43. package/client/lib/tinymce/langs/eu.js +440 -0
  44. package/client/lib/tinymce/langs/fa.js +441 -0
  45. package/client/lib/tinymce/langs/fi.js +440 -0
  46. package/client/lib/tinymce/langs/fr-FR.js +440 -0
  47. package/client/lib/tinymce/langs/gl.js +440 -0
  48. package/client/lib/tinymce/langs/he-IL.js +440 -0
  49. package/client/lib/tinymce/langs/hr.js +440 -0
  50. package/client/lib/tinymce/langs/hu-HU.js +440 -0
  51. package/client/lib/tinymce/langs/hy.js +440 -0
  52. package/client/lib/tinymce/langs/id.js +440 -0
  53. package/client/lib/tinymce/langs/index.json +63 -0
  54. package/client/lib/tinymce/langs/is-IS.js +440 -0
  55. package/client/lib/tinymce/langs/it.js +440 -0
  56. package/client/lib/tinymce/langs/ja.js +440 -0
  57. package/client/lib/tinymce/langs/ka-GE.js +440 -0
  58. package/client/lib/tinymce/langs/kab.js +440 -0
  59. package/client/lib/tinymce/langs/kk.js +440 -0
  60. package/client/lib/tinymce/langs/ko-KR.js +440 -0
  61. package/client/lib/tinymce/langs/lt.js +440 -0
  62. package/client/lib/tinymce/langs/lv.js +440 -0
  63. package/client/lib/tinymce/langs/nb-NO.js +440 -0
  64. package/client/lib/tinymce/langs/ne.js +440 -0
  65. package/client/lib/tinymce/langs/nl-BE.js +440 -0
  66. package/client/lib/tinymce/langs/nl.js +440 -0
  67. package/client/lib/tinymce/langs/oc.js +440 -0
  68. package/client/lib/tinymce/langs/pl.js +440 -0
  69. package/client/lib/tinymce/langs/pt-BR.js +440 -0
  70. package/client/lib/tinymce/langs/pt-PT.js +440 -0
  71. package/client/lib/tinymce/langs/ro.js +440 -0
  72. package/client/lib/tinymce/langs/ru.js +440 -0
  73. package/client/lib/tinymce/langs/sk.js +440 -0
  74. package/client/lib/tinymce/langs/sl-SI.js +440 -0
  75. package/client/lib/tinymce/langs/sr.js +440 -0
  76. package/client/lib/tinymce/langs/sv-SE.js +440 -0
  77. package/client/lib/tinymce/langs/ta.js +440 -0
  78. package/client/lib/tinymce/langs/tg.js +440 -0
  79. package/client/lib/tinymce/langs/th-TH.js +440 -0
  80. package/client/lib/tinymce/langs/tr.js +440 -0
  81. package/client/lib/tinymce/langs/ug.js +440 -0
  82. package/client/lib/tinymce/langs/uk.js +440 -0
  83. package/client/lib/tinymce/langs/vi.js +440 -0
  84. package/client/lib/tinymce/langs/zh-CN.js +440 -0
  85. package/client/lib/tinymce/langs/zh-HK.js +440 -0
  86. package/client/lib/tinymce/langs/zh-MO.js +440 -0
  87. package/client/lib/tinymce/langs/zh-TW.js +440 -0
  88. package/client/lib/tinymce-langs.js +96 -0
  89. package/client/lib/tinymce-langs.js.map +1 -0
  90. package/client/lib/tinymce-langs.ts +99 -0
  91. package/client/package.json +1 -1
  92. package/client/styles/components.css +48 -0
  93. package/docs/editor.md +29 -3
  94. package/docs/preferences.md +2 -1
  95. package/npmchanges.md +29 -0
  96. package/package.json +18 -15
  97. package/packages/mailx-imap/package-lock.json +2 -2
  98. package/packages/mailx-imap/package.json +2 -2
  99. package/packages/mailx-settings/package.json +1 -1
  100. package/packages/mailx-store/package.json +1 -1
  101. package/packages/mailx-store/store.d.ts +5 -0
  102. package/packages/mailx-store/store.d.ts.map +1 -1
  103. package/packages/mailx-store/store.js +21 -0
  104. package/packages/mailx-store/store.js.map +1 -1
  105. package/packages/mailx-store/store.ts +27 -0
  106. package/packages/mailx-types/index.d.ts +56 -0
  107. package/packages/mailx-types/index.d.ts.map +1 -1
  108. package/packages/mailx-types/index.js +187 -0
  109. package/packages/mailx-types/index.js.map +1 -1
  110. package/packages/mailx-types/index.ts +192 -0
  111. package/packages/mailx-types/package.json +1 -1
  112. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-31304 → node_modules.npmglobalize-stash-48352}/.package-lock.json +0 -0
@@ -2882,3 +2882,51 @@ body.calendar-sidebar-on .calendar-sidebar { display: flex; }
2882
2882
  text-decoration: underline wavy currentColor;
2883
2883
  text-underline-offset: 2px;
2884
2884
  }
2885
+
2886
+ /* ── Calendar invite card (above the message body) ── */
2887
+ .mv-invite {
2888
+ /* invite flex guard — .message-viewer is an overflow:hidden flex column,
2889
+ so an auto-sized sibling of .mv-body can squeeze the body to nothing.
2890
+ Same trap that made a 444-recipient header leave nothing scrollable
2891
+ (v1.2.263). Cap it and let the card scroll instead. */
2892
+ flex: 0 0 auto;
2893
+ max-height: 30%;
2894
+ overflow-y: auto;
2895
+ margin: var(--gap-sm) var(--gap-md) 0;
2896
+ padding: var(--gap-sm) var(--gap-md);
2897
+ border: 1px solid color-mix(in oklch, var(--color-accent) 45%, var(--color-border));
2898
+ border-left: 4px solid var(--color-accent);
2899
+ border-radius: var(--radius-sm);
2900
+ background: color-mix(in oklch, var(--color-accent) 10%, var(--color-bg-surface));
2901
+ font-size: var(--font-size-sm);
2902
+ line-height: 1.5;
2903
+
2904
+ .mv-invite-head { display: flex; align-items: baseline; gap: var(--gap-sm); margin-bottom: 4px; }
2905
+ .mv-invite-badge {
2906
+ font-size: 0.75em; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
2907
+ padding: 1px 6px; border-radius: 10px;
2908
+ background: var(--color-accent); color: #fff; flex-shrink: 0;
2909
+ }
2910
+ .mv-invite-summary { font-size: var(--font-size-lg); font-weight: 600; }
2911
+ .mv-invite-when { font-weight: 600; margin-bottom: 4px; }
2912
+ .mv-invite-row { padding: 1px 0; }
2913
+ .mv-invite-label {
2914
+ display: inline-block; min-width: 5.5em;
2915
+ color: var(--color-text-muted); font-weight: 600;
2916
+ }
2917
+ .mv-invite-partstat { color: var(--color-text-muted); }
2918
+ .mv-invite-note {
2919
+ margin-top: var(--gap-xs); padding-top: var(--gap-xs);
2920
+ border-top: 1px solid var(--color-border);
2921
+ color: var(--color-text-muted); font-style: italic;
2922
+ }
2923
+ }
2924
+
2925
+ /* A cancelled meeting must not read like a live one. */
2926
+ .mv-invite-cancelled {
2927
+ border-left-color: var(--color-danger);
2928
+ background: color-mix(in oklch, var(--color-danger) 10%, var(--color-bg-surface));
2929
+
2930
+ .mv-invite-badge { background: var(--color-danger); }
2931
+ .mv-invite-summary { text-decoration: line-through; }
2932
+ }
package/docs/editor.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # Compose editor — formatting and shortcuts
2
2
 
3
- mailx ships with two rich-text editors: **Quill** (default) and **tiptap**.
4
- Most things work the same in both. Differences are called out below.
3
+ mailx ships with three rich-text editors: **Quill** (default), **tiptap**,
4
+ and **TinyMCE**. Most things work the same in all of them. Differences are
5
+ called out below.
5
6
 
6
- Switch editors via **Settings → Editor → Quill | tiptap**.
7
+ Switch editors via **Settings → Editor → Quill | tiptap | TinyMCE**.
7
8
 
8
9
  ## Universal — works in both editors
9
10
 
@@ -74,6 +75,31 @@ use the heading select / format menu instead.
74
75
  - **Ghost-text autocomplete** (off by default) — Settings →
75
76
  AI autocomplete → on. Predicts the next words while you type.
76
77
 
78
+ ## Editor language (TinyMCE only)
79
+
80
+ **Settings → Editor → Editor language** translates the editor *chrome* —
81
+ menus, dialogs, tooltips — into one of 61 languages. It does **not** touch:
82
+
83
+ - your message text,
84
+ - the spellchecker (English dictionary),
85
+ - the grammar check (Harper is English-only).
86
+
87
+ So German chrome wraps an unchanged English writing experience. Quill and
88
+ tiptap have no localized chrome and ignore the setting.
89
+
90
+ **Auto** (the default) follows this browser's language list, taking the first
91
+ one we have a pack for: an exact match (`pt-BR`), then the bare language
92
+ (`de-CH` → `de`), then any regional variant of it (`he` → `he-IL`). English
93
+ short-circuits — TinyMCE's built-in strings are English, there is no pack to
94
+ load. The menu names what Auto currently resolves to, so it is never a guess.
95
+
96
+ Everything is local: the packs ship with the app, and only the one language in
97
+ force is ever loaded. Translation coverage is community-contributed and uneven
98
+ — untranslated strings stay English even in widely-used languages.
99
+
100
+ The language is fixed when a compose window opens, so a change takes effect on
101
+ the next Reply / Forward / Compose, not in a window already open.
102
+
77
103
  ## When the toolbar doesn't appear
78
104
 
79
105
  The editor loads from a CDN (jsdelivr). If your network can't reach it,
@@ -20,7 +20,8 @@
20
20
  "flaggedOnly": false,
21
21
  "folderCounts": false,
22
22
  "calendarSidebar": false,
23
- "editor": "quill" // "quill" | "tiptap"
23
+ "editor": "quill", // "quill" | "tiptap" | "tinymce"
24
+ "editorLanguage": "auto" // TinyMCE menu/dialog language; "auto" | "en" | pack code ("de", "pt-BR", ...)
24
25
  },
25
26
  "sync": {
26
27
  "intervalMinutes": 5, // full-sync interval (per-folder); IDLE handles INBOX inline
package/npmchanges.md CHANGED
@@ -501,3 +501,32 @@ gets retried instead of staying broken until the next -repair. Pairs
501
501
  with the elapsed-time wait indicator (1.1.135) which surfaces the
502
502
  in-progress retry to the user.
503
503
 
504
+ ## v1.2.276 — 2026-08-23
505
+
506
+ Preview hotkeys fired twice — Ctrl+F opened two compose windows
507
+
508
+ A keydown in the message preview reached app.ts by TWO routes on desktop
509
+ WebView2: the iframe's own inline script posts every keydown to the parent as
510
+ `previewKey` (app.ts re-dispatches it), and installPreviewControls ALSO attached
511
+ a contentDocument listener that re-dispatched a synthetic keydown of its own.
512
+ The srcdoc document is same-origin, so both are live. One Ctrl+F therefore ran
513
+ openCompose("forward") twice and opened two compose popouts — the second never
514
+ finished loading and sat blank and "(Not Responding)" until it was killed (Bob
515
+ 2026-08-23, "Compose: Fwd: FirstCare Slide Deck (Not Responding)"; the log shows
516
+ openCompose-entry mode=forward twice in the same millisecond, two popoutCompose
517
+ windows, and the loaded one exiting while the blank duplicate survived). Ctrl+D
518
+ and Ctrl+P doubled the same way.
519
+
520
+ The inline forwarder is the mechanism that survives — it is the only one that
521
+ works on Android WebView, where parent-side contentDocument listeners never
522
+ fire. installPreviewControls keeps only what is genuinely iframe-local: zoom and
523
+ Ctrl+A.
524
+
525
+ Also: push the Windows taskbar overlay only when the unread count CHANGES.
526
+ Windows holds the overlay icon until the next SetOverlayIcon, so the host cannot
527
+ free the icon it just handed over; re-sending an identical badge every few
528
+ seconds cost GDI objects for nothing and helped drive rmfmail.exe to the
529
+ 10,000-object per-process cap (measured at GDI=9995, with 3423
530
+ "CreateIconIndirect failed: Not enough memory resources" in one day's log).
531
+ msger 0.1.429 fixes the leak itself by freeing the retired icon.
532
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/rmfmail",
3
- "version": "1.2.274",
3
+ "version": "1.2.277",
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,14 +34,14 @@
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.157",
38
- "@bobfrankston/mailx-store-web": "^0.1.85",
37
+ "@bobfrankston/mailx-imap": "^0.1.158",
38
+ "@bobfrankston/mailx-store-web": "^0.1.86",
39
39
  "@bobfrankston/mailx-sync": "^0.1.29",
40
- "@bobfrankston/miscinfo": "^1.0.19",
41
- "@bobfrankston/msger": "^0.1.428",
40
+ "@bobfrankston/miscinfo": "^1.0.20",
41
+ "@bobfrankston/msger": "^0.1.429",
42
42
  "@bobfrankston/node-tcp-transport": "^0.1.10",
43
43
  "@bobfrankston/oauthsupport": "^1.0.35",
44
- "@bobfrankston/rmf-tiny": "^0.1.51",
44
+ "@bobfrankston/rmf-tiny": "^0.1.52",
45
45
  "@bobfrankston/smtp-direct": "^0.1.9",
46
46
  "@bobfrankston/tcp-transport": "^0.1.8",
47
47
  "@capacitor/android": "^8.3.0",
@@ -58,7 +58,8 @@
58
58
  "nspell": "^2.1.5",
59
59
  "quill": "^2.0.3",
60
60
  "sql.js": "^1.14.1",
61
- "tinymce": "^8.5.0"
61
+ "tinymce": "^8.5.0",
62
+ "tinymce-i18n": "26.8.2"
62
63
  },
63
64
  "devDependencies": {
64
65
  "@types/mailparser": "^3.4.6",
@@ -90,7 +91,7 @@
90
91
  "@bobfrankston/miscinfo": "file:../../../projects/npm/miscinfo",
91
92
  "@bobfrankston/msger": "file:../../../utils/msgx/msger",
92
93
  "@bobfrankston/node-tcp-transport": "file:../../MailApps/node-tcp-transport",
93
- "@bobfrankston/oauthsupport": "file:../../../projects/oauth/oauthsupport",
94
+ "@bobfrankston/oauthsupport": "file:../../../projects/OAuth/OauthSupport",
94
95
  "@bobfrankston/rmf-tiny": "file:../../../utils/msgx/libs/rmf-tiny",
95
96
  "@bobfrankston/smtp-direct": "file:../../MailApps/smtp-direct",
96
97
  "@bobfrankston/tcp-transport": "file:../../MailApps/tcp-transport",
@@ -108,20 +109,21 @@
108
109
  "nspell": "^2.1.5",
109
110
  "quill": "^2.0.3",
110
111
  "sql.js": "^1.14.1",
111
- "tinymce": "^8.5.0"
112
+ "tinymce": "^8.5.0",
113
+ "tinymce-i18n": "26.8.2"
112
114
  },
113
115
  ".transformedSnapshot": {
114
116
  "dependencies": {
115
117
  "@bobfrankston/iflow-direct": "^0.1.65",
116
118
  "@bobfrankston/mailx-host": "^0.1.15",
117
- "@bobfrankston/mailx-imap": "^0.1.157",
118
- "@bobfrankston/mailx-store-web": "^0.1.85",
119
+ "@bobfrankston/mailx-imap": "^0.1.158",
120
+ "@bobfrankston/mailx-store-web": "^0.1.86",
119
121
  "@bobfrankston/mailx-sync": "^0.1.29",
120
- "@bobfrankston/miscinfo": "^1.0.19",
121
- "@bobfrankston/msger": "^0.1.428",
122
+ "@bobfrankston/miscinfo": "^1.0.20",
123
+ "@bobfrankston/msger": "^0.1.429",
122
124
  "@bobfrankston/node-tcp-transport": "^0.1.10",
123
125
  "@bobfrankston/oauthsupport": "^1.0.35",
124
- "@bobfrankston/rmf-tiny": "^0.1.51",
126
+ "@bobfrankston/rmf-tiny": "^0.1.52",
125
127
  "@bobfrankston/smtp-direct": "^0.1.9",
126
128
  "@bobfrankston/tcp-transport": "^0.1.8",
127
129
  "@capacitor/android": "^8.3.0",
@@ -138,7 +140,8 @@
138
140
  "nspell": "^2.1.5",
139
141
  "quill": "^2.0.3",
140
142
  "sql.js": "^1.14.1",
141
- "tinymce": "^8.5.0"
143
+ "tinymce": "^8.5.0",
144
+ "tinymce-i18n": "26.8.2"
142
145
  }
143
146
  }
144
147
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-imap",
3
- "version": "0.1.157",
3
+ "version": "0.1.158",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bobfrankston/mailx-imap",
9
- "version": "0.1.157",
9
+ "version": "0.1.158",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@bobfrankston/iflow-direct": "^0.1.27",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-imap",
3
- "version": "0.1.157",
3
+ "version": "0.1.158",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -16,7 +16,7 @@
16
16
  "@bobfrankston/tcp-transport": "file:../../../../MailApps/tcp-transport",
17
17
  "@bobfrankston/smtp-direct": "file:../../../../MailApps/smtp-direct",
18
18
  "@bobfrankston/mailx-sync": "file:../../../../MailApps/mailx-sync",
19
- "@bobfrankston/oauthsupport": "file:../../../../../projects/oauth/oauthsupport"
19
+ "@bobfrankston/oauthsupport": "file:../../../../../projects/OAuth/OauthSupport"
20
20
  },
21
21
  "repository": {
22
22
  "type": "git",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-settings",
3
- "version": "0.1.58",
3
+ "version": "0.1.59",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-store",
3
- "version": "0.1.89",
3
+ "version": "0.1.91",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -19,6 +19,7 @@
19
19
  * be able to consume it without depending on mailx-service — that's the
20
20
  * "arrow points the right way" property of the architecture.
21
21
  */
22
+ import type { ParsedInvite } from "@bobfrankston/mailx-types";
22
23
  import { MailxDB } from "./db.js";
23
24
  import { FileMessageStore } from "./file-store.js";
24
25
  import type { StoreBus } from "./bus.js";
@@ -63,6 +64,10 @@ export interface StoreMessage extends MessageEnvelope {
63
64
  * back into saveDraft so the server-side dedup keeps replacing the
64
65
  * same draft instead of stacking up a new one every save. */
65
66
  mailxDraftId: string;
67
+ /** Parsed VEVENT when the message carries a text/calendar part, else null.
68
+ * Lets the viewer render an invite card instead of handing invite.ics to
69
+ * whatever program happens to own .ics (Bob 2026-08-22). */
70
+ invite: ParsedInvite | null;
66
71
  }
67
72
  export declare class Store {
68
73
  /** SQLite metadata index. Exposed as a public field — sync clients
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["store.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@
21
21
  */
22
22
  import * as fs from "node:fs";
23
23
  import { parseSerial } from "./parse-serial.js";
24
+ import { parseInvite } from "@bobfrankston/mailx-types";
24
25
  import { storeBus } from "./bus.js";
25
26
  import { sanitizeHtml, htmlToPlainText } from "@bobfrankston/mailx-types";
26
27
  import { loadSettings, loadAllowlist } from "@bobfrankston/mailx-settings";
@@ -291,6 +292,7 @@ export class Store {
291
292
  hasRemoteContent: false, remoteAllowed: allowRemote,
292
293
  attachments: [],
293
294
  cached: false,
295
+ invite: null,
294
296
  bodyOnDisk: false, // overridden to true on the parse-pending return
295
297
  deliveredTo: "", returnPath: "",
296
298
  listUnsubscribe: "", listUnsubscribeMail: "", listUnsubscribeHttp: "", listUnsubscribeOneClick: false,
@@ -445,6 +447,24 @@ export class Store {
445
447
  size: x.a.size || 0,
446
448
  contentId: x.a.contentId || "",
447
449
  }));
450
+ // Calendar invite. Read from the RAW attachment list, not the filtered
451
+ // one above: a text/calendar alternative has no filename and inline
452
+ // disposition, so the spurious-text-part filter (correctly) drops it
453
+ // from the attachment chips — which would also hide it from us.
454
+ // A malformed invite must never break rendering the message.
455
+ let invite = null;
456
+ try {
457
+ const calPart = (parsed.attachments || []).find((a) => /text\/calendar|application\/ics/i.test(a.contentType || "")
458
+ || /\.ics$/i.test(a.filename || ""));
459
+ if (calPart) {
460
+ const c = calPart.content;
461
+ const text = Buffer.isBuffer(c) ? c.toString("utf8") : String(c ?? "");
462
+ invite = parseInvite(text);
463
+ }
464
+ }
465
+ catch (e) {
466
+ console.warn("[store] invite parse failed:", e?.message || e);
467
+ }
448
468
  // Header extraction — Delivered-To, Return-Path, List-Unsubscribe.
449
469
  // Each delivery agent PREPENDS its Delivered-To, so the FIRST
450
470
  // (topmost) header is the final delivery to the user's actual
@@ -532,6 +552,7 @@ export class Store {
532
552
  emlPath: this.bodyStore.absolutePath(storedPath),
533
553
  isFlagged,
534
554
  mailxDraftId,
555
+ invite,
535
556
  };
536
557
  // Memoize for instant re-view of the same message. cacheKey is
537
558
  // path+mtime so a re-fetch (mtime changes) invalidates naturally.
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["store.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@
22
22
 
23
23
  import * as fs from "node:fs";
24
24
  import { parseSerial } from "./parse-serial.js";
25
+ import { parseInvite } from "@bobfrankston/mailx-types";
26
+ import type { ParsedInvite } from "@bobfrankston/mailx-types";
25
27
  import { storeBus } from "./bus.js";
26
28
  import { MailxDB } from "./db.js";
27
29
  import { FileMessageStore } from "./file-store.js";
@@ -101,6 +103,10 @@ export interface StoreMessage extends MessageEnvelope {
101
103
  * back into saveDraft so the server-side dedup keeps replacing the
102
104
  * same draft instead of stacking up a new one every save. */
103
105
  mailxDraftId: string;
106
+ /** Parsed VEVENT when the message carries a text/calendar part, else null.
107
+ * Lets the viewer render an invite card instead of handing invite.ics to
108
+ * whatever program happens to own .ics (Bob 2026-08-22). */
109
+ invite: ParsedInvite | null;
104
110
  }
105
111
 
106
112
  export class Store {
@@ -337,6 +343,7 @@ export class Store {
337
343
  hasRemoteContent: false, remoteAllowed: allowRemote,
338
344
  attachments: [],
339
345
  cached: false,
346
+ invite: null,
340
347
  bodyOnDisk: false, // overridden to true on the parse-pending return
341
348
  deliveredTo: "", returnPath: "",
342
349
  listUnsubscribe: "", listUnsubscribeMail: "", listUnsubscribeHttp: "", listUnsubscribeOneClick: false,
@@ -477,6 +484,25 @@ export class Store {
477
484
  contentId: x.a.contentId || "",
478
485
  }));
479
486
 
487
+ // Calendar invite. Read from the RAW attachment list, not the filtered
488
+ // one above: a text/calendar alternative has no filename and inline
489
+ // disposition, so the spurious-text-part filter (correctly) drops it
490
+ // from the attachment chips — which would also hide it from us.
491
+ // A malformed invite must never break rendering the message.
492
+ let invite: ParsedInvite | null = null;
493
+ try {
494
+ const calPart = (parsed.attachments || []).find((a: any) =>
495
+ /text\/calendar|application\/ics/i.test(a.contentType || "")
496
+ || /\.ics$/i.test(a.filename || ""));
497
+ if (calPart) {
498
+ const c: any = (calPart as any).content;
499
+ const text = Buffer.isBuffer(c) ? c.toString("utf8") : String(c ?? "");
500
+ invite = parseInvite(text);
501
+ }
502
+ } catch (e: any) {
503
+ console.warn("[store] invite parse failed:", e?.message || e);
504
+ }
505
+
480
506
  // Header extraction — Delivered-To, Return-Path, List-Unsubscribe.
481
507
  // Each delivery agent PREPENDS its Delivered-To, so the FIRST
482
508
  // (topmost) header is the final delivery to the user's actual
@@ -560,6 +586,7 @@ export class Store {
560
586
  emlPath: this.bodyStore.absolutePath(storedPath),
561
587
  isFlagged,
562
588
  mailxDraftId,
589
+ invite,
563
590
  };
564
591
  // Memoize for instant re-view of the same message. cacheKey is
565
592
  // path+mtime so a re-fetch (mtime changes) invalidates naturally.
@@ -497,4 +497,60 @@ export declare function formatSender(addr: {
497
497
  text: string;
498
498
  claimed: string | null;
499
499
  };
500
+ export interface InviteAttendee {
501
+ name: string;
502
+ email: string;
503
+ /** NEEDS-ACTION | ACCEPTED | DECLINED | TENTATIVE | DELEGATED */
504
+ status: string;
505
+ rsvp: boolean;
506
+ }
507
+ export interface ParsedInvite {
508
+ /** REQUEST (an invitation), REPLY (someone's RSVP), CANCEL, PUBLISH… */
509
+ method: string;
510
+ uid: string;
511
+ sequence: number;
512
+ summary: string;
513
+ description: string;
514
+ location: string;
515
+ /** ISO 8601. All-day events carry a bare date (no time part). */
516
+ start: string;
517
+ end: string;
518
+ /** IANA zone from TZID, when the invite specified one. */
519
+ tzid: string;
520
+ allDay: boolean;
521
+ organizer: {
522
+ name: string;
523
+ email: string;
524
+ };
525
+ attendees: InviteAttendee[];
526
+ /** Raw RRULE, if the event repeats. Rendered verbatim — turning it into
527
+ * prose is a separate job and getting it subtly wrong is worse than
528
+ * showing the rule. */
529
+ rrule: string;
530
+ status: string;
531
+ /** True when the invite was produced by Google Calendar. Google's own
532
+ * HTML body carries working Yes/No/Maybe links, so the UI must NOT add a
533
+ * second set of RSVP controls for these — see inviteHasGoogleRsvp. */
534
+ fromGoogle: boolean;
535
+ }
536
+ /**
537
+ * Parse the VEVENT out of a text/calendar part.
538
+ *
539
+ * Deliberately hand-rolled rather than pulling in an ICS library: mailx-types
540
+ * is the zero-dependency package shared with Android, and an invite card needs
541
+ * a dozen properties, not full RFC 5545 coverage. Returns null when there is
542
+ * no VEVENT to show.
543
+ */
544
+ export declare function parseInvite(ics: string): ParsedInvite | null;
545
+ /**
546
+ * Does the message body already carry Google's own Yes/No/Maybe controls?
547
+ *
548
+ * Google Calendar invitations embed working RSVP links
549
+ * (`calendar.google.com/calendar/event?action=RESPOND&rst=1|2|3`). When they
550
+ * are present the UI must show the invite summary but NOT a second set of RSVP
551
+ * buttons — two responders racing to set PARTSTAT is worse than one
552
+ * (Bob 2026-08-22: "Google's own responder handles it so you might detect that
553
+ * case specially").
554
+ */
555
+ export declare function inviteHasGoogleRsvp(bodyHtml: string): boolean;
500
556
  //# sourceMappingURL=index.d.ts.map