@bobfrankston/rmfmail 1.2.274 → 1.2.276

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 (33) hide show
  1. package/.commitmsg +26 -0
  2. package/client/android-bootstrap.bundle.js +169 -0
  3. package/client/android-bootstrap.bundle.js.map +2 -2
  4. package/client/app.bundle.js +123 -23
  5. package/client/app.bundle.js.map +4 -4
  6. package/client/app.js +16 -1
  7. package/client/app.js.map +1 -1
  8. package/client/app.ts +16 -1
  9. package/client/components/invite-card.js +107 -0
  10. package/client/components/invite-card.js.map +1 -0
  11. package/client/components/invite-card.ts +119 -0
  12. package/client/components/message-viewer.js +42 -17
  13. package/client/components/message-viewer.js.map +1 -1
  14. package/client/components/message-viewer.ts +42 -16
  15. package/client/package.json +1 -1
  16. package/client/styles/components.css +48 -0
  17. package/package.json +8 -8
  18. package/packages/mailx-imap/package-lock.json +2 -2
  19. package/packages/mailx-imap/package.json +2 -2
  20. package/packages/mailx-settings/package.json +1 -1
  21. package/packages/mailx-store/package.json +1 -1
  22. package/packages/mailx-store/store.d.ts +5 -0
  23. package/packages/mailx-store/store.d.ts.map +1 -1
  24. package/packages/mailx-store/store.js +21 -0
  25. package/packages/mailx-store/store.js.map +1 -1
  26. package/packages/mailx-store/store.ts +27 -0
  27. package/packages/mailx-types/index.d.ts +56 -0
  28. package/packages/mailx-types/index.d.ts.map +1 -1
  29. package/packages/mailx-types/index.js +187 -0
  30. package/packages/mailx-types/index.js.map +1 -1
  31. package/packages/mailx-types/index.ts +192 -0
  32. package/packages/mailx-types/package.json +1 -1
  33. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-31304 → node_modules.npmglobalize-stash-59216}/.package-lock.json +0 -0
@@ -529,4 +529,191 @@ export function formatSender(addr) {
529
529
  return { text: address, claimed: null };
530
530
  return { text: `${name} <${address}>`, claimed: displayNameClaimsOtherAddress(name, address) };
531
531
  }
