@bobfrankston/rmfmail 1.1.140 → 1.1.142
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.bundle.js +99 -62
- package/client/app.bundle.js.map +2 -2
- package/client/app.js +28 -3
- package/client/app.js.map +1 -1
- package/client/app.ts +22 -2
- package/client/components/alarms.js +126 -87
- package/client/components/alarms.js.map +1 -1
- package/client/components/alarms.ts +32 -1
- package/client/compose/compose.bundle.js +37 -4
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/compose/compose.js +50 -7
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +37 -7
- package/package.json +1 -1
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-43144 → node_modules.npmglobalize-stash-21212}/.package-lock.json +0 -0
package/client/app.ts
CHANGED
|
@@ -949,12 +949,32 @@ async function openCompose(mode: ComposeMode, overrideMsg?: any, overrideAccount
|
|
|
949
949
|
const initJson = JSON.stringify(init);
|
|
950
950
|
try { sessionStorage.setItem("composeInit", initJson); }
|
|
951
951
|
catch (e: any) { console.error("[compose] sessionStorage.setItem failed:", e?.message || e); }
|
|
952
|
+
// Stash on the parent window so a same-origin iframe can pull it via
|
|
953
|
+
// window.parent (most reliable handoff under WebView2 custom-protocol —
|
|
954
|
+
// sessionStorage and postMessage both fail intermittently). Keyed by
|
|
955
|
+
// a unique token in the iframe URL so concurrent composes don't crosswire.
|
|
956
|
+
const composeKey = "init-" + Math.random().toString(36).slice(2, 10);
|
|
957
|
+
(window as any).__mailxComposeInits = (window as any).__mailxComposeInits || {};
|
|
958
|
+
(window as any).__mailxComposeInits[composeKey] = init;
|
|
959
|
+
// Expose the key on the iframe so its IIFE can fetch the right blob.
|
|
960
|
+
try { (frame as any).dataset.composeKey = composeKey; } catch { /* */ }
|
|
952
961
|
const post = (): void => {
|
|
953
|
-
try { frame?.contentWindow?.postMessage({ type: "compose-init", init }, "*"); }
|
|
962
|
+
try { frame?.contentWindow?.postMessage({ type: "compose-init", init, composeKey }, "*"); }
|
|
963
|
+
catch (e: any) { logClientEvent("compose-post-failed", { err: e?.message || String(e) }); }
|
|
954
964
|
};
|
|
965
|
+
logClientEvent("compose-handoff", { hasFrame: !!frame, hasContentWindow: !!frame?.contentWindow, composeKey, bodyBytes: initJson.length });
|
|
955
966
|
post();
|
|
956
967
|
// Iframe may not be loaded yet — re-post on load so the listener exists.
|
|
957
|
-
try { frame?.addEventListener("load",
|
|
968
|
+
try { frame?.addEventListener("load", () => { logClientEvent("compose-iframe-loaded", { composeKey }); post(); }); } catch { /* */ }
|
|
969
|
+
// And keep posting every 100ms for up to 3s as a defense-in-depth — if
|
|
970
|
+
// both load and the initial post race the wrong way, the iframe's IIFE
|
|
971
|
+
// will see the payload on its next tick.
|
|
972
|
+
let attempts = 0;
|
|
973
|
+
const heartbeat = setInterval(() => {
|
|
974
|
+
attempts++;
|
|
975
|
+
post();
|
|
976
|
+
if (attempts >= 30) clearInterval(heartbeat);
|
|
977
|
+
}, 100);
|
|
958
978
|
}
|
|
959
979
|
|
|
960
980
|
function showComposeOverlay(title = "Compose"): HTMLIFrameElement {
|
|
@@ -402,9 +402,31 @@ async function firePopupForItem(item) {
|
|
|
402
402
|
r = await showInWebViewPopup({ title, html, buttons });
|
|
403
403
|
}
|
|
404
404
|
}
|
|
405
|
+
catch (e) {
|
|
406
|
+
// Popup IPC failed (msger crash, transport drop). Treat as Dismiss
|
|
407
|
+
// so a re-fire doesn't haunt the user — they engaged with the popup;
|
|
408
|
+
// the failure is on us, not on them (Bob 2026-05-24).
|
|
409
|
+
alog("popup IPC failed — treating as Dismiss", { key: item.uuid, err: e?.message || String(e) });
|
|
410
|
+
r = { button: "Dismiss" };
|
|
411
|
+
}
|
|
405
412
|
finally {
|
|
406
413
|
openPopups.delete(item.uuid);
|
|
407
414
|
}
|
|
415
|
+
// Defensive: a null/undefined result (host returned nothing, window
|
|
416
|
+
// closed without an event, race between snooze-restart and the dismiss
|
|
417
|
+
// popup) used to fall straight to `switch (r.button)` and throw. The
|
|
418
|
+
// throw was swallowed by pollAlarms' fire-and-forget catch, leaving NO
|
|
419
|
+
// dismiss/snooze persisted — so a restart re-fired the same reminder.
|
|
420
|
+
// Treat the void result as Dismiss: the popup HAD explicit buttons,
|
|
421
|
+
// a click→empty-response means "user closed it" (Bob 2026-05-24 log:
|
|
422
|
+
// 21:50:13→21:50:47 popup with no follow-up dismiss/snooze log line).
|
|
423
|
+
if (!r || typeof r !== "object" || typeof r.button !== "string") {
|
|
424
|
+
alog("popup returned empty / malformed — treating as Dismiss", { key: item.uuid, raw: r });
|
|
425
|
+
r = { button: "Dismiss" };
|
|
426
|
+
}
|
|
427
|
+
else {
|
|
428
|
+
alog("popup result", { key: item.uuid, button: r.button, form: r.form });
|
|
429
|
+
}
|
|
408
430
|
const api = window.mailxapi;
|
|
409
431
|
const openLink = () => {
|
|
410
432
|
if (!item.htmlLink)
|
|
@@ -414,95 +436,112 @@ async function firePopupForItem(item) {
|
|
|
414
436
|
else
|
|
415
437
|
window.open(item.htmlLink, "_blank");
|
|
416
438
|
};
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
439
|
+
// Wrap the action handler so any throw inside (e.g., snoozeItem can't
|
|
440
|
+
// write to localStorage in private mode, openLink fails) still falls
|
|
441
|
+
// back to a persisted Dismiss. Without this catch a thrown handler
|
|
442
|
+
// returned to pollAlarms' fire-and-forget .catch and the alarm came
|
|
443
|
+
// back on the next session (Bob 2026-05-24: dismissed reminder
|
|
444
|
+
// reappeared after restart).
|
|
445
|
+
try {
|
|
446
|
+
switch (r.button) {
|
|
447
|
+
case "Open":
|
|
448
|
+
openLink();
|
|
449
|
+
// After opening for edit, treat the event as a brand-new
|
|
450
|
+
// entry: clear all local alarm state so the next poll tick
|
|
451
|
+
// re-fetches the (possibly edited) event and decides anew
|
|
452
|
+
// whether to alarm. Edits can come from any client (web,
|
|
453
|
+
// phone, another mailx instance, a co-organizer) — we just
|
|
454
|
+
// re-evaluate against the synced data. Pushed start out →
|
|
455
|
+
// alarm waits for the new lead time; pulled in → fires again.
|
|
456
|
+
// No carryover.
|
|
457
|
+
//
|
|
458
|
+
// Brief 2-min snooze gives the calendar sync window to pick
|
|
459
|
+
// up edits before the next alarm pass — without it, the
|
|
460
|
+
// next 30-s poll reads the still-stale local cache and
|
|
461
|
+
// re-fires immediately. After 2 min, re-evaluation is
|
|
462
|
+
// against (hopefully) fresh data.
|
|
463
|
+
{
|
|
464
|
+
const dm = loadDismissed();
|
|
465
|
+
delete dm[item.uuid];
|
|
466
|
+
saveDismissed(dm);
|
|
467
|
+
}
|
|
468
|
+
firedThisSession.delete(item.uuid);
|
|
469
|
+
snoozeItem(item, 2);
|
|
470
|
+
break;
|
|
471
|
+
case "snooze": {
|
|
472
|
+
// Generic snooze, duration in `form.minutes`. Falls back to
|
|
473
|
+
// 15 min if the form is malformed or missing the value (the
|
|
474
|
+
// chip / custom-form JS always populates it, so this is just
|
|
475
|
+
// defense-in-depth).
|
|
476
|
+
const m = Math.max(1, Math.floor(r.form?.minutes ?? 15));
|
|
477
|
+
snoozeItem(item, m);
|
|
478
|
+
break;
|
|
438
479
|
}
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
480
|
+
// Legacy literal labels — retained so a pre-upgrade popup whose
|
|
481
|
+
// bundle still says "Snooze 15m" / "Snooze 1h" continues to work
|
|
482
|
+
// through a daemon-side rebuild without a UI restart.
|
|
483
|
+
case "Snooze 15m":
|
|
484
|
+
snoozeItem(item, 15);
|
|
485
|
+
break;
|
|
486
|
+
case "Snooze 1h":
|
|
487
|
+
snoozeItem(item, 60);
|
|
488
|
+
break;
|
|
489
|
+
case "Dismiss":
|
|
490
|
+
case "dismissed": // msger reports window-close as r.dismissed=true → daemon
|
|
491
|
+
// wrapper lowercases to "dismissed". Treat the same as
|
|
492
|
+
// explicit Dismiss-button: the popup HAD a clear button
|
|
493
|
+
// for that action, so any close that lands here is the
|
|
494
|
+
// user's "I'm done with this reminder" — not a 15-min
|
|
495
|
+
// snooze. Bob 2026-05-14: "I keep dismissing the
|
|
496
|
+
// reminder but it keeps coming back" — the lowercase
|
|
497
|
+
// path was hitting the snooze-15-min default, so the
|
|
498
|
+
// popup re-fired every 15 min indefinitely.
|
|
499
|
+
case "closed": // user closed via X / Esc with no labeled button —
|
|
500
|
+
// popup HAS Dismiss right there; the user clearly
|
|
501
|
+
// didn't want this. Same treatment.
|
|
502
|
+
{
|
|
503
|
+
const m = loadDismissed();
|
|
504
|
+
m[item.uuid] = true;
|
|
505
|
+
saveDismissed(m);
|
|
506
|
+
alog("dismiss saved", { key: item.uuid, via: r.button });
|
|
507
|
+
}
|
|
508
|
+
break;
|
|
509
|
+
case "Delete":
|
|
510
|
+
// Remove the event server-side. Local row gets the pending-delete
|
|
511
|
+
// mark inside the service; reconcile picks it up. Also dismiss
|
|
512
|
+
// the alarm so it can't re-fire on a stale local row before the
|
|
513
|
+
// delete propagates.
|
|
514
|
+
{
|
|
515
|
+
const m = loadDismissed();
|
|
516
|
+
m[item.uuid] = true;
|
|
517
|
+
saveDismissed(m);
|
|
518
|
+
}
|
|
519
|
+
firedThisSession.delete(item.uuid);
|
|
520
|
+
deleteCalendarEvent(item.uuid).catch((e) => console.error(` [alarm] delete failed for ${item.uuid}: ${e?.message || e}`));
|
|
521
|
+
break;
|
|
522
|
+
default:
|
|
523
|
+
// Unrecognized button label — shouldn't happen with the
|
|
524
|
+
// current popup HTML. Log it so we can diagnose, then
|
|
525
|
+
// dismiss permanently (the popup HAD explicit options; if
|
|
526
|
+
// the user picked something we can't decode, don't keep
|
|
527
|
+
// pestering them every 30 s).
|
|
528
|
+
alog("unknown popup result", { button: r.button, form: r.form });
|
|
529
|
+
{
|
|
530
|
+
const m = loadDismissed();
|
|
531
|
+
m[item.uuid] = true;
|
|
532
|
+
saveDismissed(m);
|
|
533
|
+
}
|
|
534
|
+
break;
|
|
450
535
|
}
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
case "Dismiss":
|
|
461
|
-
case "dismissed": // msger reports window-close as r.dismissed=true → daemon
|
|
462
|
-
// wrapper lowercases to "dismissed". Treat the same as
|
|
463
|
-
// explicit Dismiss-button: the popup HAD a clear button
|
|
464
|
-
// for that action, so any close that lands here is the
|
|
465
|
-
// user's "I'm done with this reminder" — not a 15-min
|
|
466
|
-
// snooze. Bob 2026-05-14: "I keep dismissing the
|
|
467
|
-
// reminder but it keeps coming back" — the lowercase
|
|
468
|
-
// path was hitting the snooze-15-min default, so the
|
|
469
|
-
// popup re-fired every 15 min indefinitely.
|
|
470
|
-
case "closed": // user closed via X / Esc with no labeled button —
|
|
471
|
-
// popup HAS Dismiss right there; the user clearly
|
|
472
|
-
// didn't want this. Same treatment.
|
|
473
|
-
{
|
|
474
|
-
const m = loadDismissed();
|
|
475
|
-
m[item.uuid] = true;
|
|
476
|
-
saveDismissed(m);
|
|
477
|
-
alog("dismiss saved", { key: item.uuid, via: r.button });
|
|
478
|
-
}
|
|
479
|
-
break;
|
|
480
|
-
case "Delete":
|
|
481
|
-
// Remove the event server-side. Local row gets the pending-delete
|
|
482
|
-
// mark inside the service; reconcile picks it up. Also dismiss
|
|
483
|
-
// the alarm so it can't re-fire on a stale local row before the
|
|
484
|
-
// delete propagates.
|
|
485
|
-
{
|
|
486
|
-
const m = loadDismissed();
|
|
487
|
-
m[item.uuid] = true;
|
|
488
|
-
saveDismissed(m);
|
|
489
|
-
}
|
|
490
|
-
firedThisSession.delete(item.uuid);
|
|
491
|
-
deleteCalendarEvent(item.uuid).catch((e) => console.error(` [alarm] delete failed for ${item.uuid}: ${e?.message || e}`));
|
|
492
|
-
break;
|
|
493
|
-
default:
|
|
494
|
-
// Unrecognized button label — shouldn't happen with the
|
|
495
|
-
// current popup HTML. Log it so we can diagnose, then
|
|
496
|
-
// dismiss permanently (the popup HAD explicit options; if
|
|
497
|
-
// the user picked something we can't decode, don't keep
|
|
498
|
-
// pestering them every 30 s).
|
|
499
|
-
alog("unknown popup result", { button: r.button, form: r.form });
|
|
500
|
-
{
|
|
501
|
-
const m = loadDismissed();
|
|
502
|
-
m[item.uuid] = true;
|
|
503
|
-
saveDismissed(m);
|
|
504
|
-
}
|
|
505
|
-
break;
|
|
536
|
+
}
|
|
537
|
+
catch (e) {
|
|
538
|
+
alog("action handler threw — forcing Dismiss", { key: item.uuid, err: e?.message || String(e) });
|
|
539
|
+
try {
|
|
540
|
+
const m = loadDismissed();
|
|
541
|
+
m[item.uuid] = true;
|
|
542
|
+
saveDismissed(m);
|
|
543
|
+
}
|
|
544
|
+
catch { /* */ }
|
|
506
545
|
}
|
|
507
546
|
}
|
|
508
547
|
function snoozeItem(item, minutes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alarms.js","sourceRoot":"","sources":["alarms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3H;;;yEAGyE;AACzE,SAAS,IAAI,CAAC,GAAW,EAAE,IAAU;IACjC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC;QAAC,cAAc,CAAC,WAAW,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,gCAAgC,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,aAAa,GAAG,uBAAuB,CAAC,CAAM,iBAAiB;AACrE,MAAM,WAAW,GAAG,qBAAqB,CAAC,CAAU,yBAAyB;AAC7E,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAiB,4CAA4C;AAChG,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAY,6BAA6B;AACjF,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAchC,SAAS,aAAa;IAClB,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AAChG,CAAC;AACD,SAAS,aAAa,CAAC,GAA4B;IAC/C,IAAI,CAAC;QAAC,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAClG,CAAC;AACD,SAAS,WAAW;IAChB,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AAC9F,CAAC;AACD,SAAS,WAAW,CAAC,GAA2B;IAC5C,IAAI,CAAC;QAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;AACnF,CAAC;AAED,4DAA4D;AAC5D,SAAS,UAAU,CAAC,GAAW;IAC3B,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,oEAAoE;QACpE,kCAAkC;QAClC,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC;YAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO,GAAG,IAAI,CAAC;QAAC,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO;QAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,2DAA2D;AAC/D,CAAC;AAED;;;;uEAIuE;AACvE,SAAS,MAAM,CAAC,IAAY,EAAE,EAAU;IACpC,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAW;IACvC,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,GAAG,WAAW,EAAE,GAAG,GAAG,YAAY,CAAC,CAAC;QAC9E,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACtB,4DAA4D;YAC5D,4DAA4D;YAC5D,8DAA8D;YAC9D,yDAAyD;YACzD,2DAA2D;YAC3D,8DAA8D;YAC9D,0DAA0D;YAC1D,4DAA4D;YAC5D,6DAA6D;YAC7D,oCAAoC;YACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,2DAA2D;YAC3D,0DAA0D;YAC1D,8DAA8D;YAC9D,sDAAsD;YACtD,8DAA8D;YAC9D,2DAA2D;YAC3D,6DAA6D;YAC7D,8DAA8D;YAC9D,4BAA4B;YAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACpF,MAAM,OAAO,GAAa,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;YAC5E,+DAA+D;YAC/D,6DAA6D;YAC7D,wDAAwD;YACxD,yDAAyD;YACzD,+DAA+D;YAC/D,6DAA6D;YAC7D,gEAAgE;YAChE,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,IAAI,GAAgE,IAAI,CAAC;YAC7E,MAAM,eAAe,GAAa,EAAE,CAAC;YACrC,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC;gBACxC,IAAI,SAAS,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC7B,MAAM,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;gBACjC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;gBACxC,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,GAAG,GAAG,GAAG,WAAW,EAAE,CAAC;oBACpD,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC/B,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;wBACtC,IAAI,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;oBACxC,CAAC;gBACL,CAAC;YACL,CAAC;YACD,IAAI,IAAI,EAAE,CAAC;gBACP,8DAA8D;gBAC9D,4DAA4D;gBAC5D,4DAA4D;gBAC5D,wDAAwD;gBACxD,kDAAkD;gBAClD,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBACpG,KAAK,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU;oBAChC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,YAAY;oBAC/B,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO;oBACxC,QAAQ,EAAE,EAAE,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,qDAAqD;gBACrD,yDAAyD;gBACzD,gCAAgC;gBAChC,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;oBACrC,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ;wBAAE,SAAS;oBACzC,MAAM,CAAC,GAAG,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC;oBACtC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;wBAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;wBAAC,OAAO,GAAG,IAAI,CAAC;oBAAC,CAAC;gBAC/D,CAAC;gBACD,IAAI,OAAO;oBAAE,aAAa,CAAC,SAAS,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,6DAA6D,CAAC,CAAC;IAEzE,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK;gBAAE,SAAS;YAClC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,SAAS,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;YAC1C,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,GAAG,GAAG,GAAG,WAAW,EAAE,CAAC;gBACpD,KAAK,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM;oBACvB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,YAAY;oBAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK;iBACtC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;IAEjB,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,EAAU;IAC1B,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACnB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,OAAO,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AACjI,CAAC;AAED,IAAI,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;AACzC;;;;;2EAK2E;AAC3E,IAAI,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;AAEnC,SAAS,UAAU,CAAC,CAAS;IACzB,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;AACtH,CAAC;AAED;;;wDAGwD;AACxD,SAAS,kBAAkB,CAAC,IAAwD;IAChF,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,eAAe,CAAC;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACrC,yCAAyC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,kBAAkB,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CACnK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,KAAK,CAAC,SAAS,GAAG;;;4CAGkB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;;sCAG5B,IAAI,CAAC,IAAI;sCACT,WAAW;SACxC,CAAC;QACF,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAS,MAAc,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC;YAAC,MAAM,EAAE,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG,CAAC,MAAc,EAAQ,EAAE;YACrC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC;gBAAC,MAAM,EAAE,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;YACxD,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACrD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAQ,EAAE;YACrC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAAC,CAAC,CAAC,eAAe,EAAE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;QACjE,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAClD,KAAK,CAAC,gBAAgB,CAAoB,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACrE,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAe;IAC3C,+DAA+D;IAC/D,iEAAiE;IACjE,oEAAoE;IACpE,qEAAqE;IACrE,qDAAqD;IACrD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO;IACtC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1B,kEAAkE;IAClE,qEAAqE;IACrE,mEAAmE;IACnE,gEAAgE;IAChE,MAAM,OAAO,GAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAErD,kEAAkE;IAClE,yEAAyE;IACzE,uEAAuE;IACvE,kEAAkE;IAClE,mEAAmE;IACnE,qEAAqE;IACrE,oEAAoE;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC;IAC3E,oEAAoE;IACpE,kEAAkE;IAClE,MAAM,OAAO,GAA8C;QACvD,EAAE,KAAK,EAAE,IAAI,EAAG,OAAO,EAAE,CAAC,EAAE;QAC5B,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,EAAE,KAAK,EAAE,IAAI,EAAG,OAAO,EAAE,EAAE,EAAE;QAC7B,EAAE,KAAK,EAAE,IAAI,EAAG,OAAO,EAAE,GAAG,EAAE;QAC9B,EAAE,KAAK,EAAE,IAAI,EAAG,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE;KACrC,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAChC,uDAAuD,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,WAAW,CAC1F,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,MAAM,UAAU,GAAa,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAClC,kDAAkD,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAC/F,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;0CAyByB,IAAI,UAAU,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;sBACxD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;sBACnC,SAAS;;;MAGzB,WAAW;;;;;;;;;;;;;yBAaQ,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAgCpB,CAAC;IAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eAAe,CAAC;IAC/E,MAAM,OAAO,GAAG,CAAC,CAAE,MAAc,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAC9D,6DAA6D;IAC7D,gEAAgE;IAChE,kEAAkE;IAClE,IAAI,CAAkD,CAAC;IACvD,IAAI,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACV,CAAC,GAAG,MAAM,iBAAiB,CAAC;gBACxB,KAAK,EAAE,IAAI,EAAE,OAAO;gBACpB,0DAA0D;gBAC1D,yDAAyD;gBACzD,iDAAiD;gBACjD,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;aACpC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,CAAC,GAAG,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;YAAS,CAAC;QACP,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,GAAG,GAAI,MAAc,CAAC,QAAQ,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAS,EAAE;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,GAAG,EAAE,YAAY;YAAE,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;YAClD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC;IACF,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACP,QAAQ,EAAE,CAAC;YACX,yDAAyD;YACzD,2DAA2D;YAC3D,0DAA0D;YAC1D,yDAAyD;YACzD,2DAA2D;YAC3D,0DAA0D;YAC1D,8DAA8D;YAC9D,gBAAgB;YAChB,EAAE;YACF,4DAA4D;YAC5D,wDAAwD;YACxD,uDAAuD;YACvD,sDAAsD;YACtD,kCAAkC;YAClC,CAAC;gBAAC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;gBAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;YACxE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACpB,MAAM;QACV,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,4DAA4D;YAC5D,4DAA4D;YAC5D,6DAA6D;YAC7D,qBAAqB;YACrB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YACzD,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACpB,MAAM;QACV,CAAC;QACD,gEAAgE;QAChE,iEAAiE;QACjE,sDAAsD;QACtD,KAAK,YAAY;YAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAAC,MAAM;QAC/C,KAAK,WAAW;YAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAAC,MAAM;QAC9C,KAAK,SAAS,CAAC;QACf,KAAK,WAAW,CAAC,CAAE,0DAA0D;QAC1D,uDAAuD;QACvD,wDAAwD;QACxD,uDAAuD;QACvD,sDAAsD;QACtD,iDAAiD;QACjD,qDAAqD;QACrD,qDAAqD;QACrD,4CAA4C;QAC/D,KAAK,QAAQ,EAAM,mDAAmD;YACnD,kDAAkD;YAClD,oCAAoC;YACnD,CAAC;gBAAC,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;gBAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACjE,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAAC,CAAC;YAC7D,MAAM;QACV,KAAK,QAAQ;YACT,kEAAkE;YAClE,+DAA+D;YAC/D,gEAAgE;YAChE,qBAAqB;YACrB,CAAC;gBAAC,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;gBAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;YACrE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAC5C,OAAO,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACnF,MAAM;QACV;YACI,wDAAwD;YACxD,sDAAsD;YACtD,0DAA0D;YAC1D,wDAAwD;YACxD,8BAA8B;YAC9B,IAAI,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAG,CAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1E,CAAC;gBAAC,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;gBAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;YACrE,MAAM;IACd,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,IAAe,EAAE,OAAe;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC;IACxC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,0EAA0E;IAC1E,wEAAwE;IACxE,0DAA0D;IAC1D,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,UAAU;IACrB,IAAI,QAAQ,CAAC,MAAM;QAAE,OAAO,CAAqB,8BAA8B;IAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,UAAU,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxC,kEAAkE;IAClE,oEAAoE;IACpE,iEAAiE;IACjE,8CAA8C;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEpD,mEAAmE;IACnE,8DAA8D;IAC9D,gEAAgE;IAChE,+CAA+C;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,CAAC;AACL,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,gBAAgB;IAC5B,IAAK,MAAc,CAAC,yBAAyB;QAAE,OAAO;IACrD,MAAc,CAAC,yBAAyB,GAAG,IAAI,CAAC;IACjD,8DAA8D;IAC9D,UAAU,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACjE,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC9E,oEAAoE;IACpE,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAS,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"alarms.js","sourceRoot":"","sources":["alarms.ts"],"names":[],"mappings":"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"}
|
|
@@ -375,7 +375,7 @@ async function firePopupForItem(item: AlarmItem): Promise<void> {
|
|
|
375
375
|
// Result now carries an optional `form` object — see msger's
|
|
376
376
|
// MessageBoxResult.form (serde_json::Value passthrough). Snooze
|
|
377
377
|
// chips/inputs send `{ button: "snooze", form: { minutes: N } }`.
|
|
378
|
-
let r: { button: string; form?: { minutes?: number } };
|
|
378
|
+
let r: { button: string; form?: { minutes?: number } } | null | undefined;
|
|
379
379
|
try {
|
|
380
380
|
if (hasHost) {
|
|
381
381
|
r = await showReminderPopup({
|
|
@@ -388,9 +388,29 @@ async function firePopupForItem(item: AlarmItem): Promise<void> {
|
|
|
388
388
|
} else {
|
|
389
389
|
r = await showInWebViewPopup({ title, html, buttons });
|
|
390
390
|
}
|
|
391
|
+
} catch (e: any) {
|
|
392
|
+
// Popup IPC failed (msger crash, transport drop). Treat as Dismiss
|
|
393
|
+
// so a re-fire doesn't haunt the user — they engaged with the popup;
|
|
394
|
+
// the failure is on us, not on them (Bob 2026-05-24).
|
|
395
|
+
alog("popup IPC failed — treating as Dismiss", { key: item.uuid, err: e?.message || String(e) });
|
|
396
|
+
r = { button: "Dismiss" };
|
|
391
397
|
} finally {
|
|
392
398
|
openPopups.delete(item.uuid);
|
|
393
399
|
}
|
|
400
|
+
// Defensive: a null/undefined result (host returned nothing, window
|
|
401
|
+
// closed without an event, race between snooze-restart and the dismiss
|
|
402
|
+
// popup) used to fall straight to `switch (r.button)` and throw. The
|
|
403
|
+
// throw was swallowed by pollAlarms' fire-and-forget catch, leaving NO
|
|
404
|
+
// dismiss/snooze persisted — so a restart re-fired the same reminder.
|
|
405
|
+
// Treat the void result as Dismiss: the popup HAD explicit buttons,
|
|
406
|
+
// a click→empty-response means "user closed it" (Bob 2026-05-24 log:
|
|
407
|
+
// 21:50:13→21:50:47 popup with no follow-up dismiss/snooze log line).
|
|
408
|
+
if (!r || typeof r !== "object" || typeof r.button !== "string") {
|
|
409
|
+
alog("popup returned empty / malformed — treating as Dismiss", { key: item.uuid, raw: r });
|
|
410
|
+
r = { button: "Dismiss" };
|
|
411
|
+
} else {
|
|
412
|
+
alog("popup result", { key: item.uuid, button: r.button, form: r.form });
|
|
413
|
+
}
|
|
394
414
|
|
|
395
415
|
const api = (window as any).mailxapi;
|
|
396
416
|
const openLink = (): void => {
|
|
@@ -398,6 +418,13 @@ async function firePopupForItem(item: AlarmItem): Promise<void> {
|
|
|
398
418
|
if (api?.openExternal) api.openExternal(item.htmlLink);
|
|
399
419
|
else window.open(item.htmlLink, "_blank");
|
|
400
420
|
};
|
|
421
|
+
// Wrap the action handler so any throw inside (e.g., snoozeItem can't
|
|
422
|
+
// write to localStorage in private mode, openLink fails) still falls
|
|
423
|
+
// back to a persisted Dismiss. Without this catch a thrown handler
|
|
424
|
+
// returned to pollAlarms' fire-and-forget .catch and the alarm came
|
|
425
|
+
// back on the next session (Bob 2026-05-24: dismissed reminder
|
|
426
|
+
// reappeared after restart).
|
|
427
|
+
try {
|
|
401
428
|
switch (r.button) {
|
|
402
429
|
case "Open":
|
|
403
430
|
openLink();
|
|
@@ -469,6 +496,10 @@ async function firePopupForItem(item: AlarmItem): Promise<void> {
|
|
|
469
496
|
{ const m = loadDismissed(); m[item.uuid] = true; saveDismissed(m); }
|
|
470
497
|
break;
|
|
471
498
|
}
|
|
499
|
+
} catch (e: any) {
|
|
500
|
+
alog("action handler threw — forcing Dismiss", { key: item.uuid, err: e?.message || String(e) });
|
|
501
|
+
try { const m = loadDismissed(); m[item.uuid] = true; saveDismissed(m); } catch { /* */ }
|
|
502
|
+
}
|
|
472
503
|
}
|
|
473
504
|
|
|
474
505
|
function snoozeItem(item: AlarmItem, minutes: number): void {
|
|
@@ -4167,16 +4167,46 @@ function scheduleDraftSave() {
|
|
|
4167
4167
|
var _postedInit = null;
|
|
4168
4168
|
var _parentInitReady = !!sessionStorage.getItem("composeInit");
|
|
4169
4169
|
var _parentInitListeners = [];
|
|
4170
|
+
var _msgEventCount = 0;
|
|
4170
4171
|
window.addEventListener("message", (e) => {
|
|
4172
|
+
_msgEventCount++;
|
|
4171
4173
|
if (e.data?.type === "compose-init-ready") {
|
|
4172
4174
|
_parentInitReady = true;
|
|
4173
4175
|
for (const fn of _parentInitListeners.splice(0)) fn();
|
|
4174
4176
|
} else if (e.data?.type === "compose-init" && e.data.init) {
|
|
4177
|
+
if (!_postedInit) {
|
|
4178
|
+
try {
|
|
4179
|
+
logClientEvent("compose-init-received", { src: "postMessage" });
|
|
4180
|
+
} catch {
|
|
4181
|
+
}
|
|
4182
|
+
}
|
|
4175
4183
|
_postedInit = e.data.init;
|
|
4176
4184
|
_parentInitReady = true;
|
|
4177
4185
|
for (const fn of _parentInitListeners.splice(0)) fn();
|
|
4178
4186
|
}
|
|
4179
4187
|
});
|
|
4188
|
+
function pullInitFromParent() {
|
|
4189
|
+
try {
|
|
4190
|
+
const myFrame = window.frameElement;
|
|
4191
|
+
const key = myFrame?.dataset?.composeKey;
|
|
4192
|
+
if (!key) return null;
|
|
4193
|
+
const stash = window.parent?.__mailxComposeInits;
|
|
4194
|
+
const init = stash?.[key];
|
|
4195
|
+
if (init) {
|
|
4196
|
+
try {
|
|
4197
|
+
logClientEvent("compose-init-received", { src: "parent-stash", key });
|
|
4198
|
+
} catch {
|
|
4199
|
+
}
|
|
4200
|
+
return init;
|
|
4201
|
+
}
|
|
4202
|
+
} catch (e) {
|
|
4203
|
+
try {
|
|
4204
|
+
logClientEvent("compose-init-pull-failed", { err: e?.message || String(e) });
|
|
4205
|
+
} catch {
|
|
4206
|
+
}
|
|
4207
|
+
}
|
|
4208
|
+
return null;
|
|
4209
|
+
}
|
|
4180
4210
|
function waitForParentInit(maxMs) {
|
|
4181
4211
|
if (_parentInitReady) return Promise.resolve();
|
|
4182
4212
|
return new Promise((resolve) => {
|
|
@@ -4192,17 +4222,20 @@ function waitForParentInit(maxMs) {
|
|
|
4192
4222
|
}
|
|
4193
4223
|
(async () => {
|
|
4194
4224
|
_ctick("init IIFE start");
|
|
4195
|
-
|
|
4225
|
+
let parentInit = pullInitFromParent();
|
|
4226
|
+
if (!parentInit && !sessionStorage.getItem("composeInit") && !_postedInit) {
|
|
4196
4227
|
_ctick("waiting for parent init");
|
|
4197
4228
|
await waitForParentInit(1500);
|
|
4198
|
-
_ctick(
|
|
4229
|
+
_ctick(`parent init received (msgEvents=${_msgEventCount})`);
|
|
4230
|
+
if (!_postedInit) parentInit = pullInitFromParent();
|
|
4199
4231
|
}
|
|
4200
4232
|
const stored = sessionStorage.getItem("composeInit");
|
|
4201
|
-
const initRaw = _postedInit || (stored ? JSON.parse(stored) : null);
|
|
4233
|
+
const initRaw = parentInit || _postedInit || (stored ? JSON.parse(stored) : null);
|
|
4202
4234
|
if (initRaw) {
|
|
4203
4235
|
sessionStorage.removeItem("composeInit");
|
|
4204
4236
|
const init = initRaw;
|
|
4205
|
-
|
|
4237
|
+
const src = parentInit ? "parent-stash" : _postedInit ? "postMessage" : "sessionStorage";
|
|
4238
|
+
_ctick(`init parsed (mode=${init.mode}, bodyHtml=${init.bodyHtml?.length || 0} bytes, src=${src})`);
|
|
4206
4239
|
if (init.accounts && init.accounts.length > 0) {
|
|
4207
4240
|
applyInit(init);
|
|
4208
4241
|
_ctick("applyInit done \u2014 compose visible");
|