532
+ /** Unfold RFC 5545 continuation lines: a line beginning with a space or tab
533
+ * continues the previous one. Google folds ATTENDEE lines mid-parameter, so
534
+ * skipping this loses attendees entirely. */
535
+ function unfoldIcs(text) {
536
+ const raw = (text || "").replace(/\r\n/g, "\n").split("\n");
537
+ const out = [];
538
+ for (const line of raw) {
539
+ if (/^[ \t]/.test(line) && out.length)
540
+ out[out.length - 1] += line.slice(1);
541
+ else
542
+ out.push(line);
543
+ }
544
+ return out;
545
+ }
546
+ /** RFC 5545 TEXT unescaping: \\n is a newline, and \\, \\; \\, are literals. */
547
+ function unescapeIcs(v) {
548
+ return (v || "")
549
+ .replace(/\\n/gi, "\n")
550
+ .replace(/\\([;,\\])/g, "$1");
551
+ }
552
+ /** Split "KEY;PARAM=x;PARAM2=y:value" into its three pieces. */
553
+ function splitIcsLine(line) {
554
+ // The first colon that is not inside a quoted parameter ends the name part.
555
+ let inQuote = false, colon = -1;
556
+ for (let i = 0; i < line.length; i++) {
557
+ const c = line[i];
558
+ if (c === '"')
559
+ inQuote = !inQuote;
560
+ else if (c === ":" && !inQuote) {
561
+ colon = i;
562
+ break;
563
+ }
564
+ }
565
+ if (colon < 0)
566
+ return null;
567
+ const namePart = line.slice(0, colon);
568
+ const value = line.slice(colon + 1);
569
+ const bits = namePart.split(";");
570
+ const key = (bits.shift() || "").toUpperCase();
571
+ const params = {};
572
+ for (const b of bits) {
573
+ const eq = b.indexOf("=");
574
+ if (eq < 0)
575
+ continue;
576
+ params[b.slice(0, eq).toUpperCase()] = b.slice(eq + 1).replace(/^"|"$/g, "");
577
+ }
578
+ return { key, params, value };
579
+ }
580
+ /** ICS timestamp → ISO 8601. Handles 20260823T080000 (local/zoned),
581
+ * 20260823T133939Z (UTC) and 20260823 (all-day). Zoned values keep their
582
+ * wall-clock reading; the caller pairs them with `tzid`. */
583
+ function icsDateToIso(v, isUtc) {
584
+ const m = (v || "").match(/^(\d{4})(\d{2})(\d{2})(?:T(\d{2})(\d{2})(\d{2})(Z)?)?$/);
585
+ if (!m)
586
+ return "";
587
+ const [, y, mo, d, hh, mm, ss, z] = m;
588
+ if (!hh)
589
+ return `${y}-${mo}-${d}`;
590
+ const base = `${y}-${mo}-${d}T${hh}:${mm}:${ss}`;
591
+ return (z || isUtc) ? base + "Z" : base;
592
+ }
593
+ function parseCalAddress(value, params) {
594
+ const email = (value || "").replace(/^mailto:/i, "").trim();
595
+ return { name: (params.CN || "").trim() || email, email };
596
+ }
597
+ /**
598
+ * Parse the VEVENT out of a text/calendar part.
599
+ *
600
+ * Deliberately hand-rolled rather than pulling in an ICS library: mailx-types
601
+ * is the zero-dependency package shared with Android, and an invite card needs
602
+ * a dozen properties, not full RFC 5545 coverage. Returns null when there is
603
+ * no VEVENT to show.
604
+ */
605
+ export function parseInvite(ics) {
606
+ if (!ics || !/BEGIN:VEVENT/i.test(ics))
607
+ return null;
608
+ const lines = unfoldIcs(ics);
609
+ const out = {
610
+ method: "", uid: "", sequence: 0, summary: "", description: "", location: "",
611
+ start: "", end: "", tzid: "", allDay: false,
612
+ organizer: { name: "", email: "" }, attendees: [], rrule: "", status: "",
613
+ fromGoogle: false,
614
+ };
615
+ let inEvent = false;
616
+ // VTIMEZONE blocks contain their own DTSTART/RRULE — those describe the
617
+ // zone's DST rules, not the meeting. Ignore everything inside them.
618
+ let depthNonEvent = 0;
619
+ for (const line of lines) {
620
+ const up = line.toUpperCase();
621
+ if (up.startsWith("BEGIN:VEVENT")) {
622
+ inEvent = true;
623
+ continue;
624
+ }
625
+ if (up.startsWith("END:VEVENT")) {
626
+ inEvent = false;
627
+ continue;
628
+ }
629
+ if (!inEvent && (up.startsWith("BEGIN:VTIMEZONE") || up.startsWith("BEGIN:VALARM"))) {
630
+ depthNonEvent++;
631
+ continue;
632
+ }
633
+ if (up.startsWith("END:VTIMEZONE") || up.startsWith("END:VALARM")) {
634
+ if (depthNonEvent)
635
+ depthNonEvent--;
636
+ continue;
637
+ }
638
+ if (inEvent && up.startsWith("BEGIN:VALARM")) {
639
+ depthNonEvent++;
640
+ continue;
641
+ }
642
+ const p = splitIcsLine(line);
643
+ if (!p)
644
+ continue;
645
+ if (!inEvent) {
646
+ if (p.key === "METHOD")
647
+ out.method = p.value.trim().toUpperCase();
648
+ else if (p.key === "PRODID" && /google/i.test(p.value))
649
+ out.fromGoogle = true;
650
+ continue;
651
+ }
652
+ if (depthNonEvent)
653
+ continue; // inside VALARM
654
+ switch (p.key) {
655
+ case "SUMMARY":
656
+ out.summary = unescapeIcs(p.value);
657
+ break;
658
+ case "DESCRIPTION":
659
+ out.description = unescapeIcs(p.value);
660
+ break;
661
+ case "LOCATION":
662
+ out.location = unescapeIcs(p.value);
663
+ break;
664
+ case "UID":
665
+ out.uid = p.value.trim();
666
+ break;
667
+ case "STATUS":
668
+ out.status = p.value.trim().toUpperCase();
669
+ break;
670
+ case "RRULE":
671
+ out.rrule = p.value.trim();
672
+ break;
673
+ case "SEQUENCE":
674
+ out.sequence = parseInt(p.value, 10) || 0;
675
+ break;
676
+ case "DTSTART":
677
+ out.start = icsDateToIso(p.value.trim(), false);
678
+ out.tzid = p.params.TZID || out.tzid;
679
+ out.allDay = (p.params.VALUE || "").toUpperCase() === "DATE" || !/T/.test(p.value);
680
+ break;
681
+ case "DTEND":
682
+ out.end = icsDateToIso(p.value.trim(), false);
683
+ out.tzid = out.tzid || p.params.TZID || "";
684
+ break;
685
+ case "ORGANIZER":
686
+ out.organizer = parseCalAddress(p.value, p.params);
687
+ break;
688
+ case "ATTENDEE": {
689
+ const a = parseCalAddress(p.value, p.params);
690
+ out.attendees.push({
691
+ name: a.name,
692
+ email: a.email,
693
+ status: (p.params.PARTSTAT || "NEEDS-ACTION").toUpperCase(),
694
+ rsvp: (p.params.RSVP || "").toUpperCase() === "TRUE",
695
+ });
696
+ break;
697
+ }
698
+ }
699
+ }
700
+ if (!out.summary && !out.start)
701
+ return null;
702
+ return out;
703
+ }
704
+ /**
705
+ * Does the message body already carry Google's own Yes/No/Maybe controls?
706
+ *
707
+ * Google Calendar invitations embed working RSVP links
708
+ * (`calendar.google.com/calendar/event?action=RESPOND&rst=1|2|3`). When they
709
+ * are present the UI must show the invite summary but NOT a second set of RSVP
710
+ * buttons — two responders racing to set PARTSTAT is worse than one
711
+ * (Bob 2026-08-22: "Google's own responder handles it so you might detect that
712
+ * case specially").
713
+ */
714
+ export function inviteHasGoogleRsvp(bodyHtml) {
715
+ if (!bodyHtml)
716
+ return false;
717
+ return /calendar\.google\.com\/calendar\/event\?action=RESPOND/i.test(bodyHtml);
718
+ }
532
719
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -848,3 +848,195 @@ export function formatSender(addr: { name?: string; address: string } | null | u
848
848
  if (name.toLowerCase() === address.toLowerCase()) return { text: address, claimed: null };
849
849
  return { text: `${name} <${address}>`, claimed: displayNameClaimsOtherAddress(name, address) };
850
850
  }
851
+
852
+
853
+ // ── Calendar invites (text/calendar) ──────────────────────────────────────
854
+
855
+ export interface InviteAttendee {
856
+ name: string;
857
+ email: string;
858
+ /** NEEDS-ACTION | ACCEPTED | DECLINED | TENTATIVE | DELEGATED */
859
+ status: string;
860
+ rsvp: boolean;
861
+ }
862
+
863
+ export interface ParsedInvite {
864
+ /** REQUEST (an invitation), REPLY (someone's RSVP), CANCEL, PUBLISH… */
865
+ method: string;
866
+ uid: string;
867
+ sequence: number;
868
+ summary: string;
869
+ description: string;
870
+ location: string;
871
+ /** ISO 8601. All-day events carry a bare date (no time part). */
872
+ start: string;
873
+ end: string;
874
+ /** IANA zone from TZID, when the invite specified one. */
875
+ tzid: string;
876
+ allDay: boolean;
877
+ organizer: { name: string; email: string };
878
+ attendees: InviteAttendee[];
879
+ /** Raw RRULE, if the event repeats. Rendered verbatim — turning it into
880
+ * prose is a separate job and getting it subtly wrong is worse than
881
+ * showing the rule. */
882
+ rrule: string;
883
+ status: string;
884
+ /** True when the invite was produced by Google Calendar. Google's own
885
+ * HTML body carries working Yes/No/Maybe links, so the UI must NOT add a
886
+ * second set of RSVP controls for these — see inviteHasGoogleRsvp. */
887
+ fromGoogle: boolean;
888
+ }
889
+
890
+ /** Unfold RFC 5545 continuation lines: a line beginning with a space or tab
891
+ * continues the previous one. Google folds ATTENDEE lines mid-parameter, so
892
+ * skipping this loses attendees entirely. */
893
+ function unfoldIcs(text: string): string[] {
894
+ const raw = (text || "").replace(/\r\n/g, "\n").split("\n");
895
+ const out: string[] = [];
896
+ for (const line of raw) {
897
+ if (/^[ \t]/.test(line) && out.length) out[out.length - 1] += line.slice(1);
898
+ else out.push(line);
899
+ }
900
+ return out;
901
+ }
902
+
903
+ /** RFC 5545 TEXT unescaping: \\n is a newline, and \\, \\; \\, are literals. */
904
+ function unescapeIcs(v: string): string {
905
+ return (v || "")
906
+ .replace(/\\n/gi, "\n")
907
+ .replace(/\\([;,\\])/g, "$1");
908
+ }
909
+
910
+ /** Split "KEY;PARAM=x;PARAM2=y:value" into its three pieces. */
911
+ function splitIcsLine(line: string): { key: string; params: Record<string, string>; value: string } | null {
912
+ // The first colon that is not inside a quoted parameter ends the name part.
913
+ let inQuote = false, colon = -1;
914
+ for (let i = 0; i < line.length; i++) {
915
+ const c = line[i];
916
+ if (c === '"') inQuote = !inQuote;
917
+ else if (c === ":" && !inQuote) { colon = i; break; }
918
+ }
919
+ if (colon < 0) return null;
920
+ const namePart = line.slice(0, colon);
921
+ const value = line.slice(colon + 1);
922
+ const bits = namePart.split(";");
923
+ const key = (bits.shift() || "").toUpperCase();
924
+ const params: Record<string, string> = {};
925
+ for (const b of bits) {
926
+ const eq = b.indexOf("=");
927
+ if (eq < 0) continue;
928
+ params[b.slice(0, eq).toUpperCase()] = b.slice(eq + 1).replace(/^"|"$/g, "");
929
+ }
930
+ return { key, params, value };
931
+ }
932
+
933
+ /** ICS timestamp → ISO 8601. Handles 20260823T080000 (local/zoned),
934
+ * 20260823T133939Z (UTC) and 20260823 (all-day). Zoned values keep their
935
+ * wall-clock reading; the caller pairs them with `tzid`. */
936
+ function icsDateToIso(v: string, isUtc: boolean): string {
937
+ const m = (v || "").match(/^(\d{4})(\d{2})(\d{2})(?:T(\d{2})(\d{2})(\d{2})(Z)?)?$/);
938
+ if (!m) return "";
939
+ const [, y, mo, d, hh, mm, ss, z] = m;
940
+ if (!hh) return `${y}-${mo}-${d}`;
941
+ const base = `${y}-${mo}-${d}T${hh}:${mm}:${ss}`;
942
+ return (z || isUtc) ? base + "Z" : base;
943
+ }
944
+
945
+ function parseCalAddress(value: string, params: Record<string, string>): { name: string; email: string } {
946
+ const email = (value || "").replace(/^mailto:/i, "").trim();
947
+ return { name: (params.CN || "").trim() || email, email };
948
+ }
949
+
950
+ /**
951
+ * Parse the VEVENT out of a text/calendar part.
952
+ *
953
+ * Deliberately hand-rolled rather than pulling in an ICS library: mailx-types
954
+ * is the zero-dependency package shared with Android, and an invite card needs
955
+ * a dozen properties, not full RFC 5545 coverage. Returns null when there is
956
+ * no VEVENT to show.
957
+ */
958
+ export function parseInvite(ics: string): ParsedInvite | null {
959
+ if (!ics || !/BEGIN:VEVENT/i.test(ics)) return null;
960
+ const lines = unfoldIcs(ics);
961
+
962
+ const out: ParsedInvite = {
963
+ method: "", uid: "", sequence: 0, summary: "", description: "", location: "",
964
+ start: "", end: "", tzid: "", allDay: false,
965
+ organizer: { name: "", email: "" }, attendees: [], rrule: "", status: "",
966
+ fromGoogle: false,
967
+ };
968
+
969
+ let inEvent = false;
970
+ // VTIMEZONE blocks contain their own DTSTART/RRULE — those describe the
971
+ // zone's DST rules, not the meeting. Ignore everything inside them.
972
+ let depthNonEvent = 0;
973
+
974
+ for (const line of lines) {
975
+ const up = line.toUpperCase();
976
+ if (up.startsWith("BEGIN:VEVENT")) { inEvent = true; continue; }
977
+ if (up.startsWith("END:VEVENT")) { inEvent = false; continue; }
978
+ if (!inEvent && (up.startsWith("BEGIN:VTIMEZONE") || up.startsWith("BEGIN:VALARM"))) { depthNonEvent++; continue; }
979
+ if (up.startsWith("END:VTIMEZONE") || up.startsWith("END:VALARM")) { if (depthNonEvent) depthNonEvent--; continue; }
980
+ if (inEvent && up.startsWith("BEGIN:VALARM")) { depthNonEvent++; continue; }
981
+
982
+ const p = splitIcsLine(line);
983
+ if (!p) continue;
984
+
985
+ if (!inEvent) {
986
+ if (p.key === "METHOD") out.method = p.value.trim().toUpperCase();
987
+ else if (p.key === "PRODID" && /google/i.test(p.value)) out.fromGoogle = true;
988
+ continue;
989
+ }
990
+ if (depthNonEvent) continue; // inside VALARM
991
+
992
+ switch (p.key) {
993
+ case "SUMMARY": out.summary = unescapeIcs(p.value); break;
994
+ case "DESCRIPTION": out.description = unescapeIcs(p.value); break;
995
+ case "LOCATION": out.location = unescapeIcs(p.value); break;
996
+ case "UID": out.uid = p.value.trim(); break;
997
+ case "STATUS": out.status = p.value.trim().toUpperCase(); break;
998
+ case "RRULE": out.rrule = p.value.trim(); break;
999
+ case "SEQUENCE": out.sequence = parseInt(p.value, 10) || 0; break;
1000
+ case "DTSTART":
1001
+ out.start = icsDateToIso(p.value.trim(), false);
1002
+ out.tzid = p.params.TZID || out.tzid;
1003
+ out.allDay = (p.params.VALUE || "").toUpperCase() === "DATE" || !/T/.test(p.value);
1004
+ break;
1005
+ case "DTEND":
1006
+ out.end = icsDateToIso(p.value.trim(), false);
1007
+ out.tzid = out.tzid || p.params.TZID || "";
1008
+ break;
1009
+ case "ORGANIZER":
1010
+ out.organizer = parseCalAddress(p.value, p.params);
1011
+ break;
1012
+ case "ATTENDEE": {
1013
+ const a = parseCalAddress(p.value, p.params);
1014
+ out.attendees.push({
1015
+ name: a.name,
1016
+ email: a.email,
1017
+ status: (p.params.PARTSTAT || "NEEDS-ACTION").toUpperCase(),
1018
+ rsvp: (p.params.RSVP || "").toUpperCase() === "TRUE",
1019
+ });
1020
+ break;
1021
+ }
1022
+ }
1023
+ }
1024
+
1025
+ if (!out.summary && !out.start) return null;
1026
+ return out;
1027
+ }
1028
+
1029
+ /**
1030
+ * Does the message body already carry Google's own Yes/No/Maybe controls?
1031
+ *
1032
+ * Google Calendar invitations embed working RSVP links
1033
+ * (`calendar.google.com/calendar/event?action=RESPOND&rst=1|2|3`). When they
1034
+ * are present the UI must show the invite summary but NOT a second set of RSVP
1035
+ * buttons — two responders racing to set PARTSTAT is worse than one
1036
+ * (Bob 2026-08-22: "Google's own responder handles it so you might detect that
1037
+ * case specially").
1038
+ */
1039
+ export function inviteHasGoogleRsvp(bodyHtml: string): boolean {
1040
+ if (!bodyHtml) return false;
1041
+ return /calendar\.google\.com\/calendar\/event\?action=RESPOND/i.test(bodyHtml);
1042
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-types",
3
- "version": "0.1.57",
3
+ "version": "0.1.59",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",