From 4c0017d0c12a1d9f598e400cd8cb36e46760ebd0 Mon Sep 17 00:00:00 2001 From: Linus Rath <139418639+rathlinus@users.noreply.github.com> Date: Sun, 18 Oct 2026 19:48:11 +0200 Subject: [PATCH] feat: rework the demo around one persona with two accounts and a shared mailbox The demo user becomes Nora Lindqvist, engineering lead at Meridian Labs, in the week of a product launch. The fixtures tell one story across mail, contacts, calendar, tasks and files, and exercise the features the screenshots and the public demo should show: - a second, mail-only login (her personal domain) and the shared Support mailbox delegated to the work account, so the account switcher, the shared section and the merged inbox have real content - raw headers the way Stalwart writes them: the sender check fails on the phishing mail, newsletters carry a one-click unsubscribe, one mail asks for a read receipt, and spam scores show in the details - an iMIP invitation with a served .ics, an event waiting for the answer on the calendar, and RSVP patches applied in the demo client - @mentions as mailto links in a received mail, a verification code twelve minutes old, nested folders, named tags on the mail, contact groups, a scheduled message and tasks switched on - every attachment and file backed by real bytes under public/demo, generated by `scripts/demo-assets/generate.mjs`; contact photos are bundled portraits instead of requests to randomuser.me - folder counts computed from the mail instead of hand-kept numbers Demo login seeds the tags, templates and merged-inbox settings once per device and switches the cross-account gate on for the session; "Reset" restores them. `bulwark-demo-simulate=off` in localStorage stops the simulated incoming mail for screenshot runs. --- components/layout/sidebar.tsx | 2 + components/settings/account-settings.tsx | 2 +- lib/demo/__tests__/fixtures.test.ts | 292 ++++ lib/demo/demo-client.ts | 248 +++- lib/demo/demo-data.ts | 80 +- lib/demo/demo-preferences.ts | 40 + lib/demo/demo-utils.ts | 12 + lib/demo/fixtures/assets.ts | 58 + lib/demo/fixtures/calendars.ts | 491 ++++--- lib/demo/fixtures/contacts.ts | 403 +++--- lib/demo/fixtures/emails.ts | 1479 +++++++++------------ lib/demo/fixtures/files.ts | 182 +-- lib/demo/fixtures/filters.ts | 40 +- lib/demo/fixtures/identities.ts | 26 +- lib/demo/fixtures/keywords.ts | 15 + lib/demo/fixtures/mail.ts | 159 +++ lib/demo/fixtures/mailboxes.ts | 92 +- lib/demo/fixtures/people.ts | 80 ++ lib/demo/fixtures/personal.ts | 173 +++ lib/demo/fixtures/support.ts | 76 ++ lib/demo/fixtures/tasks.ts | 178 +-- lib/demo/fixtures/templates.ts | 43 + lib/demo/fixtures/vacation.ts | 12 +- public/demo/beacon-launch-deck.pptx | Bin 0 -> 99675 bytes public/demo/beacon-launch-plan-v3.pdf | Bin 0 -> 44032 bytes public/demo/beacon-rollback-runbook.docx | Bin 0 -> 8303 bytes public/demo/beacon-soak-dashboard.png | Bin 0 -> 110149 bytes public/demo/beacon-soak-metrics.xlsx | Bin 0 -> 8731 bytes public/demo/boarding-pass-ber-lis.pdf | Bin 0 -> 53751 bytes public/demo/book-cover-draft.png | Bin 0 -> 107537 bytes public/demo/budget-2026.xlsx | Bin 0 -> 6835 bytes public/demo/hetzner-invoice.pdf | Bin 0 -> 39366 bytes public/demo/hotel-voucher-lisbon.pdf | Bin 0 -> 51467 bytes public/demo/infra-summit-ticket.pdf | Bin 0 -> 93744 bytes public/demo/invoice-designco-2026-089.pdf | Bin 0 -> 50800 bytes public/demo/meeting-notes.md | 16 + public/demo/po-lumen-logistics.pdf | Bin 0 -> 39255 bytes public/demo/portraits/ahmed-hassan.jpg | Bin 0 -> 6845 bytes public/demo/portraits/alice-johnson.jpg | Bin 0 -> 9229 bytes public/demo/portraits/anna-kowalski.jpg | Bin 0 -> 11247 bytes public/demo/portraits/bob-chen.jpg | Bin 0 -> 8956 bytes public/demo/portraits/carlos-rivera.jpg | Bin 0 -> 9681 bytes public/demo/portraits/daniel-cooper.jpg | Bin 0 -> 9443 bytes public/demo/portraits/david-park.jpg | Bin 0 -> 7079 bytes public/demo/portraits/elias-lindqvist.jpg | Bin 0 -> 6717 bytes public/demo/portraits/emma-wilson.jpg | Bin 0 -> 8826 bytes public/demo/portraits/james-miller.jpg | Bin 0 -> 9617 bytes public/demo/portraits/jennifer-hayes.jpg | Bin 0 -> 9579 bytes public/demo/portraits/kenji-watanabe.jpg | Bin 0 -> 11917 bytes public/demo/portraits/lena-hoffmann.jpg | Bin 0 -> 10552 bytes public/demo/portraits/lisa-tanaka.jpg | Bin 0 -> 6439 bytes public/demo/portraits/marcus-hughes.jpg | Bin 0 -> 12042 bytes public/demo/portraits/maria-lopez.jpg | Bin 0 -> 11351 bytes public/demo/portraits/michael-torres.jpg | Bin 0 -> 8602 bytes public/demo/portraits/nora-lindqvist.jpg | Bin 0 -> 9935 bytes public/demo/portraits/olivia-bennett.jpg | Bin 0 -> 9074 bytes public/demo/portraits/priya-sharma.jpg | Bin 0 -> 12629 bytes public/demo/portraits/rachel-green.jpg | Bin 0 -> 6359 bytes public/demo/portraits/sarah-kim.jpg | Bin 0 -> 8332 bytes public/demo/portraits/sofia-russo.jpg | Bin 0 -> 11381 bytes public/demo/portraits/tomas-ferreira.jpg | Bin 0 -> 9920 bytes public/demo/portraits/wei-zhang.jpg | Bin 0 -> 9888 bytes public/demo/portraits/yusuf-demir.jpg | Bin 0 -> 6494 bytes public/demo/quarterly-report.pdf | Bin 0 -> 40644 bytes public/demo/service-agreement-draft.docx | Bin 0 -> 7787 bytes public/demo/todo.txt | 6 + scripts/demo-assets/generate.mjs | 473 +++++++ stores/auth-store.ts | 57 +- stores/policy-store.ts | 12 + 69 files changed, 3036 insertions(+), 1711 deletions(-) create mode 100644 lib/demo/__tests__/fixtures.test.ts create mode 100644 lib/demo/demo-preferences.ts create mode 100644 lib/demo/fixtures/assets.ts create mode 100644 lib/demo/fixtures/keywords.ts create mode 100644 lib/demo/fixtures/mail.ts create mode 100644 lib/demo/fixtures/people.ts create mode 100644 lib/demo/fixtures/personal.ts create mode 100644 lib/demo/fixtures/support.ts create mode 100644 lib/demo/fixtures/templates.ts create mode 100644 public/demo/beacon-launch-deck.pptx create mode 100644 public/demo/beacon-launch-plan-v3.pdf create mode 100644 public/demo/beacon-rollback-runbook.docx create mode 100644 public/demo/beacon-soak-dashboard.png create mode 100644 public/demo/beacon-soak-metrics.xlsx create mode 100644 public/demo/boarding-pass-ber-lis.pdf create mode 100644 public/demo/book-cover-draft.png create mode 100644 public/demo/budget-2026.xlsx create mode 100644 public/demo/hetzner-invoice.pdf create mode 100644 public/demo/hotel-voucher-lisbon.pdf create mode 100644 public/demo/infra-summit-ticket.pdf create mode 100644 public/demo/invoice-designco-2026-089.pdf create mode 100644 public/demo/meeting-notes.md create mode 100644 public/demo/po-lumen-logistics.pdf create mode 100644 public/demo/portraits/ahmed-hassan.jpg create mode 100644 public/demo/portraits/alice-johnson.jpg create mode 100644 public/demo/portraits/anna-kowalski.jpg create mode 100644 public/demo/portraits/bob-chen.jpg create mode 100644 public/demo/portraits/carlos-rivera.jpg create mode 100644 public/demo/portraits/daniel-cooper.jpg create mode 100644 public/demo/portraits/david-park.jpg create mode 100644 public/demo/portraits/elias-lindqvist.jpg create mode 100644 public/demo/portraits/emma-wilson.jpg create mode 100644 public/demo/portraits/james-miller.jpg create mode 100644 public/demo/portraits/jennifer-hayes.jpg create mode 100644 public/demo/portraits/kenji-watanabe.jpg create mode 100644 public/demo/portraits/lena-hoffmann.jpg create mode 100644 public/demo/portraits/lisa-tanaka.jpg create mode 100644 public/demo/portraits/marcus-hughes.jpg create mode 100644 public/demo/portraits/maria-lopez.jpg create mode 100644 public/demo/portraits/michael-torres.jpg create mode 100644 public/demo/portraits/nora-lindqvist.jpg create mode 100644 public/demo/portraits/olivia-bennett.jpg create mode 100644 public/demo/portraits/priya-sharma.jpg create mode 100644 public/demo/portraits/rachel-green.jpg create mode 100644 public/demo/portraits/sarah-kim.jpg create mode 100644 public/demo/portraits/sofia-russo.jpg create mode 100644 public/demo/portraits/tomas-ferreira.jpg create mode 100644 public/demo/portraits/wei-zhang.jpg create mode 100644 public/demo/portraits/yusuf-demir.jpg create mode 100644 public/demo/quarterly-report.pdf create mode 100644 public/demo/service-agreement-draft.docx create mode 100644 public/demo/todo.txt create mode 100644 scripts/demo-assets/generate.mjs diff --git a/components/layout/sidebar.tsx b/components/layout/sidebar.tsx index 6991daabd..97b95be86 100644 --- a/components/layout/sidebar.tsx +++ b/components/layout/sidebar.tsx @@ -832,6 +832,8 @@ function DemoBanner() { const handleReset = async () => { setIsResetting(true); router.push('/'); + // Also put the seeded demo preferences (tags, merged inbox, templates) back. + try { localStorage.removeItem('bulwark-demo-seed'); } catch { /* storage blocked */ } await loginDemo(); setIsResetting(false); }; diff --git a/components/settings/account-settings.tsx b/components/settings/account-settings.tsx index 92e17490a..ffa0eeef9 100644 --- a/components/settings/account-settings.tsx +++ b/components/settings/account-settings.tsx @@ -62,7 +62,7 @@ export function AccountSettings() { // `account.displayName` is refreshed from the server on every login/restore // (Stalwart principal "Full name" when available - #900); the identity name // is only a fallback until that entry exists. - const displayName = account?.displayName || primaryIdentity?.name || (isDemoMode ? 'Demo User' : undefined); + const displayName = account?.displayName || primaryIdentity?.name || (isDemoMode ? 'Nora Lindqvist' : undefined); const email = primaryIdentity?.email || account?.email || username; const max = getMaxAccounts(); diff --git a/lib/demo/__tests__/fixtures.test.ts b/lib/demo/__tests__/fixtures.test.ts new file mode 100644 index 000000000..796651d08 --- /dev/null +++ b/lib/demo/__tests__/fixtures.test.ts @@ -0,0 +1,292 @@ +/** + * The demo data is what every screenshot and the public demo show. These + * tests pin the facts the drivers and the viewer rely on: ids resolve, the + * files behind attachments exist with the recorded sizes, and the fixtures + * trigger the features they are written for (mention chips, the invitation + * banner, the verification-code chip, the sender-authentication warning, + * unsubscribe, read receipts). + */ +import { describe, it, expect } from 'vitest'; +import fs from 'node:fs'; +import path from 'node:path'; +import { getDemoData } from '../demo-data'; +import { DemoJMAPClient } from '../demo-client'; +import { DEMO_ASSETS } from '../fixtures/assets'; +import { PORTRAITS, NORA, ALICE, BOB } from '../fixtures/people'; +import { GONOGO_INVITE_BLOB, GONOGO_UID } from '../fixtures/emails'; +import { GONOGO_EVENT_ID, createGoNoGoInvitationIcs } from '../fixtures/calendars'; +import { SUPPORT_ACCOUNT_ID, SMB, MB } from '../fixtures/mailboxes'; +import { DEMO_KEYWORDS } from '../fixtures/keywords'; +import { getSenderVerification, extractListHeaders } from '@/lib/email-headers'; +import { findVerificationCode } from '@/lib/verification-code'; +import { findCalendarAttachment } from '@/lib/calendar-invitation'; +import { mentionFromLink } from '@/lib/recipient-mentions'; +import { KEYWORD_PALETTE } from '@/stores/settings-store'; + +const PUBLIC = path.resolve(__dirname, '..', '..', '..', 'public'); +const work = getDemoData('work'); +const personal = getDemoData('personal'); + +function allMailboxIds(data: ReturnType): Set { + const ids = data.mailboxes.map((m) => m.id); + for (const shared of Object.values(data.sharedMailboxes)) ids.push(...shared.mailboxes.map((m) => m.id)); + return new Set(ids); +} + +describe('demo fixtures: structure', () => { + it.each([['work', work], ['personal', personal]] as const)('%s mail only uses folders that exist and has unique ids', (_name, data) => { + const mailboxIds = allMailboxIds(data); + const seenIds = new Set(); + const seenMessageIds = new Set(); + for (const email of data.emails) { + expect(seenIds.has(email.id), `duplicate id ${email.id}`).toBe(false); + seenIds.add(email.id); + expect(seenMessageIds.has(email.messageId!), `duplicate Message-ID ${email.messageId}`).toBe(false); + seenMessageIds.add(email.messageId!); + for (const mailboxId of Object.keys(email.mailboxIds)) { + expect(mailboxIds.has(mailboxId), `${email.id} is filed in unknown folder ${mailboxId}`).toBe(true); + } + } + }); + + it('reply chains point at messages that exist', () => { + const known = new Set([...work.emails, ...personal.emails].map((e) => e.messageId)); + for (const email of [...work.emails, ...personal.emails]) { + for (const ref of [...(email.inReplyTo ?? []), ...(email.references ?? [])]) { + expect(known.has(ref), `${email.id} references ${ref}`).toBe(true); + } + } + }); + + it('every thread with several messages shares one subject stem', () => { + const byThread = new Map(); + for (const e of [...work.emails, ...personal.emails]) byThread.set(e.threadId, [...(byThread.get(e.threadId) ?? []), e]); + for (const [threadId, emails] of byThread) { + if (emails.length < 2) continue; + const stems = new Set(emails.map((e) => (e.subject ?? '').replace(/^(re|fwd?):\s*/i, '').toLowerCase())); + expect(stems.size, `thread ${threadId} mixes subjects ${[...stems].join(' | ')}`).toBe(1); + } + }); + + it('nothing in an inbox is dated in the future', () => { + const now = Date.now(); + for (const e of [...work.emails, ...personal.emails]) { + expect(new Date(e.receivedAt).getTime(), `${e.id} is in the future`).toBeLessThanOrEqual(now); + } + }); + + it('the inbox is busy enough to scroll and about a third unread', () => { + const inbox = work.emails.filter((e) => e.mailboxIds[MB.inbox]); + expect(inbox.length).toBeGreaterThanOrEqual(35); + const unread = inbox.filter((e) => !e.keywords.$seen).length / inbox.length; + expect(unread).toBeGreaterThan(0.25); + expect(unread).toBeLessThan(0.5); + }); + + it('every tag on a message has a definition with a palette colour', () => { + const defined = new Set(DEMO_KEYWORDS.map((k) => `$label:${k.id}`)); + for (const k of DEMO_KEYWORDS) expect(KEYWORD_PALETTE[k.color], `colour ${k.color}`).toBeDefined(); + for (const e of [...work.emails, ...personal.emails]) { + for (const keyword of Object.keys(e.keywords)) { + if (keyword.startsWith('$label:')) expect(defined.has(keyword), `${e.id} carries undefined tag ${keyword}`).toBe(true); + } + } + // The sidebar should have something to count for each tag. + for (const tag of defined) { + expect(work.emails.some((e) => e.keywords[tag]) || personal.emails.some((e) => e.keywords[tag]), `${tag} is never used`).toBe(true); + } + }); + + it('calendar items and files point at calendars and assets that exist', () => { + const calendars = new Set(work.calendars.map((c) => c.id)); + for (const ev of work.calendarEvents) for (const id of Object.keys(ev.calendarIds)) expect(calendars.has(id), ev.id).toBe(true); + for (const t of work.calendarTasks) for (const id of Object.keys(t.calendarIds)) expect(calendars.has(id), t.id).toBe(true); + for (const node of work.fileNodes) { + if (node.blobId) expect(DEMO_ASSETS[node.blobId as keyof typeof DEMO_ASSETS], `${node.name} -> ${node.blobId}`).toBeDefined(); + if (node.parentId) expect(work.fileNodes.some((n) => n.id === node.parentId), `${node.name} parent`).toBe(true); + } + }); + + it('contact groups only list contacts that exist', () => { + const ids = new Set(work.contacts.map((c) => c.id)); + for (const group of work.contacts.filter((c) => c.kind === 'group')) { + for (const member of Object.keys(group.members ?? {})) expect(ids.has(member), `${group.id} -> ${member}`).toBe(true); + } + expect(work.contacts.filter((c) => c.kind === 'group').length).toBeGreaterThanOrEqual(3); + }); + + it('people who write to Nora from the cast are in her address books', () => { + const contactEmails = new Set(work.contacts.flatMap((c) => Object.values(c.emails ?? {}).map((e) => e.address.toLowerCase()))); + for (const p of PORTRAITS) { + if (p.email === NORA.email) continue; + expect(contactEmails.has(p.email.toLowerCase()), `${p.name} has a portrait but no contact card`).toBe(true); + } + }); +}); + +describe('demo fixtures: files behind the data', () => { + it('every asset exists in public/demo with the recorded size', () => { + for (const [blobId, asset] of Object.entries(DEMO_ASSETS)) { + const file = path.join(PUBLIC, asset.path); + expect(fs.existsSync(file), `${blobId}: ${asset.path} missing`).toBe(true); + expect(fs.statSync(file).size, `${asset.path} size changed; update fixtures/assets.ts`).toBe(asset.size); + } + }); + + it('every attachment is backed by an asset', () => { + for (const e of [...work.emails, ...personal.emails]) { + for (const att of e.attachments ?? []) { + if (att.blobId === GONOGO_INVITE_BLOB) continue; + expect(DEMO_ASSETS[att.blobId as keyof typeof DEMO_ASSETS], `${e.id} -> ${att.name}`).toBeDefined(); + } + } + }); + + it('every portrait exists and is small', () => { + for (const p of PORTRAITS) { + const file = path.join(PUBLIC, 'demo', 'portraits', `${p.portrait}.jpg`); + expect(fs.existsSync(file), `${p.name}: ${file}`).toBe(true); + expect(fs.statSync(file).size).toBeLessThan(30_000); + } + }); + + it('contact photos are served locally, not from a third party', () => { + for (const c of work.contacts) { + for (const m of Object.values(c.media ?? {})) expect(m.uri).toMatch(/^\/demo\/portraits\//); + } + }); +}); + +describe('demo fixtures: features the screenshots show', () => { + const client = new DemoJMAPClient('work'); + + it('derives sender authentication from the headers: legit mail passes, the phishing mail fails', async () => { + const legit = (await client.getEmail('demo-email-sarah-invoice'))!; + expect(legit.authenticationResults?.dmarc?.result).toBe('pass'); + expect(getSenderVerification(legit.authenticationResults, legit.from![0].email)).toBeNull(); + + const phish = (await client.getEmail('demo-email-spam-phish'))!; + expect(getSenderVerification(phish.authenticationResults, phish.from![0].email)?.status).toBe('failed'); + expect(phish.spamScore).toBeGreaterThan(5); + expect(phish.spamLLM?.verdict).toBe('SPAM'); + }); + + it('newsletters carry a one-click unsubscribe the viewer can act on', async () => { + const nl = (await client.getEmail('demo-email-techdigest'))!; + const list = extractListHeaders(nl.headers!); + expect(list.listUnsubscribe?.http).toMatch(/^https:\/\//); + expect(list.listUnsubscribe?.mailto).toContain('@'); + expect(list.listUnsubscribe?.preferred).toBe('http'); + }); + + it('the launch plan asks for a read receipt', async () => { + const e = (await client.getEmail('demo-email-launch-plan'))!; + expect(e.headers?.['Disposition-Notification-To']).toContain('michael.torres@'); + }); + + it('the GitHub mail shows a verification-code chip', async () => { + const e = (await client.getEmail('demo-email-github-code'))!; + expect(findVerificationCode(e.subject, e.preview)).toBe('482913'); + expect(Date.now() - new Date(e.receivedAt).getTime()).toBeLessThan(60 * 60 * 1000); + }); + + it('Alice mentions Nora and Bob with links the viewer turns into chips', async () => { + const e = (await client.getEmail('demo-email-rollback-1'))!; + const html = e.bodyValues![e.htmlBody![0].partId].value; + const doc = new DOMParser().parseFromString(html, 'text/html'); + const mentions = [...doc.querySelectorAll('a')].map((a) => mentionFromLink(a as HTMLElement)).filter(Boolean); + expect(mentions).toEqual([ + { label: 'Nora', email: NORA.email }, + { label: 'Bob', email: BOB.email }, + ]); + }); + + it('the go/no-go mail is an invitation Nora can answer', async () => { + const e = (await client.getEmail('demo-email-gonogo-invite'))!; + const att = findCalendarAttachment(e); + expect(att?.blobId).toBe(GONOGO_INVITE_BLOB); + + const ics = createGoNoGoInvitationIcs(); + expect(ics).toContain('METHOD:REQUEST'); + expect(ics).toContain(`UID:${GONOGO_UID}`); + expect(await (await client.fetchBlob(GONOGO_INVITE_BLOB)).text()).toBe(ics); + + const [parsed] = await client.parseCalendarEvents('demo-account', GONOGO_INVITE_BLOB); + expect(parsed.uid).toBe(GONOGO_UID); + const me = Object.values(parsed.participants!).find((p) => p.email === NORA.email)!; + expect(me.participationStatus).toBe('needs-action'); + expect(Object.values(parsed.participants!).some((p) => p.roles.owner && p.email === ALICE.email)).toBe(true); + // The event is already on the calendar, waiting for the answer. + expect((await client.queryCalendarEvents({ uid: GONOGO_UID }))[0]?.id).toBe(GONOGO_EVENT_ID); + }); + + it('an RSVP arrives as a JSON-pointer patch and lands on the participant', async () => { + const fresh = new DemoJMAPClient('work'); + const event = (await fresh.getCalendarEvent(GONOGO_EVENT_ID))!; + const [key] = Object.entries(event.participants!).find(([, p]) => p.email === NORA.email)!; + await fresh.updateCalendarEvent(GONOGO_EVENT_ID, { [`participants/${key}/participationStatus`]: 'accepted' } as never); + expect((await fresh.getCalendarEvent(GONOGO_EVENT_ID))!.participants![key].participationStatus).toBe('accepted'); + expect(Object.keys((await fresh.getCalendarEvent(GONOGO_EVENT_ID))!)).not.toContain(`participants/${key}/participationStatus`); + }); + + it('the Support mailbox is listed as a shared account next to the work folders', async () => { + const all = await client.getAllMailboxes(); + const shared = all.filter((m) => m.isShared); + expect(shared.map((m) => m.id)).toContain(`${SUPPORT_ACCOUNT_ID}:${SMB.inbox}`); + expect(shared.every((m) => m.accountId === SUPPORT_ACCOUNT_ID && m.accountName === 'Support')).toBe(true); + const inbox = shared.find((m) => m.originalId === SMB.inbox)!; + expect(inbox.unreadEmails).toBeGreaterThan(0); + // Queried the way the store does it: by the bare id and the owner account. + const { emails } = await client.getEmails(SMB.inbox, SUPPORT_ACCOUNT_ID); + expect(emails.length).toBe(inbox.totalEmails); + expect(client.getSharedAccounts().map((a) => a.id)).toEqual(['demo-account', SUPPORT_ACCOUNT_ID]); + }); + + it('folder counts come from the mail, including nested folders', async () => { + const mailboxes = await client.getMailboxes(); + for (const mb of mailboxes) { + const inFolder = work.emails.filter((e) => e.mailboxIds[mb.id]); + expect(mb.totalEmails, mb.name).toBe(inFolder.length); + expect(mb.unreadEmails, mb.name).toBe(inFolder.filter((e) => !e.keywords.$seen).length); + } + expect(mailboxes.find((m) => m.id === MB.beacon)?.parentId).toBe(MB.projects); + expect(mailboxes.find((m) => m.id === MB.archive2025)?.parentId).toBe(MB.archive); + }); + + it('the personal account is a separate mail-only login', async () => { + const second = new DemoJMAPClient('personal'); + expect(second.getAccountId()).not.toBe(client.getAccountId()); + expect(second.getUsername()).not.toBe(client.getUsername()); + expect(second.supportsCalendars()).toBe(false); + expect(second.supportsContacts()).toBe(false); + expect((await second.getMailboxes()).find((m) => m.role === 'inbox')?.unreadEmails).toBeGreaterThan(0); + }); + + it('"recent mail" on a contact card finds mail to and from that person', async () => { + const { emails } = await client.advancedSearchEmails({ operator: 'OR', conditions: [{ from: ALICE.email }, { to: ALICE.email }] }); + expect(emails.length).toBeGreaterThan(2); + expect(emails.every((e) => [...(e.from ?? []), ...(e.to ?? [])].some((a) => a.email === ALICE.email))).toBe(true); + }); + + it('a scheduled message is waiting in Drafts', async () => { + const { emails } = await client.getScheduledEmails(); + expect(emails.map((e) => e.id)).toContain('demo-email-scheduled-prep'); + expect(new Date(emails[0].scheduledSendAt).getTime()).toBeGreaterThan(Date.now()); + }); +}); + +describe('demo fixtures: calendar times', () => { + it('utcStart matches the local wall-clock start of every timed event', () => { + for (const ev of work.calendarEvents) { + if (ev.showWithoutTime || !ev.utcStart) continue; + const local = new Date(ev.start); + expect(new Date(ev.utcStart).getTime(), `${ev.title}: ${ev.start} vs ${ev.utcStart}`).toBe(local.getTime()); + } + }); + + it('a quarter-hour standup lasts fifteen minutes', () => { + const standup = work.calendarEvents.find((e) => e.id === 'demo-event-standup')!; + expect(standup.duration).toBe('PT15M'); + expect(new Date(standup.utcEnd!).getTime() - new Date(standup.utcStart!).getTime()).toBe(15 * 60 * 1000); + }); +}); diff --git a/lib/demo/demo-client.ts b/lib/demo/demo-client.ts index e0c13be0b..900e4e149 100644 --- a/lib/demo/demo-client.ts +++ b/lib/demo/demo-client.ts @@ -1,34 +1,40 @@ import type { IJMAPClient, KeywordDiscoveryResult, KeywordMigration } from '@/lib/jmap/client-interface'; import type { Email, Mailbox, StateChange, AccountStates, Thread, Identity, EmailAddress, ContactCard, AddressBook, VacationResponse, Calendar, CalendarEvent, CalendarEventFilter, CalendarTask, FileNode, ScheduledEmail, SendEmailResult, SharedAccount } from '@/lib/jmap/types'; import type { SieveScript, SieveCapabilities } from '@/lib/jmap/sieve-types'; -import { getDemoData, type DemoData } from './demo-data'; +import { getDemoData, demoSharedAccounts, type DemoData, type DemoProfile } from './demo-data'; import { generateDemoId } from './demo-utils'; +import { DEMO_ASSETS } from './fixtures/assets'; +import { GONOGO_INVITE_BLOB } from './fixtures/emails'; +import { createGoNoGoInvitationIcs, GONOGO_EVENT_ID } from './fixtures/calendars'; +import { ALICE, BOB, SARAH, PRIYA, LISA } from './fixtures/people'; +import { parseAuthenticationResults, parseSpamLLM, parseSpamScore } from '@/lib/email-headers'; import { compareEmails, type SortLevel } from '@/lib/message-list-order'; import { withBasePath } from '@/lib/browser-navigation'; import { toInertBlob } from '@/lib/file-preview'; import type { StorageQuota } from "@/lib/quota"; -// Fixture blobs with real bytes behind them, served from public/demo/. The -// photos are CC0 / public domain from Wikimedia Commons: "Wedding couple -// (1294004)", "Wedding couple (1293575)", "Men drinking", "Lake Mountain -// Landscape" and "Team members of startup". prototype-v3.png is drawn for the -// demo. Every other fixture blob falls back to a text placeholder. -const DEMO_BLOB_ASSETS: Record = { - 'demo-blob-att-2': '/demo/prototype-v3.png', - 'demo-blob-att-3': '/demo/wedding-001.jpg', - 'demo-blob-att-4': '/demo/wedding-014-mom-dad.jpg', - 'demo-blob-att-5': '/demo/wedding-038-the-toast.jpg', - 'demo-blob-file-4': '/demo/vacation.jpg', - 'demo-blob-file-5': '/demo/team-photo.jpg', -}; +// Fixture blobs with real bytes behind them, served from public/demo/ (see +// fixtures/assets.ts for the list and the licences). Any other blob id falls +// back to a text placeholder. +const DEMO_BLOB_ASSETS: Record = Object.fromEntries( + Object.entries(DEMO_ASSETS).map(([blobId, asset]) => [blobId, asset.path]), +); + +/** localStorage key that switches the simulated incoming mail off (screenshot runs). */ +export const DEMO_SIMULATE_KEY = 'bulwark-demo-simulate'; /** * In-memory JMAP client for demo mode. * All data lives in memory - no server calls, no cookies. Only the demo * images under public/demo are fetched, from the app's own origin. + * + * One instance per demo login: `new DemoJMAPClient('work')` is the primary + * account (with the shared Support mailbox delegated to it), and + * `new DemoJMAPClient('personal')` the mail-only second account. */ export class DemoJMAPClient implements IJMAPClient { private data: DemoData; + private readonly profile: DemoProfile; private blobStore = new Map(); private scheduledSubmissions = new Map(); private connectionCallback: ((connected: boolean) => void) | null = null; @@ -36,15 +42,47 @@ export class DemoJMAPClient implements IJMAPClient { private lastStates: AccountStates = {}; private incomingTimer: ReturnType | null = null; - constructor() { - this.data = getDemoData(); + constructor(profile: DemoProfile = 'work') { + this.profile = profile; + this.data = getDemoData(profile); + // Fixtures carry raw headers the way a server sends them; derive the + // parsed fields the viewer reads, as JMAPClient.parseEmailHeaders does. + for (const email of this.data.emails) this.deriveHeaderFields(email); + this.recalcMailboxCounts(); + for (const s of this.data.scheduled) { + const id = generateDemoId('submission'); + this.scheduledSubmissions.set(id, { id, emailId: s.emailId, identityId: s.identityId, sendAt: s.sendAt, undoStatus: 'pending', isSmime: false }); + } + } + + private deriveHeaderFields(email: Email): void { + const headers = email.headers; + if (!headers) return; + const header = (name: string) => { + const key = Object.keys(headers).find((k) => k.toLowerCase() === name); + return key ? headers[key] : undefined; + }; + const auth = header('authentication-results'); + if (auth && !email.authenticationResults) email.authenticationResults = parseAuthenticationResults(auth); + const spam = header('x-spam-score') ?? header('x-spam-status'); + if (typeof spam === 'string' && email.spamScore === undefined) { + const parsed = parseSpamScore(spam); + if (parsed) { email.spamScore = parsed.score; email.spamStatus = parsed.status; } + } + const llm = header('x-spam-llm'); + if (typeof llm === 'string' && !email.spamLLM) { + const parsed = parseSpamLLM(llm); + if (parsed) email.spamLLM = parsed; + } } // ── Connection lifecycle ────────────────────────────────────── async connect(): Promise { - // Start simulated incoming email timer - this.startIncomingEmailTimer(); + // Simulated incoming mail, unless a screenshot run switched it off. + let simulate = true; + try { simulate = typeof localStorage === 'undefined' || localStorage.getItem(DEMO_SIMULATE_KEY) !== 'off'; } catch { /* storage blocked */ } + if (simulate) this.startIncomingEmailTimer(); } disconnect(): void { @@ -64,11 +102,14 @@ export class DemoJMAPClient implements IJMAPClient { upgradeToBearer(): void { /* no-op */ } enableTotpReauth(): void { /* no-op */ } updateBasicAuth(): void { /* no-op */ } - getAccountId(): string { return 'demo-account'; } - getUsername(): string { return 'demo@example.com'; } + getAccountId(): string { return this.data.accountId; } + getUsername(): string { return this.data.username; } // ── Capabilities ────────────────────────────────────────────── + /** The personal login is mail only; everything else lives in the work account. */ + private get mailOnly(): boolean { return this.profile === 'personal'; } + hasAccountCapability(capability: string, _accountId?: string): boolean { return capability === 'urn:ietf:params:jmap:submission'; } @@ -79,11 +120,13 @@ export class DemoJMAPClient implements IJMAPClient { 'urn:ietf:params:jmap:mail': {}, 'urn:ietf:params:jmap:submission': { maxDelayedSend: 30 * 24 * 60 * 60, submissionExtensions: { FUTURERELEASE: true } }, 'urn:ietf:params:jmap:vacationresponse': {}, - 'urn:ietf:params:jmap:contacts': {}, - 'urn:ietf:params:jmap:calendars': {}, - 'urn:ietf:params:jmap:sieve': {}, 'urn:ietf:params:jmap:quota': {}, - 'urn:ietf:params:jmap:files': {}, + ...(this.mailOnly ? {} : { + 'urn:ietf:params:jmap:contacts': {}, + 'urn:ietf:params:jmap:calendars': {}, + 'urn:ietf:params:jmap:sieve': {}, + 'urn:ietf:params:jmap:files': {}, + }), }; } @@ -98,10 +141,10 @@ export class DemoJMAPClient implements IJMAPClient { supportsQuota(): boolean { return true; } supportsVacationResponse(): boolean { return true; } accountSupports(): boolean { return true; } - supportsContacts(): boolean { return true; } - supportsCalendars(): boolean { return true; } - supportsSieve(): boolean { return true; } - supportsFiles(): boolean { return true; } + supportsContacts(): boolean { return !this.mailOnly; } + supportsCalendars(): boolean { return !this.mailOnly; } + supportsSieve(): boolean { return !this.mailOnly; } + supportsFiles(): boolean { return !this.mailOnly; } supportsPrincipals(): boolean { return false; } async getPrincipals(): Promise { return []; } async setCalendarShare(): Promise { /* demo: no-op */ } @@ -134,13 +177,38 @@ export class DemoJMAPClient implements IJMAPClient { // ── Quota ───────────────────────────────────────────────────── async getQuota(): Promise { - return { used: 245_366_784, total: 1_073_741_824 }; + return { ...this.data.quota }; } // ── Mailboxes ───────────────────────────────────────────────── - async getMailboxes(_accountId?: string): Promise { return [...this.data.mailboxes]; } - async getAllMailboxes(): Promise { return [...this.data.mailboxes]; } + async getMailboxes(accountId?: string): Promise { + if (accountId && accountId !== this.data.accountId) { + return [...(this.data.sharedMailboxes[accountId]?.mailboxes ?? [])]; + } + return [...this.data.mailboxes]; + } + + /** + * Own folders plus the folders of accounts shared with this login, the + * latter namespaced `:` and tagged `isShared`, as + * JMAPClient.getAllMailboxes does. Mail keeps the bare ids in mailboxIds; + * the store queries shared folders by `originalId` + owner `accountId`. + */ + async getAllMailboxes(): Promise { + const shared = Object.entries(this.data.sharedMailboxes).flatMap(([accountId, { name, mailboxes }]) => + mailboxes.map((mb) => ({ + ...mb, + id: `${accountId}:${mb.id}`, + originalId: mb.id, + parentId: mb.parentId ? `${accountId}:${mb.parentId}` : undefined, + accountId, + accountName: name, + isShared: true, + })), + ); + return [...this.data.mailboxes, ...shared]; + } async createMailbox(name: string, parentId?: string, _accountId?: string, options?: { role?: string }): Promise { const mb: Mailbox = { @@ -207,11 +275,26 @@ export class DemoJMAPClient implements IJMAPClient { (f.email || '').toLowerCase().includes(q) || (f.name || '').toLowerCase().includes(q)); if (!match) return false; } + const addressMatch = (list: EmailAddress[] | undefined, q: string) => + (list || []).some(a => (a.email || '').toLowerCase().includes(q) || (a.name || '').toLowerCase().includes(q)); + if (typeof filter.to === 'string' && !addressMatch(e.to, filter.to.toLowerCase())) return false; + if (typeof filter.cc === 'string' && !addressMatch(e.cc, filter.cc.toLowerCase())) return false; + if (typeof filter.bcc === 'string' && !addressMatch(e.bcc, filter.bcc.toLowerCase())) return false; + if (typeof filter.subject === 'string' && !(e.subject || '').toLowerCase().includes(filter.subject.toLowerCase())) return false; + if (typeof filter.hasAttachment === 'boolean' && e.hasAttachment !== filter.hasAttachment) return false; + if (typeof filter.before === 'string' && e.receivedAt >= filter.before) return false; + if (typeof filter.after === 'string' && e.receivedAt < filter.after) return false; if (typeof filter.text === 'string') { const q = filter.text.toLowerCase(); - const text = [e.subject, e.preview, e.from?.[0]?.name, e.from?.[0]?.email].filter(Boolean).join(' ').toLowerCase(); + const bodyText = Object.values(e.bodyValues || {}).map(v => v.value).join(' '); + const text = [e.subject, e.preview, e.from?.[0]?.name, e.from?.[0]?.email, bodyText].filter(Boolean).join(' ').toLowerCase(); if (!text.includes(q)) return false; } + if (typeof filter.body === 'string') { + const q = filter.body.toLowerCase(); + const bodyText = Object.values(e.bodyValues || {}).map(v => v.value).join(' ').toLowerCase(); + if (!bodyText.includes(q)) return false; + } if (typeof filter.inMailbox === 'string' && !e.mailboxIds[filter.inMailbox]) return false; if (Array.isArray(filter.inMailboxOtherThan)) { const excluded = new Set(filter.inMailboxOtherThan as string[]); @@ -654,11 +737,11 @@ export class DemoJMAPClient implements IJMAPClient { const email: Email = { id, threadId: generateDemoId('thread'), - mailboxIds: { [draftsMb?.id || 'demo-mailbox-drafts']: true }, + mailboxIds: { [draftsMb?.id || this.data.mailboxes[0].id]: true }, keywords: { $seen: true, $draft: true }, size: body.length, receivedAt: new Date().toISOString(), - from: [{ name: 'Demo User', email: 'demo@example.com' }], + from: [this.fromAddress(_identityId, _fromEmail, _fromName)], to: to.map(e => ({ email: e })), cc: cc?.length ? cc.map(e => ({ email: e })) : undefined, bcc: bcc?.length ? bcc.map(e => ({ email: e })) : undefined, @@ -710,11 +793,11 @@ export class DemoJMAPClient implements IJMAPClient { const sentMb = this.data.mailboxes.find(m => m.role === 'sent'); const email: Email = { id: generateDemoId('email'), threadId: generateDemoId('thread'), - mailboxIds: { [delayedUntil ? (this.data.mailboxes.find(m => m.role === 'drafts')?.id || 'demo-mailbox-drafts') : (sentMb?.id || 'demo-mailbox-sent')]: true }, + mailboxIds: { [delayedUntil ? (this.data.mailboxes.find(m => m.role === 'drafts')?.id || this.data.mailboxes[0].id) : (sentMb?.id || this.data.mailboxes[0].id)]: true }, keywords: delayedUntil ? { $seen: true, $draft: true } : { $seen: true }, size: body.length + (htmlBody?.length || 0), receivedAt: new Date().toISOString(), - from: [{ name: 'Demo User', email: 'demo@example.com' }], + from: [this.fromAddress(_identityId, _fromEmail, _fromName)], to: to.map(e => ({ email: e })), cc: cc?.length ? cc.map(e => ({ email: e })) : undefined, bcc: bcc?.length ? bcc.map(e => ({ email: e })) : undefined, @@ -737,7 +820,7 @@ export class DemoJMAPClient implements IJMAPClient { this.scheduledSubmissions.set(emailSubmissionId, { id: emailSubmissionId, emailId: email.id, - identityId: _identityId || 'demo-identity', + identityId: _identityId || this.data.identities[0]?.id || 'demo-identity', sendAt: delayedUntil, undoStatus: 'pending', isSmime: false, @@ -749,6 +832,14 @@ export class DemoJMAPClient implements IJMAPClient { : { scheduled: false, emailId: email.id }; } + /** The From address of new mail: the chosen identity, else the account's own address. */ + private fromAddress(identityId?: string, fromEmail?: string, fromName?: string): EmailAddress { + const identity = identityId ? this.data.identities.find(i => i.id === identityId) : undefined; + if (identity) return { name: identity.name, email: identity.email }; + if (fromEmail) return { name: fromName || this.data.self.name, email: fromEmail }; + return { ...this.data.self }; + } + async sendImipReply(): Promise { /* no-op in demo */ } async sendImipInvitation(): Promise { /* no-op in demo */ } async sendImipCancellation(): Promise { /* no-op in demo */ } @@ -784,6 +875,9 @@ export class DemoJMAPClient implements IJMAPClient { async fetchBlob(blobId: string): Promise { const stored = this.blobStore.get(blobId); if (stored) return stored; + if (blobId === GONOGO_INVITE_BLOB) { + return new Blob([createGoNoGoInvitationIcs()], { type: 'text/calendar; method=REQUEST' }); + } const asset = DEMO_BLOB_ASSETS[blobId]; if (asset) { try { @@ -865,7 +959,7 @@ export class DemoJMAPClient implements IJMAPClient { // ── Contacts ────────────────────────────────────────────────── - getContactsAccountId(): string { return 'demo-account'; } + getContactsAccountId(): string { return this.data.accountId; } async getAddressBooks(): Promise { return [...this.data.addressBooks]; } async getAllAddressBooks(): Promise { return [...this.data.addressBooks]; } @@ -906,7 +1000,7 @@ export class DemoJMAPClient implements IJMAPClient { async createContact(contact: Partial): Promise { const full: ContactCard = { id: generateDemoId('contact'), - addressBookIds: contact.addressBookIds ?? { 'demo-addressbook-personal': true }, + addressBookIds: contact.addressBookIds ?? { [(this.data.addressBooks.find(b => b.isDefault) ?? this.data.addressBooks[0])?.id ?? 'demo-addressbook-personal']: true }, ...contact, } as ContactCard; this.data.contacts.push(full); @@ -933,7 +1027,7 @@ export class DemoJMAPClient implements IJMAPClient { // ── Calendars ───────────────────────────────────────────────── - getCalendarsAccountId(): string { return 'demo-account'; } + getCalendarsAccountId(): string { return this.data.accountId; } async getCalendars(): Promise { return [...this.data.calendars]; } async getAllCalendars(): Promise { return [...this.data.calendars]; } @@ -990,7 +1084,7 @@ export class DemoJMAPClient implements IJMAPClient { async createCalendarEvent(event: Partial): Promise { const full: CalendarEvent = { id: generateDemoId('event'), - calendarIds: event.calendarIds ?? { 'demo-calendar-personal': true }, + calendarIds: event.calendarIds ?? { [(this.data.calendars.find(c => c.isDefault) ?? this.data.calendars[0])?.id ?? 'demo-calendar-work']: true }, '@type': 'Event', uid: generateDemoId('uid'), title: event.title ?? 'New Event', @@ -1029,10 +1123,27 @@ export class DemoJMAPClient implements IJMAPClient { return { created, failed: [], notCreated: {} }; } + /** + * Applies a CalendarEvent/set patch. Keys may be JSON pointers + * (`participants/p2/participationStatus`), which is how the store sends + * an RSVP; plain keys replace the property. + */ async updateCalendarEvent(eventId: string, updates: Partial): Promise { const event = this.data.calendarEvents.find(e => e.id === eventId); if (!event) throw new Error('Event not found'); - Object.assign(event, updates, { updated: new Date().toISOString() }); + const target = event as unknown as Record; + for (const [key, value] of Object.entries(updates as Record)) { + if (!key.includes('/')) { target[key] = value; continue; } + const path = key.split('/').map(s => s.replace(/~1/g, '/').replace(/~0/g, '~')); + let node = target; + for (const segment of path.slice(0, -1)) { + if (typeof node[segment] !== 'object' || node[segment] === null) node[segment] = {}; + node = node[segment] as Record; + } + const last = path[path.length - 1]; + if (value === null) delete node[last]; else node[last] = value; + } + event.updated = new Date().toISOString(); } async deleteCalendarEvent(eventId: string): Promise { @@ -1047,6 +1158,7 @@ export class DemoJMAPClient implements IJMAPClient { async queryCalendarEvents(filter: CalendarEventFilter): Promise { return this.data.calendarEvents.filter(e => { + if (filter.uid && e.uid !== filter.uid) return false; if (filter.after && e.start < filter.after) return false; if (filter.before && e.start > filter.before) return false; const q = (filter.text ?? filter.title)?.toLowerCase(); @@ -1062,8 +1174,11 @@ export class DemoJMAPClient implements IJMAPClient { return this.queryCalendarEvents(filter); } - async parseCalendarEvents(): Promise[]> { - return []; // no-op in demo + /** Only the go/no-go invitation carries a parsable .ics in the demo. */ + async parseCalendarEvents(_accountId: string, blobId: string): Promise[]> { + if (blobId !== GONOGO_INVITE_BLOB) return []; + const event = this.data.calendarEvents.find(e => e.id === GONOGO_EVENT_ID); + return event ? [JSON.parse(JSON.stringify(event))] : []; } // ── Calendar Tasks ──────────────────────────────────────────── @@ -1119,15 +1234,10 @@ export class DemoJMAPClient implements IJMAPClient { // ── Sieve / Filters ────────────────────────────────────────── getSharedAccounts(): SharedAccount[] { - return [{ - id: 'demo-account', - name: 'Demo', - isPrimary: true, - capabilities: { mail: true, sieve: true, calendars: true, contacts: true, filenode: true }, - }]; + return demoSharedAccounts(this.profile); } - getSieveAccountId(): string { return 'demo-account'; } + getSieveAccountId(): string { return this.data.accountId; } getSieveAccounts(): { id: string; name: string; isPrimary: boolean }[] { return this.getSharedAccounts() @@ -1192,7 +1302,7 @@ export class DemoJMAPClient implements IJMAPClient { // ── Files (FileNode) ───────────────────────────────────────── - getFilesAccountId(): string { return 'demo-account'; } + getFilesAccountId(): string { return this.data.accountId; } async probeFileNodeSupport(): Promise { return true; } @@ -1281,18 +1391,18 @@ export class DemoJMAPClient implements IJMAPClient { } return delayedUntil ? { scheduled: true, emailId, emailSubmissionId, sendAt: delayedUntil, isSmime: true } : { scheduled: false, emailId, isSmime: true }; } - async sendRawEmail(_blob?: Blob, identityId = 'demo-identity', _sentMailboxId?: string, _draftMailboxId?: string, delayedUntil?: string, _envelopeRecipients?: string[]): Promise { + async sendRawEmail(_blob?: Blob, identityId = 'demo-identity-primary', _sentMailboxId?: string, _draftMailboxId?: string, delayedUntil?: string, _envelopeRecipients?: string[]): Promise { const emailId = generateDemoId('email'); const draftsMailbox = this.data.mailboxes.find(m => m.role === 'drafts'); const sentMailbox = this.data.mailboxes.find(m => m.role === 'sent'); const email: Email = { id: emailId, threadId: generateDemoId('thread'), - mailboxIds: { [(delayedUntil ? draftsMailbox?.id : sentMailbox?.id) || 'demo-mailbox-sent']: true }, + mailboxIds: { [(delayedUntil ? draftsMailbox?.id : sentMailbox?.id) || this.data.mailboxes[0].id]: true }, keywords: delayedUntil ? { $seen: true, $draft: true } : { $seen: true }, size: 1024, receivedAt: new Date().toISOString(), - from: [{ name: 'Demo User', email: 'demo@example.com' }], + from: [this.fromAddress(identityId)], to: [], subject: 'S/MIME message', preview: 'Signed/encrypted demo message', @@ -1355,7 +1465,8 @@ export class DemoJMAPClient implements IJMAPClient { // ── Internal helpers ────────────────────────────────────────── private recalcMailboxCounts(): void { - for (const mb of this.data.mailboxes) { + const shared = Object.values(this.data.sharedMailboxes).flatMap((s) => s.mailboxes); + for (const mb of [...this.data.mailboxes, ...shared]) { const inMb = this.data.emails.filter(e => e.mailboxIds[mb.id]); mb.totalEmails = inMb.length; mb.unreadEmails = inMb.filter(e => !e.keywords.$seen).length; @@ -1385,19 +1496,16 @@ export class DemoJMAPClient implements IJMAPClient { } private simulateIncomingEmail(): void { - const senders = [ - { name: 'Alice Johnson', email: 'alice.johnson@example.com' }, - { name: 'Bob Chen', email: 'bob.chen@example.com' }, - { name: 'Sarah Kim', email: 'sarah.kim@example.com' }, - { name: 'Carlos Rivera', email: 'carlos.rivera@example.com' }, - ]; + const inbox = this.data.mailboxes.find(m => m.role === 'inbox'); + if (!inbox || this.profile !== 'work') return; + const senders = [ALICE, BOB, SARAH, PRIYA, LISA].map(p => ({ name: p.name, email: p.email })); const subjects = [ - 'Quick question about the project', - 'Meeting rescheduled to tomorrow', - 'FYI: Updated documentation', - 'Can you review this PR?', + 'Quick question about the canary list', + 'Go/no-go moved by 15 minutes', + 'FYI: runbook comments addressed', + 'Can you look at #1291 before lunch?', 'Lunch today?', - 'Important: deadline reminder', + 'Reminder: changelog quote', ]; const sender = senders[Math.floor(Math.random() * senders.length)]; @@ -1406,12 +1514,12 @@ export class DemoJMAPClient implements IJMAPClient { const email: Email = { id, threadId: generateDemoId('thread'), - mailboxIds: { 'demo-mailbox-inbox': true }, + mailboxIds: { [inbox.id]: true }, keywords: {}, size: 1800, receivedAt: new Date().toISOString(), from: [sender], - to: [{ name: 'Demo User', email: 'demo@example.com' }], + to: [{ ...this.data.self }], subject, sentAt: new Date().toISOString(), preview: `Hi, ${subject.toLowerCase()}. Let me know what you think.`, hasAttachment: false, @@ -1428,7 +1536,7 @@ export class DemoJMAPClient implements IJMAPClient { // Notify state change to trigger UI refresh this.stateChangeCallback?.({ '@type': 'StateChange', - changed: { 'demo-account': { Email: generateDemoId('state'), Mailbox: generateDemoId('state') } }, + changed: { [this.data.accountId]: { Email: generateDemoId('state'), Mailbox: generateDemoId('state') } }, }); } } diff --git a/lib/demo/demo-data.ts b/lib/demo/demo-data.ts index 109050be7..876d7062f 100644 --- a/lib/demo/demo-data.ts +++ b/lib/demo/demo-data.ts @@ -1,6 +1,8 @@ import { cloneFixtures } from './demo-utils'; -import { createDemoMailboxes } from './fixtures/mailboxes'; +import { createDemoMailboxes, createDemoSupportMailboxes, createDemoPersonalMailboxes, SUPPORT_ACCOUNT_ID, SUPPORT_ACCOUNT_NAME } from './fixtures/mailboxes'; import { createDemoEmails } from './fixtures/emails'; +import { createDemoSupportEmails } from './fixtures/support'; +import { createDemoPersonalEmails, createDemoPersonalIdentities } from './fixtures/personal'; import { createDemoContacts, createDemoAddressBooks } from './fixtures/contacts'; import { createDemoCalendars, createDemoCalendarEvents } from './fixtures/calendars'; import { createDemoCalendarTasks } from './fixtures/tasks'; @@ -8,12 +10,29 @@ import { createDemoIdentities } from './fixtures/identities'; import { createDemoSieveScripts, createDemoSieveCapabilities, createDemoSieveContent } from './fixtures/filters'; import { createDemoFileNodes } from './fixtures/files'; import { createDemoVacationResponse } from './fixtures/vacation'; +import { NORA, NORA_PERSONAL } from './fixtures/people'; -import type { Email, Mailbox, ContactCard, AddressBook, Calendar, CalendarEvent, CalendarTask, Identity, VacationResponse, FileNode } from '@/lib/jmap/types'; +import type { Email, EmailAddress, Mailbox, ContactCard, AddressBook, Calendar, CalendarEvent, CalendarTask, Identity, VacationResponse, FileNode, SharedAccount } from '@/lib/jmap/types'; import type { SieveScript, SieveCapabilities } from '@/lib/jmap/sieve-types'; +/** + * The demo signs in to two accounts. "work" is the primary login with mail, + * contacts, calendars, files and filters, plus the shared Support mailbox + * delegated to it. "personal" is a mail-only second login, so the account + * switcher and the merged inbox have more than one source. + */ +export type DemoProfile = 'work' | 'personal'; + export interface DemoData { + profile: DemoProfile; + /** JMAP account id of the login's primary account. */ + accountId: string; + username: string; + /** The persona's own address in this account, used as From on new mail. */ + self: EmailAddress; mailboxes: Mailbox[]; + /** Mailboxes of accounts shared with this login, keyed by their owner. */ + sharedMailboxes: Record; emails: Email[]; contacts: ContactCard[]; addressBooks: AddressBook[]; @@ -26,13 +45,62 @@ export interface DemoData { sieveContent: Record; fileNodes: FileNode[]; vacationResponse: VacationResponse; + quota: { used: number; total: number }; + /** Ids of drafts that are scheduled to go out, with their send time. */ + scheduled: Array<{ emailId: string; identityId: string; sendAt: string }>; } -/** Return a fresh deep-cloned copy of all demo data. */ -export function getDemoData(): DemoData { +export const DEMO_WORK_ACCOUNT_ID = 'demo-account'; +export const DEMO_PERSONAL_ACCOUNT_ID = 'demo-personal'; + +/** What `getSharedAccounts()` reports for a profile. */ +export function demoSharedAccounts(profile: DemoProfile): SharedAccount[] { + if (profile === 'personal') { + return [{ id: DEMO_PERSONAL_ACCOUNT_ID, name: 'Personal', isPrimary: true, capabilities: { mail: true, sieve: false, calendars: false, contacts: false, filenode: false } }]; + } + return [ + { id: DEMO_WORK_ACCOUNT_ID, name: 'Meridian Labs', isPrimary: true, capabilities: { mail: true, sieve: true, calendars: true, contacts: true, filenode: true } }, + { id: SUPPORT_ACCOUNT_ID, name: SUPPORT_ACCOUNT_NAME, isPrimary: false, capabilities: { mail: true, sieve: false, calendars: false, contacts: false, filenode: false } }, + ]; +} + +/** Return a fresh deep-cloned copy of all demo data for one profile. */ +export function getDemoData(profile: DemoProfile = 'work'): DemoData { + if (profile === 'personal') { + return cloneFixtures({ + profile, + accountId: DEMO_PERSONAL_ACCOUNT_ID, + username: NORA_PERSONAL.email, + self: { name: NORA_PERSONAL.name, email: NORA_PERSONAL.email }, + mailboxes: createDemoPersonalMailboxes(), + sharedMailboxes: {}, + emails: createDemoPersonalEmails(), + contacts: [], + addressBooks: [], + calendars: [], + calendarEvents: [], + calendarTasks: [], + identities: createDemoPersonalIdentities(), + sieveScripts: [], + sieveCapabilities: createDemoSieveCapabilities(), + sieveContent: {}, + fileNodes: [], + vacationResponse: { id: 'singleton', isEnabled: false, fromDate: null, toDate: null, subject: '', textBody: '', htmlBody: null }, + quota: { used: 1_814_000_000, total: 10_737_418_240 }, + scheduled: [], + }); + } + const scheduledAt = new Date(); + scheduledAt.setHours(12, 0, 0, 0); + if (scheduledAt.getTime() < Date.now()) scheduledAt.setDate(scheduledAt.getDate() + 1); return cloneFixtures({ + profile, + accountId: DEMO_WORK_ACCOUNT_ID, + username: NORA.email, + self: { name: NORA.name, email: NORA.email }, mailboxes: createDemoMailboxes(), - emails: createDemoEmails(), + sharedMailboxes: { [SUPPORT_ACCOUNT_ID]: { name: SUPPORT_ACCOUNT_NAME, mailboxes: createDemoSupportMailboxes() } }, + emails: [...createDemoEmails(), ...createDemoSupportEmails()], contacts: createDemoContacts(), addressBooks: createDemoAddressBooks(), calendars: createDemoCalendars(), @@ -44,5 +112,7 @@ export function getDemoData(): DemoData { sieveContent: createDemoSieveContent(), fileNodes: createDemoFileNodes(), vacationResponse: createDemoVacationResponse(), + quota: { used: 6_442_450_944, total: 21_474_836_480 }, + scheduled: [{ emailId: 'demo-email-scheduled-prep', identityId: 'demo-identity-primary', sendAt: scheduledAt.toISOString() }], }); } diff --git a/lib/demo/demo-preferences.ts b/lib/demo/demo-preferences.ts new file mode 100644 index 000000000..9d0ad8e29 --- /dev/null +++ b/lib/demo/demo-preferences.ts @@ -0,0 +1,40 @@ +import { useSettingsStore } from '@/stores/settings-store'; +import { useTemplateStore } from '@/stores/template-store'; +import { usePolicyStore } from '@/stores/policy-store'; +import { DEMO_KEYWORDS } from './fixtures/keywords'; +import { createDemoTemplates } from './fixtures/templates'; + +/** Bump when the seeded preferences change, so returning visitors get them. */ +const SEED_VERSION = '2026-10'; +export const DEMO_SEED_KEY = 'bulwark-demo-seed'; + +/** + * Device-local preferences the demo needs to show its data: the persona's + * tags, tasks switched on, the merged inbox across both demo accounts, and + * a few templates. Runs once per device per version, so a visitor's own + * changes survive a reload; "Reset demo" clears storage and seeds again. + */ +export function seedDemoPreferences(): void { + // The merged views across accounts are gated off by default and nobody + // administers the demo; the demo's second account and shared mailbox exist + // for those views, so switch the gate on for this session. + usePolicyStore.getState().setDemoFeatureOverrides({ unifiedCrossAccountEnabled: true }); + + let seeded: string | null = null; + try { seeded = localStorage.getItem(DEMO_SEED_KEY); } catch { /* storage blocked */ } + if (seeded === SEED_VERSION) return; + + const settings = useSettingsStore.getState(); + settings.updateSetting('emailKeywords', DEMO_KEYWORDS); + settings.updateSetting('enableCalendarTasks', true); + settings.updateSetting('enableUnifiedMailbox', true); + settings.updateSetting('unifiedCrossAccount', true); + settings.updateSetting('includeGroupInUnified', true); + + const templates = useTemplateStore.getState(); + if (templates.templates.length === 0) { + useTemplateStore.setState({ templates: createDemoTemplates() }); + } + + try { localStorage.setItem(DEMO_SEED_KEY, SEED_VERSION); } catch { /* storage blocked */ } +} diff --git a/lib/demo/demo-utils.ts b/lib/demo/demo-utils.ts index f8a15b46a..ed2bc4176 100644 --- a/lib/demo/demo-utils.ts +++ b/lib/demo/demo-utils.ts @@ -29,6 +29,18 @@ export function demoISODate(daysOffset: number, hours: number = 0, minutes: numb return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}:00`; } +/** + * The UTC instant of a local wall-clock time on a day relative to today + * (`demoAt(1, 14)` is tomorrow 14:00 local, as an ISO string). Pairs with + * demoISODate for JSCalendar utcStart/utcEnd. + */ +export function demoAt(daysOffset: number, hours: number = 0, minutes: number = 0): string { + const d = new Date(); + d.setDate(d.getDate() + daysOffset); + d.setHours(hours, minutes, 0, 0); + return d.toISOString(); +} + /** Deep clone fixture data so in-memory mutations don't corrupt originals. */ export function cloneFixtures(data: T): T { return JSON.parse(JSON.stringify(data)); diff --git a/lib/demo/fixtures/assets.ts b/lib/demo/fixtures/assets.ts new file mode 100644 index 000000000..9e4911bac --- /dev/null +++ b/lib/demo/fixtures/assets.ts @@ -0,0 +1,58 @@ +/** + * Files under public/demo/ with real bytes, keyed by blob id. Every + * attachment and every file in the demo Files app points at one of these, + * so previews show real content. The sizes are the files' byte counts; the + * fixture test checks they match. Regenerate the generated ones with + * `node scripts/demo-assets/generate.mjs`. + * + * The photos are CC0 from Wikimedia Commons ("Wedding couple (1294004)", + * "Wedding couple (1293575)", "Men drinking", "Lake Mountain Landscape", + * "Team members of startup"); prototype-v3.png is drawn for the demo; the + * rest is rendered by the generator. + */ +export interface DemoAsset { + path: string; + name: string; + type: string; + size: number; +} + +export const DEMO_ASSETS = { + 'demo-blob-invoice-designco': { path: '/demo/invoice-designco-2026-089.pdf', name: 'Invoice-2026-089.pdf', type: 'application/pdf', size: 50800 }, + 'demo-blob-prototype': { path: '/demo/prototype-v3.png', name: 'prototype-v3.png', type: 'image/png', size: 21864 }, + 'demo-blob-hotel-voucher': { path: '/demo/hotel-voucher-lisbon.pdf', name: 'Booking-4892771433-voucher.pdf', type: 'application/pdf', size: 51467 }, + 'demo-blob-boarding-pass': { path: '/demo/boarding-pass-ber-lis.pdf', name: 'Boarding-pass-LH1796.pdf', type: 'application/pdf', size: 53751 }, + 'demo-blob-summit-ticket': { path: '/demo/infra-summit-ticket.pdf', name: 'Infra-Summit-ticket-IS26-SPK-01827.pdf', type: 'application/pdf', size: 93744 }, + 'demo-blob-launch-plan': { path: '/demo/beacon-launch-plan-v3.pdf', name: 'Beacon-launch-plan-v3.pdf', type: 'application/pdf', size: 44032 }, + 'demo-blob-hetzner-invoice': { path: '/demo/hetzner-invoice.pdf', name: 'Hetzner-R0012345678.pdf', type: 'application/pdf', size: 39366 }, + 'demo-blob-quarterly-report': { path: '/demo/quarterly-report.pdf', name: 'quarterly-report.pdf', type: 'application/pdf', size: 40644 }, + 'demo-blob-po-lumen': { path: '/demo/po-lumen-logistics.pdf', name: 'PO-2026-0412-Lumen-Logistics.pdf', type: 'application/pdf', size: 39255 }, + 'demo-blob-soak-dashboard': { path: '/demo/beacon-soak-dashboard.png', name: 'beacon-soak-dashboard.png', type: 'image/png', size: 110149 }, + 'demo-blob-book-cover': { path: '/demo/book-cover-draft.png', name: 'lemon-tree-cover-draft2.png', type: 'image/png', size: 107537 }, + 'demo-blob-soak-metrics': { path: '/demo/beacon-soak-metrics.xlsx', name: 'beacon-soak-metrics.xlsx', type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', size: 8731 }, + 'demo-blob-budget': { path: '/demo/budget-2026.xlsx', name: 'budget-2026.xlsx', type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', size: 6835 }, + 'demo-blob-runbook': { path: '/demo/beacon-rollback-runbook.docx', name: 'Beacon-rollback-runbook.docx', type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', size: 8303 }, + 'demo-blob-service-agreement': { path: '/demo/service-agreement-draft.docx', name: 'service-agreement-draft.docx', type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', size: 7787 }, + 'demo-blob-launch-deck': { path: '/demo/beacon-launch-deck.pptx', name: 'Beacon-launch.pptx', type: 'application/vnd.openxmlformats-officedocument.presentationml.presentation', size: 99675 }, + 'demo-blob-meeting-notes': { path: '/demo/meeting-notes.md', name: 'meeting-notes.md', type: 'text/markdown', size: 560 }, + 'demo-blob-todo': { path: '/demo/todo.txt', name: 'todo.txt', type: 'text/plain', size: 275 }, + 'demo-blob-wedding-1': { path: '/demo/wedding-001.jpg', name: 'wedding-001.jpg', type: 'image/jpeg', size: 170392 }, + 'demo-blob-wedding-2': { path: '/demo/wedding-014-mom-dad.jpg', name: 'wedding-014-mom-dad.jpg', type: 'image/jpeg', size: 154740 }, + 'demo-blob-wedding-3': { path: '/demo/wedding-038-the-toast.jpg', name: 'wedding-038-the-toast.jpg', type: 'image/jpeg', size: 133897 }, + 'demo-blob-vacation': { path: '/demo/vacation.jpg', name: 'lake-como.jpg', type: 'image/jpeg', size: 91949 }, + 'demo-blob-team-photo': { path: '/demo/team-photo.jpg', name: 'team-offsite.jpg', type: 'image/jpeg', size: 71066 }, +} as const satisfies Record; + +export type DemoBlobId = keyof typeof DEMO_ASSETS; + +/** An Email attachment entry for one of the assets. */ +export function attachment(blobId: DemoBlobId, overrides: { name?: string; partId?: string } = {}) { + const asset = DEMO_ASSETS[blobId]; + return { + partId: overrides.partId ?? blobId.replace('demo-blob-', 'att-'), + blobId, + size: asset.size, + name: overrides.name ?? asset.name, + type: asset.type, + }; +} diff --git a/lib/demo/fixtures/calendars.ts b/lib/demo/fixtures/calendars.ts index 68f493512..f86ef298d 100644 --- a/lib/demo/fixtures/calendars.ts +++ b/lib/demo/fixtures/calendars.ts @@ -1,272 +1,243 @@ -import type { Calendar, CalendarEvent } from '@/lib/jmap/types'; -import { demoDate, demoISODate } from '../demo-utils'; +import type { Calendar, CalendarEvent, CalendarParticipant } from '@/lib/jmap/types'; +import { demoAt, demoDate, demoISODate } from '../demo-utils'; +import { type Person, NORA, ALICE, BOB, PRIYA, AHMED, LISA, MICHAEL, SARAH, CARLOS, MARCUS, EMMA, DAVID, KENJI, JAMES } from './people'; + +export const CAL = { + work: 'demo-calendar-work', + personal: 'demo-calendar-personal', + birthdays: 'demo-calendar-birthdays', + team: 'demo-calendar-team', +} as const; + +const TZ = Intl.DateTimeFormat().resolvedOptions().timeZone; + +const rights = (mayDelete: boolean, mayWriteAll = true) => ({ + mayReadFreeBusy: true, mayReadItems: true, mayWriteAll, mayWriteOwn: true, mayUpdatePrivate: true, mayRSVP: true, mayShare: mayWriteAll, mayDelete, +}); export function createDemoCalendars(): Calendar[] { + const base = { description: null, isSubscribed: true, isVisible: true, includeInAvailability: 'all' as const, defaultAlertsWithTime: null, defaultAlertsWithoutTime: null, timeZone: null, shareWith: null }; return [ - { - id: 'demo-calendar-personal', - name: 'Personal', - description: null, - color: '#3b82f6', - sortOrder: 1, - isSubscribed: true, - isVisible: true, - isDefault: true, - includeInAvailability: 'all', - defaultAlertsWithTime: null, - defaultAlertsWithoutTime: null, - timeZone: null, - shareWith: null, - myRights: { mayReadFreeBusy: true, mayReadItems: true, mayWriteAll: true, mayWriteOwn: true, mayUpdatePrivate: true, mayRSVP: true, mayShare: true, mayDelete: false }, - }, - { - id: 'demo-calendar-work', - name: 'Work', - description: null, - color: '#22c55e', - sortOrder: 2, - isSubscribed: true, - isVisible: true, - isDefault: false, - includeInAvailability: 'all', - defaultAlertsWithTime: null, - defaultAlertsWithoutTime: null, - timeZone: null, - shareWith: null, - myRights: { mayReadFreeBusy: true, mayReadItems: true, mayWriteAll: true, mayWriteOwn: true, mayUpdatePrivate: true, mayRSVP: true, mayShare: true, mayDelete: true }, - }, - { - id: 'demo-calendar-birthdays', - name: 'Birthdays', - description: null, - color: '#eab308', - sortOrder: 3, - isSubscribed: true, - isVisible: true, - isDefault: false, - includeInAvailability: 'none', - defaultAlertsWithTime: null, - defaultAlertsWithoutTime: null, - timeZone: null, - shareWith: null, - myRights: { mayReadFreeBusy: true, mayReadItems: true, mayWriteAll: true, mayWriteOwn: true, mayUpdatePrivate: true, mayRSVP: true, mayShare: true, mayDelete: true }, - }, + { ...base, id: CAL.work, name: 'Work', color: '#db2d54', sortOrder: 1, isDefault: true, myRights: rights(false) }, + { ...base, id: CAL.personal, name: 'Personal', color: '#3b82f6', sortOrder: 2, isDefault: false, myRights: rights(true) }, + { ...base, id: CAL.team, name: 'Beacon team', description: 'Shared by Alice Johnson', color: '#8b5cf6', sortOrder: 3, isDefault: false, myRights: rights(false, false) }, + { ...base, id: CAL.birthdays, name: 'Birthdays', color: '#eab308', sortOrder: 4, isDefault: false, includeInAvailability: 'none', myRights: rights(true) }, ]; } +// ── Participants ────────────────────────────────────────────── +type Status = 'accepted' | 'tentative' | 'declined' | 'needs-action'; + +function participant(p: Person, roles: Record, status: Status = 'accepted', expectReply = false): CalendarParticipant { + return { + '@type': 'Participant', name: p.name, email: p.email, calendarAddress: `mailto:${p.email}`, description: null, + sendTo: { imip: `mailto:${p.email}` }, kind: 'individual', roles, participationStatus: status, participationComment: null, + expectReply, scheduleAgent: 'server', scheduleForceSend: false, scheduleId: null, scheduleSequence: 0, + scheduleStatus: null, scheduleUpdated: null, invitedBy: null, delegatedTo: null, delegatedFrom: null, memberOf: null, + locationId: null, language: null, links: null, + } as CalendarParticipant; +} + +const owner = (p: Person) => participant(p, { owner: true, attendee: true }); +const attendee = (p: Person, status: Status = 'accepted') => participant(p, { attendee: true }, status, status === 'needs-action'); + +/** Participants keyed p1, p2, ... */ +const people = (...list: CalendarParticipant[]) => Object.fromEntries(list.map((p, i) => [`p${i + 1}`, p])); + +// ── Events ──────────────────────────────────────────────────── +const BASE = { + '@type': 'Event' as const, + descriptionContentType: 'text/plain', + isDraft: false, + isOrigin: true, + sequence: 0, + status: 'confirmed' as const, + freeBusyStatus: 'busy' as const, + privacy: 'public' as const, + color: null, + keywords: null, + categories: null, + locale: null, + replyTo: null, + organizerCalendarAddress: null, + participants: null, + mayInviteSelf: false, + mayInviteOthers: false, + hideAttendees: false, + recurrenceId: null, + recurrenceIdTimeZone: null, + recurrenceRules: null, + recurrenceOverrides: null, + excludedRecurrenceRules: null, + useDefaultAlerts: true, + alerts: null, + locations: null, + virtualLocations: null, + links: null, + relatedTo: null, +}; + +interface Timed { day: number; hour: number; minute?: number; hours?: number; minutes?: number } + +/** A timed event on a day relative to today. */ +function timed(id: string, calendar: string, title: string, t: Timed, extra: Partial = {}): CalendarEvent { + // `hours` and `minutes` are the length; `{ minutes: 15 }` alone is a quarter hour. + const minutes = (t.hours ?? (t.minutes === undefined ? 1 : 0)) * 60 + (t.minutes ?? 0); + const duration = minutes % 60 === 0 ? `PT${minutes / 60}H` : minutes < 60 ? `PT${minutes}M` : `PT${Math.floor(minutes / 60)}H${minutes % 60}M`; + return { + ...BASE, + id, uid: `${id}@meridianlabs.example`, + calendarIds: { [calendar]: true }, + title, description: '', + created: demoDate(-14), updated: demoDate(-2), + start: demoISODate(t.day, t.hour, t.minute ?? 0), + utcStart: demoAt(t.day, t.hour, t.minute ?? 0), + utcEnd: demoAt(t.day, t.hour, (t.minute ?? 0) + minutes), + duration, timeZone: TZ, showWithoutTime: false, + ...extra, + } as CalendarEvent; +} + +/** An all-day event spanning `days` days from a day relative to today. */ +function allDay(id: string, calendar: string, title: string, day: number, days = 1, extra: Partial = {}): CalendarEvent { + return { + ...BASE, + id, uid: `${id}@meridianlabs.example`, + calendarIds: { [calendar]: true }, + title, description: '', + created: demoDate(-30), updated: demoDate(-30), + start: demoISODate(day), utcStart: demoAt(day), utcEnd: demoAt(day + days), + duration: `P${days}D`, timeZone: null, showWithoutTime: true, + freeBusyStatus: 'free' as const, + ...extra, + } as CalendarEvent; +} + +const room = (name: string, description: string) => ({ loc1: { '@type': 'Location' as const, name, description, locationTypes: null, coordinates: null, timeZone: null, links: null, relativeTo: null } }); +const zoom = (id: string) => ({ vl1: { '@type': 'VirtualLocation' as const, name: 'Zoom', uri: `https://zoom.us/j/${id}`, description: null, features: null } }); + +type RruleDay = 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su'; +const weekly = (day: RruleDay) => [{ + '@type': 'RecurrenceRule' as const, frequency: 'weekly' as const, interval: 1, firstDayOfWeek: 'mo' as const, byDay: [{ day }], + byMonthDay: null, byMonth: null, byYearDay: null, byWeekNo: null, byHour: null, byMinute: null, bySecond: null, bySetPosition: null, count: null, until: null, +}]; + +/** Weekday of a day relative to today as a two-letter rrule day. */ +function rruleDay(dayOffset: number): RruleDay { + const d = new Date(); + d.setDate(d.getDate() + dayOffset); + return (['su', 'mo', 'tu', 'we', 'th', 'fr', 'sa'] as const)[d.getDay()]; +} + +/** The go/no-go review, invited by Alice; Nora has not answered yet. */ +export const GONOGO_EVENT_ID = 'demo-event-gonogo'; + export function createDemoCalendarEvents(): CalendarEvent[] { - const baseEvent = { - '@type': 'Event' as const, - descriptionContentType: 'text/plain', - isDraft: false, - isOrigin: true, - sequence: 0, - status: 'confirmed' as const, - freeBusyStatus: 'busy' as const, - privacy: 'public' as const, - color: null, - keywords: null, - categories: null, - locale: null, - replyTo: null, - organizerCalendarAddress: null, - participants: null, - mayInviteSelf: false, - mayInviteOthers: false, - hideAttendees: false, - recurrenceId: null, - recurrenceIdTimeZone: null, - recurrenceRules: null, - recurrenceOverrides: null, - excludedRecurrenceRules: null, - useDefaultAlerts: true, - alerts: null, - locations: null, - virtualLocations: null, - links: null, - relatedTo: null, - }; - + const team = people(owner(ALICE), attendee(NORA), attendee(BOB), attendee(PRIYA), attendee(AHMED, 'tentative'), attendee(LISA)); return [ - // ── Personal calendar ────────────────────────────────────── - { - ...baseEvent, - id: 'demo-event-1', - calendarIds: { 'demo-calendar-personal': true }, - uid: 'demo-event-1@example.com', - title: 'Dentist Appointment', - description: 'Regular checkup at Dr. Smith\'s office', - created: demoDate(-7), - updated: demoDate(-7), - start: demoISODate(2, 10, 0), - utcStart: demoDate(2, 10), - utcEnd: demoDate(2, 11), - duration: 'PT1H', - timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone, - showWithoutTime: false, - locations: { loc1: { '@type': 'Location', name: 'Dr. Smith Dental Clinic', description: '123 Medical Plaza', locationTypes: null, coordinates: null, timeZone: null, links: null, relativeTo: null } }, - }, - { - ...baseEvent, - id: 'demo-event-2', - calendarIds: { 'demo-calendar-personal': true }, - uid: 'demo-event-2@example.com', - title: 'Birthday Party', - description: 'Emma\'s birthday celebration', - created: demoDate(-10), - updated: demoDate(-10), - start: demoISODate(5), - utcStart: demoDate(5), - utcEnd: demoDate(6), - duration: 'P1D', - timeZone: null, - showWithoutTime: true, - freeBusyStatus: 'free' as const, - }, - { - ...baseEvent, - id: 'demo-event-3', - calendarIds: { 'demo-calendar-personal': true }, - uid: 'demo-event-3@example.com', - title: 'Weekend Trip', - description: 'Road trip to the mountains', - created: demoDate(-5), - updated: demoDate(-5), - start: demoISODate(8), - utcStart: demoDate(8), - utcEnd: demoDate(10), - duration: 'P2D', - timeZone: null, - showWithoutTime: true, - freeBusyStatus: 'busy' as const, - }, + // ── Work ────────────────────────────────────────────────── + timed('demo-event-standup', CAL.team, 'Beacon standup', { day: 0, hour: 9, minute: 15, minutes: 15 }, { + description: 'Daily, 15 minutes, standing.', recurrenceRules: weekly(rruleDay(0) === 'sa' || rruleDay(0) === 'su' ? 'mo' : rruleDay(0)), + virtualLocations: zoom('93120044817'), participants: team, created: demoDate(-60), + }), + timed('demo-event-beacon-weekly', CAL.team, 'Beacon weekly', { day: 0, hour: 10, hours: 1 }, { + description: 'Status, blockers, decisions. Notes in Documents/meeting-notes.md.', + locations: room('Room Spree', '4th floor'), virtualLocations: zoom('93120044818'), participants: team, + }), + timed('demo-event-lunch-sarah', CAL.work, 'Lunch with Sarah: prototype v3', { day: 0, hour: 12, minute: 30, hours: 1 }, { + description: 'Walk through the hero options over lunch.', locations: room('Café Kranzler', 'Rosenthaler Straße 38'), + participants: people(owner(NORA), attendee(SARAH)), + }), + timed('demo-event-1on1-alice', CAL.work, '1:1 Alice', { day: 0, hour: 16, minutes: 30 }, { + recurrenceRules: weekly(rruleDay(0) === 'sa' || rruleDay(0) === 'su' ? 'tu' : rruleDay(0)), participants: people(owner(ALICE), attendee(NORA)), created: demoDate(-90), + }), + timed(GONOGO_EVENT_ID, CAL.work, 'Beacon go / no-go review', { day: 1, hour: 14, hours: 1 }, { + uid: 'beacon-gonogo-2026@meridianlabs.example', + description: '1. Soak test results (Ahmed)\n2. Rollback plan (Nora)\n3. Open bugs, BEA-412 in particular (Priya)\n4. Decision', + locations: room('Room Spree', '4th floor'), virtualLocations: zoom('93120044901'), + isOrigin: false, replyTo: { imip: `mailto:${ALICE.email}` }, organizerCalendarAddress: `mailto:${ALICE.email}`, + participants: people(owner(ALICE), attendee(NORA, 'needs-action'), attendee(BOB), attendee(PRIYA), attendee(AHMED), attendee(LISA, 'tentative'), attendee(MICHAEL)), + created: demoDate(-1, -1), updated: demoDate(-1, -1), + }), + timed('demo-event-coffee-bob', CAL.work, 'Coffee with Bob', { day: 1, hour: 13, minute: 15, minutes: 30 }, { + locations: room('Café Kranzler', 'Rosenthaler Straße 38'), participants: people(owner(BOB), attendee(NORA)), + }), + timed('demo-event-focus', CAL.work, 'Focus: rollback runbook v2', { day: 2, hour: 9, hours: 3 }, { description: 'No meetings. Work in Bob\'s comments.', freeBusyStatus: 'busy' }), + timed('demo-event-design-review', CAL.work, 'Website redesign: v3 review', { day: 2, hour: 14, hours: 1 }, { + participants: people(owner(NORA), attendee(SARAH), attendee(LISA)), virtualLocations: zoom('93120044950'), + }), + timed('demo-event-team-lunch', CAL.team, 'Team lunch', { day: 3, hour: 12, minute: 30, hours: 1, minutes: 30 }, { + locations: room('Markthalle Neun', 'Eisenbahnstraße 42'), participants: team, + }), + timed('demo-event-canary-kickoff', CAL.team, 'Canary kickoff: 5% of tenants', { day: 6, hour: 9, hours: 1 }, { + description: 'Flip the flag for the five canary tenants, then watch for 24 h.', participants: team, virtualLocations: zoom('93120044960'), + }), + allDay('demo-event-launch', CAL.team, 'Beacon general availability', 8, 1, { description: 'Blog post, changelog and status page go live at 10:00.', color: '#db2d54' }), + allDay('demo-event-lisbon', CAL.work, 'Infra Summit, Lisbon', 9, 4, { + description: 'LH 1796 out at 08:35, LH 1797 back. Hotel Tejo Vista, confirmation 4892.771.433.', + locations: room('Centro de Congressos de Lisboa', 'Praça das Indústrias 1'), + }), + timed('demo-event-talk', CAL.work, 'Talk: Rolling back without rolling over', { day: 11, hour: 11, minute: 30, minutes: 40 }, { + description: 'Auditorium 2. AV check 08:45.', locations: room('Auditorium 2', 'Centro de Congressos de Lisboa'), participants: people(owner(KENJI), attendee(NORA)), + }), + timed('demo-event-speakers-dinner', CAL.work, 'Speakers\' dinner', { day: 10, hour: 20, hours: 2 }, { + locations: room('Cervejaria Ramiro', 'Av. Alm. Reis 1H, Lisboa'), participants: people(owner(KENJI), attendee(NORA)), + }), + timed('demo-event-board', CAL.work, 'Board meeting: engineering update', { day: -2, hour: 15, hours: 1 }, { + participants: people(owner(JAMES), attendee(NORA), attendee(MICHAEL)), locations: room('Room Havel', '5th floor'), + }), + timed('demo-event-soak-start', CAL.team, 'Soak test start', { day: -6, hour: 8, minutes: 30 }, { participants: team }), - // ── Work calendar ────────────────────────────────────────── - { - ...baseEvent, - id: 'demo-event-4', - calendarIds: { 'demo-calendar-work': true }, - uid: 'demo-event-4@example.com', - title: 'Weekly Standup', - description: 'Team sync-up meeting', - created: demoDate(-30), - updated: demoDate(-1), - start: demoISODate(1, 9, 30), - utcStart: demoDate(1, 9, 30), - utcEnd: demoDate(1, 10, 0), - duration: 'PT30M', - timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone, - showWithoutTime: false, - recurrenceRules: [{ - '@type': 'RecurrenceRule', - frequency: 'weekly', - interval: 1, - firstDayOfWeek: 'mo', - byDay: [{ day: 'mo' }], - byMonthDay: null, - byMonth: null, - byYearDay: null, - byWeekNo: null, - byHour: null, - byMinute: null, - bySecond: null, - bySetPosition: null, - count: null, - until: null, - }], - virtualLocations: { vl1: { '@type': 'VirtualLocation', name: 'Zoom', uri: 'https://zoom.example/123456', description: 'Weekly standup room', features: null } }, - }, - { - ...baseEvent, - id: 'demo-event-5', - calendarIds: { 'demo-calendar-work': true }, - uid: 'demo-event-5@example.com', - title: 'Quarterly Review', - description: 'Q4 performance review and planning session', - created: demoDate(-14), - updated: demoDate(-3), - start: demoISODate(4, 14, 0), - utcStart: demoDate(4, 14), - utcEnd: demoDate(4, 16), - duration: 'PT2H', - timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone, - showWithoutTime: false, - participants: { - p1: { - '@type': 'Participant', name: 'Demo User', email: 'demo@example.com', calendarAddress: null, description: null, sendTo: null, - kind: 'individual', roles: { attendee: true }, participationStatus: 'accepted', participationComment: null, - expectReply: false, scheduleAgent: 'server', scheduleForceSend: false, scheduleId: null, scheduleSequence: 0, - scheduleStatus: null, scheduleUpdated: null, invitedBy: null, delegatedTo: null, delegatedFrom: null, memberOf: null, - locationId: null, language: null, links: null, - }, - p2: { - '@type': 'Participant', name: 'Alice Johnson', email: 'alice.johnson@example.com', calendarAddress: null, description: null, sendTo: null, - kind: 'individual', roles: { owner: true }, participationStatus: 'accepted', participationComment: null, - expectReply: false, scheduleAgent: 'server', scheduleForceSend: false, scheduleId: null, scheduleSequence: 0, - scheduleStatus: null, scheduleUpdated: null, invitedBy: null, delegatedTo: null, delegatedFrom: null, memberOf: null, - locationId: null, language: null, links: null, - }, - p3: { - '@type': 'Participant', name: 'Bob Chen', email: 'bob.chen@example.com', calendarAddress: null, description: null, sendTo: null, - kind: 'individual', roles: { attendee: true }, participationStatus: 'tentative', participationComment: null, - expectReply: true, scheduleAgent: 'server', scheduleForceSend: false, scheduleId: null, scheduleSequence: 0, - scheduleStatus: null, scheduleUpdated: null, invitedBy: null, delegatedTo: null, delegatedFrom: null, memberOf: null, - locationId: null, language: null, links: null, - }, - }, - }, - { - ...baseEvent, - id: 'demo-event-6', - calendarIds: { 'demo-calendar-work': true }, - uid: 'demo-event-6@example.com', - title: 'Lunch Meeting with Sarah', - description: 'Design review over lunch', - created: demoDate(-3), - updated: demoDate(-3), - start: demoISODate(3, 12, 0), - utcStart: demoDate(3, 12), - utcEnd: demoDate(3, 13), - duration: 'PT1H', - timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone, - showWithoutTime: false, - locations: { loc1: { '@type': 'Location', name: 'The Garden Bistro', description: '123 Oak Street', locationTypes: null, coordinates: null, timeZone: null, links: null, relativeTo: null } }, - }, + // ── Personal ────────────────────────────────────────────── + timed('demo-event-bookclub', CAL.personal, 'Book club', { day: 2, hour: 19, hours: 2 }, { + description: 'Finish Le Guin, pick the next one. Bring snacks.', locations: room('Marcus\'s place', 'Kastanienallee 80'), + participants: people(owner(MARCUS), attendee(NORA), attendee(EMMA), attendee(DAVID)), + }), + timed('demo-event-dinner-carlos', CAL.personal, 'Dinner with Carlos and co.', { day: 3, hour: 19, minute: 30, hours: 2, minutes: 30 }, { + locations: room('The Garden Bistro', 'Oranienstraße 12'), participants: people(owner(CARLOS), attendee(NORA)), + }), + timed('demo-event-flea-market', CAL.personal, 'Flea market, Mauerpark', { day: 4, hour: 11, hours: 2 }, { freeBusyStatus: 'free' }), + timed('demo-event-call-mom', CAL.personal, 'Call Mom', { day: 5, hour: 18, minutes: 45 }, { recurrenceRules: weekly(rruleDay(5)), created: demoDate(-200) }), + timed('demo-event-dentist', CAL.personal, 'Dentist: check-up', { day: 7, hour: 10, hours: 1 }, { + locations: room('Zahnarztpraxis Dr. Weber', 'Kastanienallee 21'), + }), + timed('demo-event-yoga', CAL.personal, 'Yoga', { day: -1, hour: 7, hours: 1 }, { recurrenceRules: weekly(rruleDay(-1)), created: demoDate(-120), freeBusyStatus: 'free' }), - // ── Birthdays calendar ───────────────────────────────────── - { - ...baseEvent, - id: 'demo-event-7', - calendarIds: { 'demo-calendar-birthdays': true }, - uid: 'demo-event-7@example.com', - title: 'Alice Johnson\'s Birthday', - description: '', - created: demoDate(-30), - updated: demoDate(-30), - start: demoISODate(12), - utcStart: demoDate(12), - utcEnd: demoDate(13), - duration: 'P1D', - timeZone: null, - showWithoutTime: true, - freeBusyStatus: 'free' as const, - }, - { - ...baseEvent, - id: 'demo-event-8', - calendarIds: { 'demo-calendar-birthdays': true }, - uid: 'demo-event-8@example.com', - title: 'Carlos Rivera\'s Birthday', - description: '', - created: demoDate(-30), - updated: demoDate(-30), - start: demoISODate(-3), - utcStart: demoDate(-3), - utcEnd: demoDate(-2), - duration: 'P1D', - timeZone: null, - showWithoutTime: true, - freeBusyStatus: 'free' as const, - }, + // ── Birthdays ───────────────────────────────────────────── + allDay('demo-event-bday-carlos', CAL.birthdays, 'Carlos Rivera\'s birthday', -3), + allDay('demo-event-bday-alice', CAL.birthdays, 'Alice Johnson\'s birthday', 12), + allDay('demo-event-bday-emma', CAL.birthdays, 'Emma Wilson\'s birthday', 5), ]; } + +/** + * The iMIP request behind the go/no-go invitation mail. The demo client + * serves this as the .ics blob and returns the matching event from + * parseCalendarEvents, so the invitation banner can offer an RSVP. + */ +export function createGoNoGoInvitationIcs(): string { + const event = createDemoCalendarEvents().find((e) => e.id === GONOGO_EVENT_ID)!; + const stamp = (iso: string) => iso.replace(/[-:]/g, '').replace(/\.\d{3}Z$/, 'Z'); + const attendees = Object.values(event.participants ?? {}).filter((p) => !p.roles.owner).map((p) => + `ATTENDEE;CN=${p.name};ROLE=REQ-PARTICIPANT;PARTSTAT=${p.participationStatus.toUpperCase()};RSVP=TRUE:mailto:${p.email}`); + return [ + 'BEGIN:VCALENDAR', + 'VERSION:2.0', + 'PRODID:-//Meridian Labs//Bulwark Demo//EN', + 'METHOD:REQUEST', + 'BEGIN:VEVENT', + `UID:${event.uid}`, + `DTSTAMP:${stamp(event.created ?? event.utcStart!)}`, + `DTSTART:${stamp(event.utcStart!)}`, + `DTEND:${stamp(event.utcEnd!)}`, + `SUMMARY:${event.title}`, + `DESCRIPTION:${(event.description ?? '').replace(/\n/g, '\\n')}`, + 'LOCATION:Room Spree\\, 4th floor', + `ORGANIZER;CN=${ALICE.name}:mailto:${ALICE.email}`, + ...attendees, + 'SEQUENCE:0', + 'STATUS:CONFIRMED', + 'END:VEVENT', + 'END:VCALENDAR', + ].join('\r\n'); +} diff --git a/lib/demo/fixtures/contacts.ts b/lib/demo/fixtures/contacts.ts index 145ab4b6b..805ae724f 100644 --- a/lib/demo/fixtures/contacts.ts +++ b/lib/demo/fixtures/contacts.ts @@ -1,20 +1,20 @@ import type { ContactCard, AddressBook } from '@/lib/jmap/types'; +import { + type Person, portraitUri, + NORA, ALICE, BOB, PRIYA, AHMED, JAMES, MICHAEL, RACHEL, WEI, MARIA, LISA, + SARAH, OLIVIA, JENNIFER, KENJI, SOFIA, ANNA, ELIAS, CARLOS, MARCUS, EMMA, DAVID, DANIEL, + TOMAS, LENA, YUSUF, +} from './people'; -// randomuser.me serves stable portrait URLs at -// https://randomuser.me/api/portraits/{men|women}/{0..99}.jpg -// See https://randomuser.me/documentation#howto - we use these directly -// rather than hitting the JSON API so the demo works offline. -const portrait = (gender: 'men' | 'women', n: number): string => - `https://randomuser.me/api/portraits/${gender}/${n}.jpg`; - -const photo = (gender: 'men' | 'women', n: number) => ({ - photo1: { kind: 'photo' as const, uri: portrait(gender, n), mediaType: 'image/jpeg' }, -}); +export const AB = { + personal: 'demo-addressbook-personal', + work: 'demo-addressbook-work', +} as const; export function createDemoAddressBooks(): AddressBook[] { return [ { - id: 'demo-addressbook-personal', + id: AB.personal, name: 'Personal', isDefault: true, isSubscribed: true, @@ -22,8 +22,8 @@ export function createDemoAddressBooks(): AddressBook[] { myRights: { mayRead: true, mayWrite: true, mayShare: true, mayDelete: false }, }, { - id: 'demo-addressbook-work', - name: 'Work', + id: AB.work, + name: 'Meridian Labs', isDefault: false, isSubscribed: true, sortOrder: 2, @@ -32,239 +32,182 @@ export function createDemoAddressBooks(): AddressBook[] { ]; } +type Extra = Partial> & { + /** Further addresses: [address, context]. */ + moreEmails?: Array<[string, 'work' | 'private']>; +}; + +function person(id: string, book: string, p: Person, context: 'work' | 'private', extra: Extra = {}): ContactCard { + const { moreEmails, ...rest } = extra; + const photo = portraitUri(p); + const emails: ContactCard['emails'] = { e1: { address: p.email, contexts: { [context]: true }, pref: 1 } }; + moreEmails?.forEach(([address, ctx], i) => { emails[`e${i + 2}`] = { address, contexts: { [ctx]: true } }; }); + return { + id, + addressBookIds: { [book]: true }, + kind: 'individual', + name: { components: [{ kind: 'given', value: p.given }, { kind: 'surname', value: p.surname }] }, + emails, + ...(photo ? { media: { photo1: { kind: 'photo', uri: photo, mediaType: 'image/jpeg' } } } : {}), + ...rest, + }; +} + +const meridian = (unit: string, title: string) => ({ + organizations: { o1: { name: 'Meridian Labs', units: [{ name: unit }] } }, + titles: { t1: { name: title, kind: 'title' as const } }, +}); +const phone = (number: string, feature: 'voice' | 'cell' = 'cell', context: 'work' | 'private' = 'work') => + ({ p1: { number, features: { [feature]: true }, contexts: { [context]: true } } }); + export function createDemoContacts(): ContactCard[] { return [ - // ── Personal address book ────────────────────────────────── - { - id: 'demo-contact-1', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Alice' }, { kind: 'surname', value: 'Johnson' }] }, - emails: { e1: { address: 'alice.johnson@example.com', contexts: { work: true }, pref: 1 } }, - phones: { p1: { number: '+1-555-0101', features: { voice: true }, contexts: { work: true } } }, - organizations: { o1: { name: 'Acme Corp', units: [{ name: 'Engineering' }] } }, - titles: { t1: { name: 'Senior Engineer', kind: 'title' } }, - anniversaries: { a1: { kind: 'birth', date: { year: 1990, month: 3, day: 15 } } }, - media: photo('women', 44), - }, - { - id: 'demo-contact-2', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Bob' }, { kind: 'surname', value: 'Chen' }] }, - emails: { - e1: { address: 'bob.chen@example.com', contexts: { work: true }, pref: 1 }, - e2: { address: 'bob.personal@email.example', contexts: { private: true } }, - }, - phones: { - p1: { number: '+1-555-0102', features: { voice: true }, contexts: { work: true } }, - p2: { number: '+1-555-0103', features: { cell: true }, contexts: { private: true } }, - }, - organizations: { o1: { name: 'Acme Corp', units: [{ name: 'Backend Team' }] } }, - titles: { t1: { name: 'Staff Engineer', kind: 'title' } }, - media: photo('men', 32), - }, - { - id: 'demo-contact-3', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Sarah' }, { kind: 'surname', value: 'Kim' }] }, - emails: { e1: { address: 'sarah.kim@example.com', pref: 1 } }, - phones: { p1: { number: '+1-555-0104', features: { voice: true } } }, - organizations: { o1: { name: 'DesignCo' } }, + // ── Meridian Labs ────────────────────────────────────────── + // Nora's own card: it gives her avatar a photo and her @mention a hover card. + person('demo-contact-nora', AB.work, NORA, 'work', { + ...meridian('Engineering', 'Engineering Lead'), + moreEmails: [['nora@lindqvist.example', 'private']], + phones: phone('+49 30 555 0199', 'voice'), + anniversaries: { a1: { kind: 'birth', date: { year: 1990, month: 6, day: 2 } } }, + }), + person('demo-contact-alice', AB.work, ALICE, 'work', { + ...meridian('Engineering', 'Engineering Manager'), + phones: phone('+49 30 555 0101', 'voice'), + anniversaries: { a1: { kind: 'birth', date: { year: 1988, month: 3, day: 15 } } }, + notes: { n1: { note: 'My manager. Prefers written proposals to meetings.' } }, + }), + person('demo-contact-bob', AB.work, BOB, 'work', { + ...meridian('Platform', 'Staff Engineer'), + moreEmails: [['bob.personal@email.example', 'private']], + phones: { p1: { number: '+49 30 555 0102', features: { voice: true }, contexts: { work: true } }, p2: { number: '+49 171 555 0103', features: { cell: true }, contexts: { private: true } } }, + }), + person('demo-contact-priya', AB.work, PRIYA, 'work', { ...meridian('Quality', 'QA Lead'), phones: phone('+49 30 555 0104', 'voice') }), + person('demo-contact-ahmed', AB.work, AHMED, 'work', { ...meridian('Platform', 'Site Reliability Engineer'), phones: phone('+49 171 555 0105') }), + person('demo-contact-james', AB.work, JAMES, 'work', { ...meridian('Leadership', 'CTO'), phones: phone('+49 30 555 0100', 'voice') }), + person('demo-contact-michael', AB.work, MICHAEL, 'work', { ...meridian('Product', 'Product Manager, Beacon'), phones: phone('+49 171 555 0106') }), + person('demo-contact-rachel', AB.work, RACHEL, 'work', { ...meridian('Marketing', 'Marketing Lead') }), + person('demo-contact-wei', AB.work, WEI, 'work', { ...meridian('Data', 'Data Scientist') }), + person('demo-contact-maria', AB.work, MARIA, 'work', { ...meridian('People Ops', 'People Partner'), phones: phone('+49 30 555 0108', 'voice') }), + person('demo-contact-lisa', AB.work, LISA, 'work', { ...meridian('Engineering', 'Frontend Engineer') }), + + // ── Work, outside the company ────────────────────────────── + person('demo-contact-sarah', AB.work, SARAH, 'work', { + organizations: { o1: { name: 'DesignCo Studio' } }, titles: { t1: { name: 'UX Designer', kind: 'title' } }, - media: photo('women', 68), - }, - { - id: 'demo-contact-4', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Carlos' }, { kind: 'surname', value: 'Rivera' }] }, - emails: { e1: { address: 'carlos.rivera@example.com', pref: 1 } }, - phones: { p1: { number: '+1-555-0105', features: { cell: true } } }, - notes: { n1: { note: 'Met at the DevConf 2024 conference' } }, - media: photo('men', 15), - }, - { - id: 'demo-contact-5', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Emma' }, { kind: 'surname', value: 'Wilson' }] }, - emails: { e1: { address: 'emma.wilson@example.com', pref: 1 } }, - addresses: { - a1: { - components: [ - { kind: 'number', value: '456' }, - { kind: 'name', value: 'Elm Street' }, - { kind: 'locality', value: 'Springfield' }, - { kind: 'region', value: 'IL' }, - { kind: 'postcode', value: '62701' }, - ], - contexts: { private: true }, - }, - }, - anniversaries: { a1: { kind: 'birth', date: { month: 7, day: 22 } } }, - media: photo('women', 22), - }, - { - id: 'demo-contact-6', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'David' }, { kind: 'surname', value: 'Park' }] }, - emails: { e1: { address: 'david.park@example.com', pref: 1 } }, - phones: { p1: { number: '+82-10-1234-5678', features: { cell: true } } }, - media: photo('men', 67), - }, - { - id: 'demo-contact-7', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'org', - name: { components: [{ kind: 'surname', value: 'Local Coffee Shop' }] }, - emails: { e1: { address: 'hello@localcoffee.example', pref: 1 } }, - phones: { p1: { number: '+1-555-0200', features: { voice: true } } }, - addresses: { - a1: { - components: [ - { kind: 'number', value: '789' }, - { kind: 'name', value: 'Main Street' }, - { kind: 'locality', value: 'Anytown' }, - { kind: 'region', value: 'CA' }, - { kind: 'postcode', value: '90210' }, - ], - }, - }, - }, - { - id: 'demo-contact-8', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Lisa' }, { kind: 'surname', value: 'Tanaka' }] }, - emails: { e1: { address: 'lisa.tanaka@example.com', pref: 1 } }, - media: photo('women', 85), - }, - { - id: 'demo-contact-16', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Sofia' }, { kind: 'surname', value: 'Russo' }] }, - emails: { e1: { address: 'sofia.russo@example.com', contexts: { private: true }, pref: 1 } }, - phones: { p1: { number: '+39-340-555-0111', features: { cell: true }, contexts: { private: true } } }, - notes: { n1: { note: 'Mom' } }, - anniversaries: { a1: { kind: 'birth', date: { year: 1962, month: 5, day: 9 } } }, - media: photo('women', 3), - }, - { - id: 'demo-contact-17', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Anna' }, { kind: 'surname', value: 'Kowalski' }] }, - emails: { e1: { address: 'anna.kowalski@example.com', contexts: { private: true }, pref: 1 } }, - phones: { p1: { number: '+48-602-555-0144', features: { cell: true } } }, - notes: { n1: { note: 'Sister - lives in Kraków' } }, - anniversaries: { a1: { kind: 'birth', date: { month: 11, day: 4 } } }, - media: photo('women', 47), - }, - { - id: 'demo-contact-18', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Marcus' }, { kind: 'surname', value: 'Hughes' }] }, - emails: { e1: { address: 'marcus.hughes@example.com', pref: 1 } }, - notes: { n1: { note: 'College friend - book club organiser' } }, - media: photo('men', 96), - }, - { - id: 'demo-contact-19', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Olivia' }, { kind: 'surname', value: 'Bennett' }] }, - emails: { e1: { address: 'olivia.bennett@example.com', contexts: { work: true }, pref: 1 } }, + phones: phone('+49 30 555 0204', 'voice'), + addresses: { a1: { components: [{ kind: 'name', value: 'Torstraße' }, { kind: 'number', value: '112' }, { kind: 'postcode', value: '10119' }, { kind: 'locality', value: 'Berlin' }], contexts: { work: true } } }, + notes: { n1: { note: 'Website redesign. Invoices monthly, net 14.' } }, + }), + person('demo-contact-olivia', AB.work, OLIVIA, 'work', { organizations: { o1: { name: 'Northwind Studio' } }, titles: { t1: { name: 'Product Designer', kind: 'title' } }, - media: photo('women', 91), + }), + person('demo-contact-kenji', AB.work, KENJI, 'work', { + organizations: { o1: { name: 'Infra Summit' } }, + titles: { t1: { name: 'Programme chair', kind: 'title' } }, + phones: phone('+351 21 555 0170', 'voice'), + }), + person('demo-contact-jennifer', AB.work, JENNIFER, 'work', { + organizations: { o1: { name: 'Talent Partners' } }, + titles: { t1: { name: 'Principal Recruiter', kind: 'title' } }, + }), + person('demo-contact-tomas', AB.work, TOMAS, 'work', { + organizations: { o1: { name: 'Lumen Logistics', units: [{ name: 'Operations' }] } }, + titles: { t1: { name: 'Head of Operations', kind: 'title' } }, + phones: phone('+351 21 555 0188', 'voice'), + addresses: { a1: { components: [{ kind: 'name', value: 'Av. da Liberdade' }, { kind: 'number', value: '110' }, { kind: 'postcode', value: '1250-146' }, { kind: 'locality', value: 'Lisboa' }, { kind: 'country', value: 'Portugal' }], contexts: { work: true } } }, + notes: { n1: { note: 'Design partner. Wants Lumen on the Beacon canary.' } }, + }), + person('demo-contact-lena', AB.work, LENA, 'work', { organizations: { o1: { name: 'Hoffmann & Partner' } }, titles: { t1: { name: 'Partner', kind: 'title' } } }), + person('demo-contact-yusuf', AB.work, YUSUF, 'work', { organizations: { o1: { name: 'Demir Retail' } }, titles: { t1: { name: 'Lead Developer', kind: 'title' } } }), + + // ── Personal ─────────────────────────────────────────────── + person('demo-contact-sofia', AB.personal, SOFIA, 'private', { + phones: phone('+39 051 555 0111', 'voice', 'private'), + addresses: { a1: { components: [{ kind: 'name', value: 'Via Zamboni' }, { kind: 'number', value: '18' }, { kind: 'postcode', value: '40126' }, { kind: 'locality', value: 'Bologna' }, { kind: 'country', value: 'Italy' }], contexts: { private: true } } }, + anniversaries: { a1: { kind: 'birth', date: { year: 1962, month: 5, day: 9 } } }, + notes: { n1: { note: 'Mom. Writing a memoir, "The Lemon Tree Year".' } }, + relatedTo: { [ANNA.email]: { relation: { child: true } } }, + }), + person('demo-contact-anna', AB.personal, ANNA, 'private', { + phones: phone('+48 602 555 0144', 'cell', 'private'), + addresses: { a1: { components: [{ kind: 'name', value: 'ul. Floriańska' }, { kind: 'number', value: '22' }, { kind: 'postcode', value: '31-021' }, { kind: 'locality', value: 'Kraków' }, { kind: 'country', value: 'Poland' }], contexts: { private: true } } }, + anniversaries: { a1: { kind: 'birth', date: { year: 1992, month: 11, day: 4 } } }, + notes: { n1: { note: 'Sister.' } }, + }), + person('demo-contact-elias', AB.personal, ELIAS, 'private', { + phones: phone('+46 70 555 0122', 'cell', 'private'), + addresses: { a1: { components: [{ kind: 'name', value: 'Linnégatan' }, { kind: 'number', value: '41' }, { kind: 'postcode', value: '413 08' }, { kind: 'locality', value: 'Göteborg' }, { kind: 'country', value: 'Sweden' }], contexts: { private: true } } }, + anniversaries: { a1: { kind: 'birth', date: { year: 1986, month: 8, day: 23 } } }, + notes: { n1: { note: 'Brother.' } }, + }), + person('demo-contact-carlos', AB.personal, CARLOS, 'private', { + phones: phone('+49 176 555 0105', 'cell', 'private'), + anniversaries: { a1: { kind: 'birth', date: { month: 10, day: 15 } } }, + notes: { n1: { note: 'Met at DevConf 2024. Organises the Friday dinners.' } }, + }), + person('demo-contact-marcus', AB.personal, MARCUS, 'private', { notes: { n1: { note: 'Book club host, every other week.' } } }), + person('demo-contact-emma', AB.personal, EMMA, 'private', { + addresses: { a1: { components: [{ kind: 'name', value: 'Schönhauser Allee' }, { kind: 'number', value: '56' }, { kind: 'postcode', value: '10437' }, { kind: 'locality', value: 'Berlin' }], contexts: { private: true } } }, + anniversaries: { a1: { kind: 'birth', date: { month: 7, day: 22 } } }, + }), + person('demo-contact-david', AB.personal, DAVID, 'private', { phones: phone('+82 10 1234 5678', 'cell', 'private') }), + person('demo-contact-daniel', AB.personal, DANIEL, 'private', { + organizations: { o1: { name: 'Cooper Creative' } }, + titles: { t1: { name: 'Illustrator', kind: 'title' } }, + notes: { n1: { note: 'Doing the cover for Mom\'s book.' } }, + }), + { + id: 'demo-contact-dentist', + addressBookIds: { [AB.personal]: true }, + kind: 'org', + name: { components: [{ kind: 'surname', value: 'Zahnarztpraxis Dr. Weber' }] }, + emails: { e1: { address: 'termine@dr-weber.example', pref: 1 } }, + phones: { p1: { number: '+49 30 555 0142', features: { voice: true } } }, + addresses: { a1: { components: [{ kind: 'name', value: 'Kastanienallee' }, { kind: 'number', value: '21' }, { kind: 'postcode', value: '10435' }, { kind: 'locality', value: 'Berlin' }] } }, }, { - id: 'demo-contact-20', - addressBookIds: { 'demo-addressbook-personal': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Daniel' }, { kind: 'surname', value: 'Cooper' }] }, - emails: { e1: { address: 'daniel.cooper@example.com', pref: 1 } }, - organizations: { o1: { name: 'Freelance' } }, - titles: { t1: { name: 'Illustrator', kind: 'title' } }, - media: photo('men', 76), + id: 'demo-contact-cafe', + addressBookIds: { [AB.personal]: true }, + kind: 'org', + name: { components: [{ kind: 'surname', value: 'Café Kranzler' }] }, + emails: { e1: { address: 'hello@kranzler.example', pref: 1 } }, + phones: { p1: { number: '+49 30 555 0200', features: { voice: true } } }, + addresses: { a1: { components: [{ kind: 'name', value: 'Rosenthaler Straße' }, { kind: 'number', value: '38' }, { kind: 'postcode', value: '10178' }, { kind: 'locality', value: 'Berlin' }] } }, + notes: { n1: { note: 'Coffee downstairs from the office.' } }, }, - // ── Work address book ────────────────────────────────────── + // ── Groups ───────────────────────────────────────────────── { - id: 'demo-contact-9', - addressBookIds: { 'demo-addressbook-work': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Michael' }, { kind: 'surname', value: 'Torres' }] }, - emails: { e1: { address: 'michael.torres@company.example', contexts: { work: true }, pref: 1 } }, - phones: { p1: { number: '+1-555-0301', features: { voice: true }, contexts: { work: true } } }, - organizations: { o1: { name: 'Company Inc', units: [{ name: 'Product' }] } }, - titles: { t1: { name: 'Product Manager', kind: 'title' } }, - media: photo('men', 41), + id: 'demo-group-beacon', + addressBookIds: { [AB.work]: true }, + kind: 'group', + name: { components: [{ kind: 'surname', value: 'Beacon team' }] }, + members: { 'demo-contact-alice': true, 'demo-contact-bob': true, 'demo-contact-priya': true, 'demo-contact-ahmed': true, 'demo-contact-lisa': true }, }, { - id: 'demo-contact-10', - addressBookIds: { 'demo-addressbook-work': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Rachel' }, { kind: 'surname', value: 'Green' }] }, - emails: { e1: { address: 'rachel.green@company.example', contexts: { work: true }, pref: 1 } }, - organizations: { o1: { name: 'Company Inc', units: [{ name: 'Marketing' }] } }, - titles: { t1: { name: 'Marketing Lead', kind: 'title' } }, - media: photo('women', 12), + id: 'demo-group-leadership', + addressBookIds: { [AB.work]: true }, + kind: 'group', + name: { components: [{ kind: 'surname', value: 'Leadership' }] }, + members: { 'demo-contact-james': true, 'demo-contact-michael': true, 'demo-contact-alice': true }, }, { - id: 'demo-contact-11', - addressBookIds: { 'demo-addressbook-work': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'James' }, { kind: 'surname', value: 'Miller' }] }, - emails: { e1: { address: 'james.miller@company.example', contexts: { work: true }, pref: 1 } }, - organizations: { o1: { name: 'Company Inc', units: [{ name: 'Engineering' }] } }, - titles: { t1: { name: 'CTO', kind: 'title' } }, - media: photo('men', 52), + id: 'demo-group-family', + addressBookIds: { [AB.personal]: true }, + kind: 'group', + name: { components: [{ kind: 'surname', value: 'Family' }] }, + members: { 'demo-contact-sofia': true, 'demo-contact-anna': true, 'demo-contact-elias': true }, }, { - id: 'demo-contact-12', - addressBookIds: { 'demo-addressbook-work': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Priya' }, { kind: 'surname', value: 'Sharma' }] }, - emails: { e1: { address: 'priya.sharma@company.example', contexts: { work: true }, pref: 1 } }, - organizations: { o1: { name: 'Company Inc', units: [{ name: 'QA' }] } }, - titles: { t1: { name: 'QA Engineer', kind: 'title' } }, - media: photo('women', 77), - }, - { - id: 'demo-contact-13', - addressBookIds: { 'demo-addressbook-work': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Ahmed' }, { kind: 'surname', value: 'Hassan' }] }, - emails: { e1: { address: 'ahmed.hassan@company.example', contexts: { work: true }, pref: 1 } }, - organizations: { o1: { name: 'Company Inc', units: [{ name: 'DevOps' }] } }, - titles: { t1: { name: 'DevOps Engineer', kind: 'title' } }, - media: photo('men', 89), - }, - { - id: 'demo-contact-14', - addressBookIds: { 'demo-addressbook-work': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Maria' }, { kind: 'surname', value: 'Lopez' }] }, - emails: { e1: { address: 'maria.lopez@company.example', contexts: { work: true }, pref: 1 } }, - organizations: { o1: { name: 'Company Inc', units: [{ name: 'HR' }] } }, - titles: { t1: { name: 'HR Business Partner', kind: 'title' } }, - media: photo('women', 55), - }, - { - id: 'demo-contact-15', - addressBookIds: { 'demo-addressbook-work': true }, - kind: 'individual', - name: { components: [{ kind: 'given', value: 'Wei' }, { kind: 'surname', value: 'Zhang' }] }, - emails: { e1: { address: 'wei.zhang@company.example', contexts: { work: true }, pref: 1 } }, - organizations: { o1: { name: 'Company Inc', units: [{ name: 'Data Science' }] } }, - titles: { t1: { name: 'Data Scientist', kind: 'title' } }, - media: photo('men', 8), + id: 'demo-group-bookclub', + addressBookIds: { [AB.personal]: true }, + kind: 'group', + name: { components: [{ kind: 'surname', value: 'Book club' }] }, + members: { 'demo-contact-marcus': true, 'demo-contact-emma': true, 'demo-contact-david': true }, }, ]; } + +/** The persona as a contact card, for the hover card on her own @mention. */ +export const SELF_CONTACT_EMAIL = NORA.email; diff --git a/lib/demo/fixtures/emails.ts b/lib/demo/fixtures/emails.ts index 84fda911b..d1325edab 100644 --- a/lib/demo/fixtures/emails.ts +++ b/lib/demo/fixtures/emails.ts @@ -1,842 +1,675 @@ +/** + * Mail in Nora's work account. One busy week around the Beacon launch: the + * team, a designer's invoice, a trip to a conference, receipts, newsletters, + * and the usual noise. See people.ts for who everyone is. + * + * Dates float with the clock: `ago()` for today, `at(daysAgo, h, m)` for + * earlier days. Body text never names a weekday directly; it uses dayName(). + */ import type { Email } from '@/lib/jmap/types'; -import { demoDate } from '../demo-utils'; +import { ago, at, authFail, authPass, dayLabel, dayName, listHeaders, mail, mid } from './mail'; +import { attachment } from './assets'; +import { MB } from './mailboxes'; +import { + addr, NORA, NORA_ALIAS, ALICE, BOB, PRIYA, AHMED, JAMES, MICHAEL, RACHEL, WEI, MARIA, LISA, + SARAH, OLIVIA, JENNIFER, KENJI, TOMAS, WORK_DOMAIN, +} from './people'; -const USER = { name: 'Demo User', email: 'demo@example.com' } as const; +const me = addr(NORA); +const alice = addr(ALICE); +const bob = addr(BOB); +const priya = addr(PRIYA); +const ahmed = addr(AHMED); +const lisa = addr(LISA); +const michael = addr(MICHAEL); +const beaconTeam = [me, alice, bob, priya, ahmed, lisa]; -// Helper to keep the fixtures short - auto-assigns a partId/blobId per body. -let bodyCounter = 0; -function body(value: string, type: 'text/plain' | 'text/html' = 'text/plain') { - const partId = String(++bodyCounter); - const blobId = `blob-${partId}`; - return { - part: { partId, blobId, size: value.length, type }, - values: { [partId]: { value } }, - }; -} +const company = authPass(WORK_DOMAIN); -/** Build text+html parts in one shot. */ -function bodies(text: string, html: string) { - const t = body(text, 'text/plain'); - const h = body(html, 'text/html'); - return { - textBody: [t.part], - htmlBody: [h.part], - bodyValues: { ...t.values, ...h.values }, - }; -} - -function textOnly(text: string) { - const t = body(text, 'text/plain'); - return { textBody: [t.part], bodyValues: t.values }; -} +/** Blob id of the go/no-go invitation; the client serves the ICS and parses it. */ +export const GONOGO_INVITE_BLOB = 'demo-blob-invite-gonogo'; +export const GONOGO_UID = 'beacon-gonogo-2026@meridianlabs.example'; export function createDemoEmails(): Email[] { return [ - // ── Inbox ─────────────────────────────────────────────────── - { - id: 'demo-email-1', - threadId: 'demo-thread-1', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 4200, - receivedAt: demoDate(0, -2), - from: [{ name: 'Bulwark Team', email: 'welcome@bulwark.email' }], - to: [USER], - subject: 'Welcome to Bulwark Mail!', - sentAt: demoDate(0, -2), - preview: 'Thanks for trying out Bulwark Mail. This is a demo environment where you can explore all features...', - hasAttachment: false, - ...bodies( - 'Thanks for trying out Bulwark Mail!\n\nThis is a demo environment where you can explore all features without connecting to a real server. All data stays on your device.\n\nFeel free to:\n- Read, compose, and organize emails\n- Manage contacts and calendars\n- Configure filters and settings\n- Try keyboard shortcuts (press ? to see them)\n\nEnjoy exploring!', - '

Welcome to Bulwark Mail!

Thanks for trying out Bulwark Mail!

This is a demo environment where you can explore all features without connecting to a real server. All data stays on your device.

Feel free to:

  • Read, compose, and organize emails
  • Manage contacts and calendars
  • Configure filters and settings
  • Try keyboard shortcuts (press ? to see them)

Enjoy exploring!

', - ), - messageId: '', - }, + // ══ Inbox ═══════════════════════════════════════════════════ - // Mom - personal message, unread - { - id: 'demo-email-mom', - threadId: 'demo-thread-mom', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 1900, - receivedAt: demoDate(0, -4, -12), - from: [{ name: 'Sofia Russo', email: 'sofia.russo@example.com' }], - to: [USER], - subject: 'when are you coming home?', - sentAt: demoDate(0, -4, -12), - preview: 'Hi sweetie, your father and I were just talking - we miss you. Any chance you can come down for a weekend...', - hasAttachment: false, - ...textOnly( - "Hi sweetie,\n\nYour father and I were just talking - we miss you. Any chance you can come down for a weekend before Christmas?\n\nNo pressure if you're swamped with work. Anna said she might be in town the 22nd, would be nice to all be in one place again.\n\nThe lemon tree finally fruited! Twelve lemons. I'll save you some.\n\nLove,\nMom", - ), - messageId: '<5a8c-mom@example.com>', - }, + // A verification code, 12 minutes old: the list shows it as a chip. + mail({ + id: 'demo-email-github-code', mailbox: MB.inbox, date: ago(0, 12), + from: { name: 'GitHub', email: 'noreply@github.com' }, + subject: '482913 is your GitHub authentication code', + text: 'Here is your GitHub authentication code: 482913\n\nThis code expires in 10 minutes. If you did not try to sign in, change your password now.\n\nThanks,\nThe GitHub Team', + headers: authPass('github.com'), + }), - // GitHub - PR review request - { - id: 'demo-email-gh-pr', - threadId: 'demo-thread-gh-pr', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 6400, - receivedAt: demoDate(0, -3, -5), - from: [{ name: 'Alice Johnson (via GitHub)', email: 'notifications@github.com' }], - replyTo: [{ name: 'reply', email: 'reply+abc123@reply.github.com' }], - to: [USER], - subject: '[acme/api-gateway] Add token-bucket rate limiter (#1284)', - sentAt: demoDate(0, -3, -5), - preview: '@demo-user requested your review on this pull request. Replaces the fixed-window limiter with a leaky token-bucket...', - hasAttachment: false, - ...bodies( - '@demo-user requested your review on this pull request.\n\nReplaces the fixed-window limiter with a leaky token-bucket so we stop punishing clients at the second-boundary edge. Per-endpoint config lives in rate-limit.toml.\n\nThree files changed, +312 −47.\n\nView it on GitHub:\nhttps://github.com/acme/api-gateway/pull/1284\n\n-\nReply to this email directly, or view it on GitHub.', - '
@demo-user requested your review on this pull request.
Replaces the fixed-window limiter with a leaky token-bucket so we stop punishing clients at the second-boundary edge. Per-endpoint config lives in rate-limit.toml.
Three files changed, +312 −47
View on GitHub
', - ), - messageId: '', - }, + // Bob: short, unread, a reply in the rollback thread (3 messages). + mail({ + id: 'demo-email-rollback-3', thread: 'demo-thread-rollback', mailbox: MB.inbox, date: ago(0, 38), + from: bob, to: [me], cc: [alice], + subject: 'Re: Rollback plan for the Beacon launch', + text: `+1 on the draft, two comments:\n\n1. Step 3 (drain the queue) should say who watches the dashboard while it drains. I'd put Ahmed's name there.\n2. The signing-key question at the end: I asked the auditor, we keep rotating during a rollback. Nothing to change.\n\nI'll sign off once those are in. Nice work, it's half the length I feared.\n\nBob`, + keywords: ['$label:beacon'], + headers: company, + inReplyTo: [mid('demo-email-rollback-2')], references: [mid('demo-email-rollback-1'), mid('demo-email-rollback-2')], + }), - // Hacker Newsletter - newsletter, read - { - id: 'demo-email-2', - threadId: 'demo-thread-2', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: { $seen: true }, - size: 18500, - receivedAt: demoDate(-1, -5), - from: [{ name: 'TechDigest Weekly', email: 'newsletter@techdigest.example' }], - to: [USER], - subject: 'Issue #218 - RFC 9844, the second WebAssembly draft, and a quiet announcement from Mozilla', - sentAt: demoDate(-1, -5), - preview: 'Your weekly roundup of the most important technology news and open source developments...', - hasAttachment: false, - ...bodies( - 'TechDigest #218\n\n- THE WEEK IN STANDARDS -\n\n1. RFC 9844: Per-message TLS extensions are now official. The implications for SMTP delivery reports are surprisingly large - Mike Crispin has a write-up that runs through what changes for transactional senders.\n\n2. WebAssembly 2.0 (second public draft). Tail calls are in. SIMD is in. Component model is *almost* in but punted to a separate spec, which feels like the right call.\n\n3. Mozilla quietly shipped a privacy-preserving telemetry channel to Firefox 132. No, it doesn\'t replace ad tracking. Yes, it\'s a real cryptographic system. Worth reading the post.\n\n- TOOLS -\n\n- Datasette 1.0 is out. Ten years from the first commit.\n- Fly.io published their object store, Tigris-style, written in Go.\n- Linear added an SSO migration tool that actually handles the IdP-initiated case.\n\n- ESSAYS -\n\n* "Postgres is enough" by E. Tan - a long-form rebuttal to the microservices-by-default pattern.\n* "I rewrote my home network in TypeScript so you don\'t have to" - exactly what it sounds like.\n\n- UNSUBSCRIBE -\n\nManage your subscription at techdigest.example/manage.', - '
TechDigest · Issue #218

RFC 9844, the second WebAssembly draft, and a quiet announcement from Mozilla

The week in standards

1. RFC 9844: Per-message TLS extensions are now official. The implications for SMTP delivery reports are surprisingly large - Mike Crispin has a write-up that runs through what changes for transactional senders.

2. WebAssembly 2.0 (second public draft). Tail calls are in. SIMD is in. Component model is almost in but punted to a separate spec, which feels like the right call.

3. Mozilla quietly shipped a privacy-preserving telemetry channel to Firefox 132. No, it doesn\'t replace ad tracking. Yes, it\'s a real cryptographic system.

Tools

  • Datasette 1.0 is out. Ten years from the first commit.
  • Fly.io published their object store, Tigris-style, written in Go.
  • Linear added an SSO migration tool that actually handles the IdP-initiated case.

Essays

"Postgres is enough" by E. Tan - a long-form rebuttal to the microservices-by-default pattern.

"I rewrote my home network in TypeScript so you don\'t have to" - exactly what it sounds like.

Manage your subscription at techdigest.example/manage
', - ), - messageId: '', - }, + // Alice opened the thread, mentioning Nora and Bob with @ links. The + // viewer turns those into contact chips. + mail({ + id: 'demo-email-rollback-1', thread: 'demo-thread-rollback', mailbox: MB.inbox, date: at(1, 10, 2), + from: alice, to: [me, bob], cc: [ahmed], + subject: 'Rollback plan for the Beacon launch', + text: `Hi both,\n\nMichael wants a written rollback plan before the go/no-go, one page, no slides. @Nora can you own it? You know the tenant router best. @Bob please review for anything the auditor would flag.\n\nWhat it needs: when we roll back (numbers, not feelings), the steps, who does what, and what customers see. Ahmed has the dashboards ready if you need numbers.\n\nEnd of ${dayName(1)} would be ideal so it can go out with the agenda.\n\nThanks,\nAlice`, + html: `

Hi both,

Michael wants a written rollback plan before the go/no-go, one page, no slides. @Nora can you own it? You know the tenant router best. @Bob please review for anything the auditor would flag.

What it needs: when we roll back (numbers, not feelings), the steps, who does what, and what customers see. Ahmed has the dashboards ready if you need numbers.

End of ${dayName(1)} would be ideal so it can go out with the agenda.

Thanks,
Alice

`, + keywords: ['$seen', '$label:beacon'], + headers: company, + }), - // Thread: Q4 Project Timeline - Alice → Bob → Alice (4 messages) - { - id: 'demo-email-3a', - threadId: 'demo-thread-3', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: { $seen: true }, - size: 3100, - receivedAt: demoDate(-3, -10), - from: [{ name: 'Alice Johnson', email: 'alice.johnson@example.com' }], - to: [USER, { name: 'Bob Chen', email: 'bob.chen@example.com' }], - subject: 'Q4 Project Timeline', - sentAt: demoDate(-3, -10), - preview: 'Hi team, I wanted to share the updated timeline for our Q4 deliverables...', - hasAttachment: false, - ...bodies( - 'Hi team,\n\nI wanted to share the updated timeline for our Q4 deliverables:\n\n- Phase 1: Design review - Oct 15\n- Phase 2: Development - Nov 1-30\n- Phase 3: Testing - Dec 1-15\n- Phase 4: Launch - Dec 20\n\nPlease review and let me know if you see any conflicts.\n\nBest,\nAlice', - '

Hi team,

I wanted to share the updated timeline for our Q4 deliverables:

  • Phase 1: Design review - Oct 15
  • Phase 2: Development - Nov 1-30
  • Phase 3: Testing - Dec 1-15
  • Phase 4: Launch - Dec 20

Please review and let me know if you see any conflicts.

Best,
Alice

', - ), - messageId: '', - }, - { - id: 'demo-email-3b', - threadId: 'demo-thread-3', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: { $seen: true }, - size: 3500, - receivedAt: demoDate(-2, -8), - from: [{ name: 'Bob Chen', email: 'bob.chen@example.com' }], - to: [{ name: 'Alice Johnson', email: 'alice.johnson@example.com' }, USER], - subject: 'Re: Q4 Project Timeline', - sentAt: demoDate(-2, -8), - preview: 'Looks good to me! One concern: the testing window might be tight given the holidays...', - hasAttachment: false, - ...textOnly( - "Looks good to me! One concern: the testing window might be tight given the holidays. Could we start testing a few days earlier?\n\nAlso, should we set up a shared doc for tracking blockers?\n\n- Bob", - ), - messageId: '', - inReplyTo: [''], - references: [''], - }, - { - id: 'demo-email-3c', - threadId: 'demo-thread-3', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 3800, - receivedAt: demoDate(-1, -3), - from: [{ name: 'Alice Johnson', email: 'alice.johnson@example.com' }], - to: [{ name: 'Bob Chen', email: 'bob.chen@example.com' }, USER], - subject: 'Re: Q4 Project Timeline', - sentAt: demoDate(-1, -3), - preview: "Great point Bob. Let's move testing to Nov 28. I'll create the shared doc today...", - hasAttachment: false, - ...textOnly( - "Great point Bob. Let's move testing to Nov 28. I'll create the shared doc today and share the link.\n\nUpdated timeline:\n- Design review: Oct 15\n- Development: Nov 1-27\n- Testing: Nov 28 - Dec 15\n- Launch: Dec 20\n\n- Alice", - ), - messageId: '', - inReplyTo: [''], - references: ['', ''], - }, + // The go/no-go invitation. The .ics is served by the client; the banner + // offers Accept / Tentative / Decline. + mail({ + id: 'demo-email-gonogo-invite', mailbox: MB.inbox, date: at(1, 9, 48), + from: alice, to: beaconTeam, cc: [michael], + subject: `Invitation: Beacon go / no-go review, ${dayName(1)} 14:00`, + text: `You are invited to "Beacon go / no-go review".\n\nWhen: ${dayName(1)}, ${dayLabel(1)}, 14:00 to 15:00 (Europe/Berlin)\nWhere: Room Spree, 4th floor, and Zoom\n\nAgenda:\n1. Soak test results (Ahmed)\n2. Rollback plan (Nora)\n3. Open bugs, BEA-412 in particular (Priya)\n4. Decision\n\nPlease respond so I know who is in the room and who dials in.`, + attachments: [{ partId: 'ics-gonogo', blobId: GONOGO_INVITE_BLOB, size: 1480, name: 'invite.ics', type: 'text/calendar; method=REQUEST' }], + keywords: ['$label:beacon'], + headers: company, + }), - // Stripe receipt - { - id: 'demo-email-stripe', - threadId: 'demo-thread-stripe', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: { $seen: true }, - size: 11200, - receivedAt: demoDate(-1, -1, -22), - from: [{ name: 'Stripe', email: 'receipts@stripe.com' }], - to: [USER], + mail({ + id: 'demo-email-coffee', mailbox: MB.inbox, date: ago(1, 2), + from: bob, + subject: 'Coffee before the go/no-go?', + text: `Kranzler at 13:15 ${dayName(1)}? I want to walk through the queue-drain step once more without six people watching.\n\nb`, + headers: company, + }), + + mail({ + id: 'demo-email-linear', mailbox: MB.inbox, date: ago(2, 3), + from: { name: 'Linear', email: 'notifications@linear.app' }, + subject: 'BEA-412 was assigned to you - Webhook retries double delivery volume during a partial outage', + text: 'Priya Sharma assigned BEA-412 to you.\n\nBEA-412 · Webhook retries double delivery volume during a partial outage\nPriority: High · Project: Beacon · Cycle 41\n\nWhen eu-2 is unreachable for more than 30 s, deliveries that already succeeded on eu-1 are retried from eu-2 once it is back. Customers see every webhook twice. The per-tenant budget caps it at 2x, which is the documented worst case, but the dedup key is not honoured across regions.\n\nOpen in Linear: https://linear.app/meridian/issue/BEA-412', + html: '
Linear · BEA-412
Webhook retries double delivery volume during a partial outage
Priya Sharma assigned this issue to you · Priority High · Cycle 41
When eu-2 is unreachable for more than 30 s, deliveries that already succeeded on eu-1 are retried from eu-2 once it is back. Customers see every webhook twice. The per-tenant budget caps it at 2x, which is the documented worst case, but the dedup key is not honoured across regions.
Open in Linear
', + keywords: ['$label:beacon'], + headers: authPass('linear.app'), + }), + + mail({ + id: 'demo-email-github-pr', mailbox: MB.inbox, date: ago(2, 50), + from: { name: 'Lisa Tanaka (via GitHub)', email: 'notifications@github.com' }, + replyTo: [{ name: 'meridianlabs/beacon', email: 'reply+AAZK3@reply.github.com' }], + subject: '[meridianlabs/beacon] Signed webhook deliveries: rotate keys without a gap (#1284)', + text: '@nora-lindqvist requested your review on this pull request.\n\nKeeps the previous signing key valid for 48 h after a rotation and adds the key id to the X-Beacon-Signature header, so receivers can verify during the overlap. Closes BEA-398.\n\n7 files changed, +412 -58.\n\nView it on GitHub:\nhttps://github.com/meridianlabs/beacon/pull/1284', + html: '
@lisa-tanaka requested your review on this pull request.
Keeps the previous signing key valid for 48 h after a rotation and adds the key id to the X-Beacon-Signature header, so receivers can verify during the overlap. Closes BEA-398.
7 files changed, +412 −58
View on GitHub
', + keywords: ['$label:beacon'], + headers: { ...authPass('github.com'), 'List-Id': 'meridianlabs/beacon ' }, + }), + + mail({ + id: 'demo-email-datadog', mailbox: MB.inbox, date: at(1, 3, 12), + from: { name: 'Datadog', email: 'alert@dtdg.co' }, + subject: '[Recovered] beacon-eu-2 p95 delivery latency above 400 ms', + text: 'Monitor: beacon-eu-2 p95 delivery latency\nStatus: Recovered after 4 minutes\n\nPeak: 612 ms at 03:07, back under 200 ms at 03:11. The alert fired during the nightly key rotation; the overlap window in #1284 should remove the spike.\n\nNotified: @nora, @ahmed', + keywords: ['$seen', '$label:beacon'], + headers: authPass('dtdg.co'), + }), + + // Sarah's invoice and prototype, the message the docs open in the inbox shot. + mail({ + id: 'demo-email-sarah-invoice', mailbox: MB.inbox, date: at(1, 16, 5), + from: addr(SARAH), + subject: 'Invoice 2026-089 and landing-page prototype v3', + text: `Hi Nora,\n\nAttached are the invoice for this month and a screenshot of the latest prototype. I went with option B for the hero (the asymmetric grid) since you said the symmetrical version felt too flat on our last call.\n\nIf the line items look off, ping me. I backed out the pre-payment for next month as agreed.\n\nBest,\nSarah`, + attachments: [attachment('demo-blob-invoice-designco'), attachment('demo-blob-prototype')], + keywords: ['$label:work', '$label:finance'], + headers: authPass('designco.example'), + }), + + mail({ + id: 'demo-email-lisa-longpoll', mailbox: MB.inbox, date: at(1, 17, 30), + from: lisa, to: [me], cc: [bob], + subject: 'Long-poll reconnect test: one weird thing', + text: `The staging tenant reconnected fine at cutover, once, as planned. But three clients reconnected twice, about 90 s apart. Not harmful, they just see one empty response.\n\nI think it's the load balancer's idle timeout racing the first reconnect. I can extend the timeout on the LB or teach the client to back off. Preference? I'd rather not touch the client this close to launch.\n\nLisa`, + keywords: ['$label:beacon'], + headers: company, + }), + + // Ahmed, with the dashboard screenshot and the numbers. + mail({ + id: 'demo-email-soak', mailbox: MB.inbox, date: at(1, 18, 42), + from: ahmed, to: beaconTeam, + subject: 'Soak test passed: 48 h at 3x peak', + text: 'Done. 48 hours at three times peak traffic on eu-1 and eu-2, no retry-budget breach, no manual intervention.\n\nDeliveries/s: 42,380 peak\np95 delivery latency: 184 ms\nErrors: 0.02%\nRetry budget used: 11% (worst tenant)\n\nDashboard screenshot and the hourly numbers attached. The dip around hour 31 is the key rotation, see BEA-398.\n\nI\'d call it a pass. Priya wants one more night at 1x on the canary tenants, which I agree with.\n\nAhmed', + attachments: [attachment('demo-blob-soak-dashboard'), attachment('demo-blob-soak-metrics')], + keywords: ['$seen', '$flagged', '$label:beacon'], + headers: company, + }), + + mail({ + id: 'demo-email-rachel-quote', mailbox: MB.inbox, date: at(1, 13, 20), + from: addr(RACHEL), + subject: 'Launch announcement draft: need a quote from you', + text: `Hi Nora,\n\nThe blog post is drafted (link in Notion). I need one quote from engineering, two sentences, why Beacon matters to someone running webhooks today. Not "we are excited".\n\nCan I have it by ${dayName(3)}? Rachel`, + keywords: ['$label:work', '$label:follow-up'], + headers: company, + }), + + mail({ + id: 'demo-email-vercel', mailbox: MB.inbox, date: at(1, 22, 15), + from: { name: 'Vercel', email: 'notifications@vercel.com' }, + subject: 'Deployment failed: meridianlabs-website (main)', + text: 'Your deployment of meridianlabs-website failed.\n\nBranch: main\nCommit: 7c21f3e "hero: switch to option B grid"\nError: Image optimisation failed for /hero/prototype-v3.png (file too large)\n\nView the build logs: https://vercel.com/meridianlabs/website/deployments/dpl_9x2', + keywords: ['$label:work'], + headers: authPass('vercel.com'), + }), + + mail({ + id: 'demo-email-notion', mailbox: MB.inbox, date: at(1, 10, 5), + from: { name: 'Olivia Bennett (via Notion)', email: 'notify@mail.notion.so' }, + subject: 'Olivia shared "Beacon onboarding flow, v2" with you', + text: 'Olivia Bennett shared a page with you in the Northwind workspace.\n\n"Beacon onboarding flow, v2"\n\nOpen in Notion: https://notion.so/northwind/beacon-onboarding-v2', + keywords: ['$seen', '$label:work'], + headers: authPass('mail.notion.so'), + }), + + mail({ + id: 'demo-email-techdigest', mailbox: MB.inbox, date: at(1, 6, 30), + from: { name: 'TechDigest Weekly', email: 'newsletter@techdigest.example' }, + subject: 'Issue #231: RFC 9844, the second WebAssembly draft, and a quiet announcement from Mozilla', + text: 'TechDigest #231\n\n- THE WEEK IN STANDARDS -\n\n1. RFC 9844: per-message TLS extensions are now official. The implications for SMTP delivery reports are surprisingly large.\n\n2. WebAssembly 2.0 (second public draft). Tail calls are in. SIMD is in. The component model is almost in but punted to a separate spec.\n\n3. Mozilla quietly shipped a privacy-preserving telemetry channel. No, it does not replace ad tracking. Yes, it is a real cryptographic system.\n\n- TOOLS -\n\n- Datasette 1.0 is out. Ten years from the first commit.\n- Fly.io published their object store, written in Go.\n\n- ESSAYS -\n\n* "Postgres is enough": a long-form rebuttal to microservices by default.\n\nManage your subscription at techdigest.example/manage.', + html: '
TechDigest · Issue #231

RFC 9844, the second WebAssembly draft, and a quiet announcement from Mozilla

The week in standards

1. RFC 9844: per-message TLS extensions are now official. The implications for SMTP delivery reports are surprisingly large.

2. WebAssembly 2.0 (second public draft). Tail calls are in. SIMD is in. The component model is almost in but punted to a separate spec.

3. Mozilla quietly shipped a privacy-preserving telemetry channel. No, it does not replace ad tracking. Yes, it is a real cryptographic system.

Tools

  • Datasette 1.0 is out. Ten years from the first commit.
  • Fly.io published their object store, written in Go.

Essays

"Postgres is enough": a long-form rebuttal to microservices by default.

Manage your subscription at techdigest.example/manage
', + keywords: ['$seen'], + headers: { ...authPass('techdigest.example'), ...listHeaders('TechDigest Weekly', 'techdigest.example') }, + }), + + // Michael asks for a read receipt; the viewer offers to send one. + mail({ + id: 'demo-email-launch-plan', mailbox: MB.inbox, date: at(2, 9, 12), + from: michael, to: beaconTeam, cc: [addr(JAMES), addr(RACHEL)], + subject: 'Beacon launch plan v3 (please read before the go/no-go)', + text: `Team,\n\nv3 of the launch plan is attached. Changes from v2: the canary runs 24 h instead of 12, the rollback runbook is a gate (Nora), and GA moves to ${dayLabel(8)} so the blog post and the changelog land on the same day.\n\nPlease read it before the review. If you disagree with a date, say so in the thread, not in the meeting.\n\nMichael`, + attachments: [attachment('demo-blob-launch-plan')], + keywords: ['$seen', '$label:beacon'], + headers: { ...company, 'Disposition-Notification-To': `Michael Torres <${MICHAEL.email}>` }, + }), + + // Priya and Nora, a thread that spans Inbox and Sent. + mail({ + id: 'demo-email-canary-3', thread: 'demo-thread-canary', mailbox: MB.inbox, date: at(1, 8, 55), + from: priya, to: [me], cc: [ahmed], + subject: 'Re: Canary length: 12 h or 24 h?', + text: 'Agreed, 24 h and we pick the five tenants together on the day. I\'ll add the overnight check to the QA plan.\n\nOne more: I want BEA-412 fixed or explicitly accepted before the canary, not during. Can you raise it at the review?\n\nPriya', + keywords: ['$seen', '$label:beacon'], + headers: company, + inReplyTo: [mid('demo-email-canary-2')], references: [mid('demo-email-canary-1'), mid('demo-email-canary-2')], + }), + mail({ + id: 'demo-email-canary-1', thread: 'demo-thread-canary', mailbox: MB.inbox, date: at(2, 14, 30), + from: priya, to: [me], cc: [ahmed], + subject: 'Canary length: 12 h or 24 h?', + text: 'The plan says 12 h for the canary. That gives us one business-hours window and no night. Most of the retry weirdness we saw in the soak was at night, when the batch customers run.\n\nI\'d like 24 h. It costs one day on the schedule. Thoughts before I put it to Michael?\n\nPriya', + keywords: ['$seen', '$label:beacon'], + headers: company, + }), + + mail({ + id: 'demo-email-docusign', mailbox: MB.inbox, date: at(2, 11, 25), + from: { name: 'Michael Torres via DocuSign', email: 'dse@docusign.net' }, + subject: 'Please review and sign: Lumen Logistics service agreement', + text: 'Michael Torres sent you a document to review and sign.\n\nLumen Logistics service agreement (Business plan, Beacon add-on)\n\nReview document: https://app.docusign.com/signing/9f3a2c\n\nThis is a demo of a signing request; the link does not go anywhere.', + keywords: ['$label:work', '$label:follow-up'], + headers: authPass('docusign.net'), + }), + + mail({ + id: 'demo-email-tomas-po', mailbox: MB.inbox, date: at(4, 9, 50), + from: addr(TOMAS), to: [me], cc: [michael], + subject: 'Re: Beacon add-on for Lumen Logistics', + text: 'Hi Nora,\n\nThank you for the walkthrough last week. Finance approved: the purchase order is attached, Business plan plus the Beacon add-on for fifty tenants. We would like to start on the canary if you will have us; our Lisbon team is used to being first.\n\nTomás\n\nTomás Ferreira · Head of Operations · Lumen Logistics S.A.', + attachments: [attachment('demo-blob-po-lumen')], + keywords: ['$seen', '$label:work', '$label:finance'], + headers: authPass('lumenlogistics.example'), + }), + + mail({ + id: 'demo-email-kenji', mailbox: MB.inbox, date: at(2, 16, 40), + from: addr(KENJI), + subject: 'Speaker logistics: your slot, the AV check and the dinner', + text: `Dear Nora,\n\nThank you again for speaking at Infra Summit. The details:\n\nYour talk: "Rolling back without rolling over", ${dayName(11)} 11:30, Auditorium 2, 30 min plus 10 for questions.\nAV check: ${dayName(11)} 08:45 at the auditorium. Bring your own adapter if you need USB-C to HDMI, though we have a few.\nSpeakers' dinner: ${dayName(10)} 20:00 at Cervejaria Ramiro, five minutes from the venue.\n\nYour ticket is attached; it also covers the workshop day.\n\nSee you in Lisbon,\nKenji\n\nKenji Watanabe · Programme chair, Infra Summit`, + attachments: [attachment('demo-blob-summit-ticket')], + keywords: ['$seen', '$label:travel'], + headers: authPass('infrasummit.example'), + }), + + mail({ + id: 'demo-email-james', mailbox: MB.inbox, date: at(2, 19, 5), + from: addr(JAMES), + subject: 'Re: Board update', + text: 'Nora, this was the clearest engineering update the board has had. Two questions came back, both about the migration tooling for long-poll customers, which tells me the rest landed. Thank you.\n\nJ', + keywords: ['$seen', '$label:work'], + headers: company, + inReplyTo: [mid('demo-email-sent-board')], references: [mid('demo-email-sent-board')], + }), + + mail({ + id: 'demo-email-sentry', mailbox: MB.inbox, date: at(2, 22, 40), + from: { name: 'Sentry', email: 'noreply@md.getsentry.com' }, + subject: '[beacon-api] New issue: TypeError in WebhookSigner.sign (key id undefined)', + text: 'A new issue was seen in beacon-api (production).\n\nTypeError: Cannot read properties of undefined (reading \'id\')\n at WebhookSigner.sign (signer.ts:84)\n at deliver (delivery.ts:211)\n\n3 events · 1 user · first seen 22:38\n\nView on Sentry: https://sentry.io/organizations/meridian/issues/51822', + keywords: ['$seen', '$label:beacon'], + headers: authPass('md.getsentry.com'), + }), + + mail({ + id: 'demo-email-lufthansa', mailbox: MB.inbox, date: at(3, 12, 15), + from: { name: 'Lufthansa', email: 'noreply@lufthansa.com' }, + subject: 'Your booking E7KQ2R: Berlin to Lisbon', + text: `Thank you for your booking.\n\nLH 1796 · ${dayLabel(9)} · Berlin (BER) 08:35 to Lisbon (LIS) 11:20\nLH 1797 · ${dayLabel(12)} · Lisbon (LIS) 12:10 to Berlin (BER) 16:50\n\nPassenger: Nora Lindqvist · Seat 14A / 11F · Economy\nBooking reference: E7KQ2R\n\nYour e-ticket is attached. Online check-in opens 23 hours before departure.`, + attachments: [attachment('demo-blob-boarding-pass', { name: 'E-ticket-E7KQ2R.pdf' })], + keywords: ['$seen', '$label:travel'], + headers: authPass('lufthansa.com'), + }), + + // Booking.com: an HTML mail with a remote image, so the viewer asks before loading it. + mail({ + id: 'demo-email-booking', mailbox: MB.inbox, date: at(3, 12, 40), + from: { name: 'Booking.com', email: 'noreply@booking.com' }, + subject: 'Confirmation 4892.771.433: Hotel Tejo Vista, Lisbon', + text: `Your booking is confirmed.\n\nHotel Tejo Vista, Rua do Alecrim 48, Lisbon\nCheck-in: ${dayLabel(9)}, from 15:00\nCheck-out: ${dayLabel(12)}, until 11:00\n\nSuperior double, river view, breakfast included\nTotal: EUR 486 (paid)\n\nConfirmation number: 4892.771.433 · PIN 2047\n\nYour voucher is attached. Show it at reception.`, + html: `
Hotel Tejo Vista

Your booking is confirmed

Hotel Tejo Vista, Rua do Alecrim 48, Lisbon

Check-in${dayLabel(9)}, from 15:00
Check-out${dayLabel(12)}, until 11:00
RoomSuperior double, river view
TotalEUR 486 (paid)

Confirmation number 4892.771.433 · PIN 2047. Your voucher is attached.

`, + attachments: [attachment('demo-blob-hotel-voucher')], + keywords: ['$seen', '$label:travel'], + headers: authPass('booking.com'), + }), + + mail({ + id: 'demo-email-jennifer', mailbox: MB.inbox, date: at(3, 10, 10), + from: addr(JENNIFER), + subject: 'Head of Platform, Series B, Berlin or remote', + text: 'Hi Nora,\n\nI came across your talk abstract for Infra Summit and thought of a client of mine: a Series B in real-time data infrastructure, 60 engineers, Berlin office with a remote-first culture. They are hiring a Head of Platform.\n\nStack is Rust and Postgres with a fair amount of Go. Compensation is in the range you would expect at that stage, with meaningful equity.\n\nWould you be open to a 15-minute call this week or next?\n\nBest,\nJennifer Hayes\nTalent Partners', + headers: authPass('talent-partners.example'), + }), + + mail({ + id: 'demo-email-maria', mailbox: MB.inbox, date: at(3, 9, 0), + from: addr(MARIA), to: [{ name: 'All staff', email: `all@${WORK_DOMAIN}` }], + subject: 'Reminder: Q4 development conversations', + text: `Hi everyone,\n\nA reminder that Q4 development conversations run until the end of the month. Managers, please book the 45 minutes with each report by ${dayLabel(10)} and use the new template in Notion (it is shorter, you will like it).\n\nQuestions to me, as always.\n\nMaria\nPeople Ops`, + keywords: ['$seen'], + headers: company, + }), + + mail({ + id: 'demo-email-ahmed-status', mailbox: MB.inbox, date: at(3, 16, 5), + from: ahmed, to: [me, lisa], + subject: 'Status page component for Beacon is on staging', + text: 'https://status-staging.meridianlabs.example/beacon\n\nShows delivery success rate and p95 per region, 90 days. Lisa, the colours come from the website tokens so it should match the redesign. Tell me if the legend reads wrong on dark.\n\nA', + keywords: ['$seen', '$label:beacon'], + headers: company, + }), + + mail({ + id: 'demo-email-wei', mailbox: MB.inbox, date: at(4, 15, 20), + from: addr(WEI), to: [me, michael], + subject: 'Beacon adoption model: early numbers', + text: 'Quick one before the plan is final. Based on the beta cohort, 38% of tenants enable webhooks in the first week and 71% within a month. Long-poll usage drops to under 10% of requests by week six. So the migration window of a year is generous; six months would do.\n\nFull model in the Beacon folder. Wei', + keywords: ['$seen', '$label:beacon'], + headers: company, + }), + + mail({ + id: 'demo-email-figma', mailbox: MB.inbox, date: at(5, 10, 30), + from: { name: 'Figma', email: 'no-reply@figma.com' }, + subject: 'Sarah Kim invited you to "Meridian website redesign"', + text: 'Sarah Kim (sarah@designco.example) invited you to edit the file "Meridian website redesign".\n\nOpen in Figma: https://www.figma.com/file/demo/meridian-website-redesign', + keywords: ['$seen', '$label:work'], + headers: authPass('figma.com'), + }), + + mail({ + id: 'demo-email-aws', mailbox: MB.inbox, date: at(5, 8, 15), + from: { name: 'Amazon Web Services', email: 'no-reply-aws@amazon.com' }, + subject: 'Your AWS invoice is available: USD 1,284.17', + text: 'Your invoice for the previous billing period is now available.\n\nTotal this period: USD 1,284.17 (up USD 96.40, Beacon soak test)\n\nTop services:\n Amazon EC2 USD 612.08\n Amazon S3 USD 288.94\n Amazon CloudFront USD 141.50\n Amazon Route 53 USD 64.00\n Other USD 177.65\n\nView the full invoice in the Billing console.', + keywords: ['$seen', '$label:finance'], + headers: authPass('amazon.com'), + }), + + mail({ + id: 'demo-email-1password', mailbox: MB.inbox, date: at(2, 7, 45), + from: { name: '1Password', email: 'support@1password.com' }, + subject: 'Your 1Password Business subscription renews in 7 days', + text: 'Hi Nora,\n\nYour 1Password Business subscription for Meridian Labs (24 seats) renews automatically in 7 days. The card on file ends in 4242.\n\nNothing to do unless you want to change the plan or the payment method.\n\nThe 1Password team', + keywords: ['$seen', '$label:finance'], + headers: authPass('1password.com'), + }), + + mail({ + id: 'demo-email-linkedin', mailbox: MB.inbox, date: at(4, 11, 0), + from: { name: 'LinkedIn', email: 'jobs-noreply@linkedin.com' }, + subject: '5 jobs matching "staff engineer · remote · eu", including one at Datadog', + text: 'Based on your saved search "staff engineer · remote · eu":\n\n1. Staff Software Engineer, Datadog (Remote, EU)\n2. Principal Engineer, Platform, Sentry (Remote, EU)\n3. Staff Backend Engineer, Linear (Remote)\n4. Tech Lead, Infrastructure, Tailscale (Remote, EU)\n5. Staff Engineer, Mobile, Notion (Remote, EU)\n\nManage job alerts at linkedin.com/jobs/preferences.', + keywords: ['$seen'], + headers: { ...authPass('linkedin.com'), ...listHeaders('LinkedIn Job Alerts', 'linkedin.com') }, + }), + + mail({ + id: 'demo-email-github-key', mailbox: MB.inbox, date: at(4, 20, 12), + from: { name: 'GitHub', email: 'noreply@github.com' }, + subject: '[GitHub] A new SSH key was added to your account', + text: 'Hey nora-lindqvist,\n\nA new public key was added to your account:\n\n nora@framework-16 (ED25519) SHA256:k9Qz...\n\nIf you believe this key was added in error, you can remove it in your SSH keys settings.\n\nThanks,\nThe GitHub Team', + keywords: ['$seen'], + headers: authPass('github.com'), + }), + + mail({ + id: 'demo-email-dependabot', mailbox: MB.inbox, date: at(5, 6, 0), + from: { name: 'dependabot[bot]', email: 'notifications@github.com' }, + subject: '[meridianlabs/beacon] Bump jsonwebtoken from 9.0.0 to 9.0.2 in /beacon-api (#1279)', + text: 'Bumps jsonwebtoken from 9.0.0 to 9.0.2.\n\nRelease notes: fixes a verification bypass when the algorithm is not pinned (GHSA-8cf7-32gw-wr33).\n\nDependabot will resolve any conflicts with this PR as long as you don\'t alter it yourself.', + keywords: ['$seen', '$label:beacon'], + headers: { ...authPass('github.com'), 'List-Id': 'meridianlabs/beacon ' }, + }), + + mail({ + id: 'demo-email-olivia-workshop', mailbox: MB.inbox, date: at(6, 14, 0), + from: addr(OLIVIA), + subject: 'Workshop at Northwind: two slots left', + text: `Hi Nora,\n\nWe are running the onboarding workshop for Beacon design partners on ${dayLabel(13)}, two slots left. I kept one for Meridian in case you or Lisa want to sit in and hear what the first customers stumble over.\n\nSay the word and I'll put you down.\n\nOlivia`, + keywords: ['$seen', '$label:work'], + headers: authPass('northwind.example'), + }), + + mail({ + id: 'demo-email-hetzner-maint', mailbox: MB.inbox, date: at(6, 9, 30), + from: { name: 'Hetzner Cloud', email: 'noreply@hetzner.com' }, + subject: `Scheduled maintenance: Falkenstein network, ${dayLabel(5)} 02:00 to 04:00 CEST`, + text: `Dear customer,\n\nWe will perform network maintenance in our Falkenstein data centre on ${dayLabel(5)} between 02:00 and 04:00 CEST. Affected: the load balancer lb-beacon-eu-1. Expect up to two minutes of packet loss.\n\nNo action is required on your side.\n\nHetzner Cloud`, + keywords: ['$seen', '$label:beacon'], + headers: authPass('hetzner.com'), + }), + + // ══ Sent ═══════════════════════════════════════════════════ + mail({ + id: 'demo-email-rollback-2', thread: 'demo-thread-rollback', mailbox: MB.sent, date: at(1, 16, 20), + from: me, to: [alice, bob], cc: [ahmed], + subject: 'Re: Rollback plan for the Beacon launch', + text: 'Draft attached, one page plus a table. The short version: we roll back on numbers (error rate above 0.5% for ten minutes, p95 above 1 s, or a retry-budget breach on three tenants), the on-call decides alone, and the whole thing is five steps.\n\nBob, the open question at the end is for you: do we keep rotating signing keys during a rollback window?\n\nNora', + attachments: [attachment('demo-blob-runbook')], + keywords: ['$seen', '$label:beacon'], + inReplyTo: [mid('demo-email-rollback-1')], references: [mid('demo-email-rollback-1')], + }), + mail({ + id: 'demo-email-canary-2', thread: 'demo-thread-canary', mailbox: MB.sent, date: at(2, 15, 10), + from: me, to: [priya], cc: [ahmed], + subject: 'Re: Canary length: 12 h or 24 h?', + text: '24 h. The night is where the batch customers live and that is exactly who we are nervous about. I\'ll tell Michael it costs a day and why; he will take it.\n\nCan we pick the five canary tenants together? I want Lumen in there, they asked to be first.\n\nNora', + keywords: ['$seen', '$label:beacon'], + inReplyTo: [mid('demo-email-canary-1')], references: [mid('demo-email-canary-1')], + }), + mail({ + id: 'demo-email-sent-board', mailbox: MB.sent, date: at(2, 18, 30), + from: me, to: [addr(JAMES), michael], + subject: 'Board update', + text: 'James, Michael,\n\nThe quarterly report for the board pack is attached. Engineering section is two pages: uptime, latency, Beacon status, and what next quarter costs. I kept the migration tooling as an open item rather than promising a date.\n\nShout if anything needs softening before it goes out.\n\nNora', + attachments: [attachment('demo-blob-quarterly-report')], + keywords: ['$seen', '$label:work'], + }), + mail({ + id: 'demo-email-sent-kenji', mailbox: MB.sent, date: at(2, 17, 55), + from: me, to: [addr(KENJI)], + subject: 'Re: Speaker logistics: your slot, the AV check and the dinner', + text: 'Dear Kenji,\n\nAll noted, thank you. I\'ll be at the AV check at 08:45 and I would love to join the dinner. One request: could my slides go on the venue machine as well? I have had a laptop die on stage once and would rather not repeat it.\n\nSee you in Lisbon,\nNora', + keywords: ['$seen', '$label:travel'], + inReplyTo: [mid('demo-email-kenji', 'infrasummit.example')], references: [mid('demo-email-kenji', 'infrasummit.example')], + }), + mail({ + id: 'demo-email-sent-sarah', mailbox: MB.sent, date: at(5, 11, 40), + from: me, to: [addr(SARAH)], + subject: 'Re: Prototype v2: hero options', + text: 'Hi Sarah,\n\nOption B. The symmetrical one is calmer but it reads like every other developer-tool site this year. Go with the asymmetric grid, and let\'s see v3 with the real copy from Rachel.\n\nInvoice whenever you are ready; the pre-payment for next month can wait until the launch is out.\n\nThanks,\nNora', + keywords: ['$seen', '$label:work'], + }), + + // ══ Drafts ═════════════════════════════════════════════════ + mail({ + id: 'demo-email-draft-jennifer', mailbox: MB.drafts, date: at(1, 12, 10), + from: me, to: [addr(JENNIFER)], + subject: 'Re: Head of Platform, Series B, Berlin or remote', + text: 'Hi Jennifer,\n\nThanks for reaching out. I am not looking right now; we are two weeks from a launch and I like where this is going. That said, I\'d be curious what "meaningful equity" means at Series B these days, so if you want to send the ', + keywords: ['$seen', '$draft'], + }), + mail({ + id: 'demo-email-draft-lumen', mailbox: MB.drafts, date: at(1, 15, 45), + from: me, to: [addr(TOMAS)], cc: [michael], + subject: 'Lumen Logistics: kickoff and the canary', + text: 'Hi Tomás,\n\nThank you for the PO, and yes: Lumen is on the canary list. Attached is the draft service agreement for your legal team to look at before DocuSign goes out; the SLA section is the one worth reading.\n\nFor the kickoff I would suggest ', + attachments: [attachment('demo-blob-service-agreement')], + keywords: ['$seen', '$draft', '$label:work'], + }), + // Scheduled: in Drafts with a pending submission (see demo-client). + mail({ + id: 'demo-email-scheduled-prep', mailbox: MB.drafts, date: ago(0, 25), + from: me, to: beaconTeam.filter((a) => a.email !== me.email), + subject: 'Go/no-go prep: what I need from each of you by noon', + text: `Morning all,\n\nBefore 14:00 today, please have ready:\n\n- Ahmed: the soak dashboard link and the hour-31 explanation\n- Priya: the open bug list with BEA-412 at the top\n- Lisa: the reconnect numbers from staging\n- Bob: your sign-off on the runbook, or what is missing\n\nI'll bring the rollback plan and the canary tenant list. Short meeting if we do this.\n\nNora`, + keywords: ['$seen', '$draft', '$label:beacon'], + }), + + // ══ Archive ════════════════════════════════════════════════ + mail({ + id: 'demo-email-archive-pto', mailbox: MB.archive, date: at(14, 9, 20), + from: addr(MARIA), to: [{ name: 'All staff', email: `all@${WORK_DOMAIN}` }], + subject: 'Updated leave policy, effective next quarter', + text: 'Dear team,\n\nThe updated leave policy takes effect at the start of next quarter. Key changes: 28 days instead of 26, half days anywhere, and up to ten days roll over.\n\nThe full text is in Notion. Please acknowledge by replying to this mail.\n\nMaria\nPeople Ops', + keywords: ['$seen'], headers: company, + }), + mail({ + id: 'demo-email-archive-hetzner-ticket', mailbox: MB.archive, date: at(21, 15, 4), + from: { name: 'Hetzner Support', email: 'support@hetzner.com' }, + subject: 'Re: Ticket #2026101234: packet loss between fsn1 and hel1', + text: 'Hello Nora,\n\nThank you for the traceroutes. We were able to reproduce the loss on one upstream path and have rerouted it. Please let us know if you see it again.\n\nTicket closed.\n\nBest regards,\nTobias, Hetzner Support', + keywords: ['$seen'], headers: authPass('hetzner.com'), + }), + mail({ + id: 'demo-email-archive-linear-welcome', mailbox: MB.archive, date: at(26, 10, 0), + from: { name: 'Linear', email: 'hello@linear.app' }, + subject: 'Welcome to Linear, Meridian Labs', + text: 'Your workspace is ready. Invite your team, import from Jira if you must, and set up your first cycle.\n\nThe Linear team', + keywords: ['$seen'], headers: authPass('linear.app'), + }), + mail({ + id: 'demo-email-archive-offsite', mailbox: MB.archive2025, date: at(120, 18, 30), + from: addr(RACHEL), to: [{ name: 'All staff', email: `all@${WORK_DOMAIN}` }], + subject: 'Offsite photos', + text: 'The good one from the lake is attached; the rest are in the shared drive under Photos. Thank you all, that was a proper break.\n\nRachel', + attachments: [attachment('demo-blob-team-photo')], + keywords: ['$seen'], headers: company, + }), + mail({ + id: 'demo-email-archive-review', mailbox: MB.archive2025, date: at(200, 11, 15), + from: alice, + subject: 'Your development conversation: notes', + text: 'Nora, thanks for a good conversation. The notes as promised: you want to lead a launch end to end, and you want to speak more outside the company. Both are on the plan for next year. Alice', + keywords: ['$seen'], headers: company, + }), + mail({ + id: 'demo-email-archive-2024-welcome', mailbox: MB.archive2024, date: at(560, 9, 5), + from: addr(MARIA), + subject: 'Welcome to Meridian Labs', + text: 'Hi Nora,\n\nWelcome aboard! Your laptop is on your desk, your accounts are set up, and Alice will meet you at 09:30 on your first day. Lunch is on us.\n\nMaria', + keywords: ['$seen'], headers: company, + }), + mail({ + id: 'demo-email-archive-2024-laptop', mailbox: MB.archive2024, date: at(555, 14, 50), + from: ahmed, + subject: 'Your laptop: setup notes', + text: 'Disk is encrypted, 1Password is installed, the VPN config is in your vault. Shout if anything does not work. Ahmed', + keywords: ['$seen'], headers: company, + }), + + // ══ Trash ══════════════════════════════════════════════════ + mail({ + id: 'demo-email-trash-promo', mailbox: MB.trash, date: at(5, 13, 0), + from: { name: 'CloudConf', email: 'hello@cloudconf.example' }, + subject: 'Last chance: 40% off CloudConf tickets', + text: 'Early-bird pricing ends at midnight. Use code LAST40 at checkout.', + keywords: ['$seen'], headers: { ...authPass('cloudconf.example'), ...listHeaders('CloudConf News', 'cloudconf.example') }, + }), + mail({ + id: 'demo-email-trash-calendar', mailbox: MB.trash, date: at(7, 8, 0), + from: { name: 'Calendar', email: `calendar@${WORK_DOMAIN}` }, + subject: 'Reminder: Beacon weekly in 15 minutes', + text: 'Beacon weekly starts at 10:00 in Room Spree and on Zoom.', + keywords: ['$seen'], + }), + + // ══ Spam ═══════════════════════════════════════════════════ + // Phishing: claims to be Meridian IT, fails DMARC, and the link text does + // not match the link target. + mail({ + id: 'demo-email-spam-phish', mailbox: MB.junk, date: at(1, 2, 3), + from: { name: 'Meridian Labs IT', email: `it-helpdesk@${WORK_DOMAIN}` }, + subject: 'Action required: your mailbox password expires today', + text: 'Your Meridian Labs mailbox password expires in 24 hours. To keep access to your email, verify your account now:\n\nhttps://meridianlabs-sso.verify-account.example/login\n\nIT Helpdesk', + html: '

Your Meridian Labs mailbox password expires in 24 hours. To keep access to your email, verify your account now:

https://sso.meridianlabs.example/password

IT Helpdesk

', + headers: authFail(WORK_DOMAIN, 'verify-account.example', { spam: 12.4, llm: 'SPAM (Impersonates the recipient\'s own IT department, urges immediate action, and the link target does not match the link text.)' }), + }), + mail({ + id: 'demo-email-spam-prize', mailbox: MB.junk, date: at(2, 4, 40), + from: { name: 'Prize Center', email: 'winner@totallylegit.example' }, + subject: 'Congratulations! You have been selected', + text: 'Dear lucky winner,\n\nYou have been selected to receive a prize of considerable value. Click below to claim it immediately.\n\n[This is a demo spam message.]', + headers: authFail('totallylegit.example', 'mailer-7.bulk-send.example', { spam: 9.8 }), + }), + mail({ + id: 'demo-email-spam-crypto', mailbox: MB.junk, date: at(3, 19, 15), + from: { name: 'CryptoGrowth Daily', email: 'invest@cryptogrowth.example' }, + subject: 'The coin nobody is talking about yet', + text: 'Three early backers turned a small stake into a fortune in 90 days. Limited spots. No experience needed.\n\n[Demo spam.]', + headers: authFail('cryptogrowth.example', 'cryptogrowth.example', { spam: 7.2 }), + }), + + // ══ Projects / Beacon ══════════════════════════════════════ + mail({ + id: 'demo-email-beacon-naming', mailbox: MB.beacon, date: at(9, 11, 30), + from: michael, to: beaconTeam, + subject: 'Naming decision: it stays "Beacon"', + text: 'Legal cleared it, marketing likes it, and nobody could come up with anything better in three weeks. Beacon it is. Rename the internal repos when convenient, not before launch.\n\nM', + keywords: ['$seen', '$pinned', '$label:beacon'], headers: company, + }), + mail({ + id: 'demo-email-beacon-rfc', mailbox: MB.beacon, date: at(12, 16, 20), + from: bob, to: beaconTeam, + subject: 'RFC: per-tenant retry budgets', + text: 'The RFC is in the repo (docs/rfc/0007-retry-budgets.md). Summary: every tenant gets a budget of retries per hour proportional to its normal volume; when it is spent, retries queue instead of firing. It caps the worst case at 2x delivery volume and stops one customer\'s outage from costing everyone else.\n\nComments in the PR please. Bob', + keywords: ['$seen', '$label:beacon'], headers: company, + }), + mail({ + id: 'demo-email-beacon-sprint', mailbox: MB.beacon, date: at(8, 9, 0), + from: alice, to: beaconTeam, + subject: 'Sprint 41 planning: agenda', + text: '1. Soak test schedule (Ahmed)\n2. Signing key rotation, #1284 (Lisa)\n3. Launch checklist walkthrough (Nora)\n4. What we cut if the canary slips (everyone)\n\nCome with numbers. Alice', + keywords: ['$seen', '$label:beacon'], headers: company, + }), + + // ══ Projects / Website redesign ════════════════════════════ + mail({ + id: 'demo-email-website-feedback-2', thread: 'demo-thread-website-feedback', mailbox: MB.website, date: at(7, 15, 30), + from: addr(SARAH), + subject: 'Re: Design feedback, round 2', + text: 'All taken on board. v3 of the prototype comes with the invoice this week; the hero has two options for you to pick from.\n\nSarah', + keywords: ['$seen', '$label:work'], headers: authPass('designco.example'), + inReplyTo: [mid('demo-email-website-feedback-1')], references: [mid('demo-email-website-feedback-1')], + }), + mail({ + id: 'demo-email-website-feedback-1', thread: 'demo-thread-website-feedback', mailbox: MB.website, date: at(8, 17, 10), + from: me, to: [addr(SARAH)], cc: [addr(RACHEL)], + subject: 'Design feedback, round 2', + text: 'Hi Sarah,\n\nRound two, shorter than round one:\n\n- The pricing table is right. Ship it.\n- The docs navigation needs a search field above the tree, not below.\n- The hero still says "platform" four times. Rachel is rewriting the copy.\n\nNora', + keywords: ['$seen', '$label:work'], + }), + + // ══ Receipts ═══════════════════════════════════════════════ + mail({ + id: 'demo-email-receipt-hetzner', mailbox: MB.receipts, date: at(3, 7, 20), + from: { name: 'Hetzner Online', email: 'billing@hetzner.com' }, + subject: 'Invoice R0012345678: EUR 51.71 (paid)', + text: 'Your invoice R0012345678 for the current period is attached. EUR 51.71 was collected by SEPA direct debit.\n\nHetzner Online GmbH', + attachments: [attachment('demo-blob-hetzner-invoice')], + keywords: ['$seen', '$label:finance'], headers: authPass('hetzner.com'), + }), + mail({ + id: 'demo-email-receipt-stripe', mailbox: MB.receipts, date: at(1, 7, 2), + from: { name: 'Stripe', email: 'receipts@stripe.com' }, subject: 'Your receipt from Linear Inc. [#2451-9928]', - sentAt: demoDate(-1, -1, -22), - preview: 'Receipt from Linear Inc. for $16.00. Thanks for your business.', - hasAttachment: false, - ...bodies( - 'Receipt from Linear Inc.\nAmount paid: $16.00\nDate paid: yesterday\nPayment method: Visa •••• 4242\n\nDescription: Linear Standard (monthly)\n\nReceipt #2451-9928\n\nThis charge will appear on your statement as LINEAR INC.\n\nQuestions? Contact support@linear.app.', - '
Receipt
$16.00
Linear Inc.
Amount$16.00
Payment methodVisa •••• 4242
Receipt number2451-9928

Description: Linear Standard (monthly). This charge will appear on your statement as LINEAR INC.

', - ), - messageId: '', - }, + text: 'Receipt from Linear Inc.\nAmount paid: USD 192.00\nPayment method: Visa ending 4242\n\nDescription: Linear Standard, 12 seats (monthly)\nReceipt #2451-9928\n\nThis charge will appear on your statement as LINEAR INC.', + html: '
Receipt
$192.00
Linear Inc.
Amount$192.00
Payment methodVisa •••• 4242
Receipt number2451-9928

Description: Linear Standard, 12 seats (monthly). This charge will appear on your statement as LINEAR INC.

', + keywords: ['$seen', '$label:finance'], headers: authPass('stripe.com'), + }), + mail({ + id: 'demo-email-receipt-github', mailbox: MB.receipts, date: at(11, 6, 10), + from: { name: 'GitHub', email: 'billing@github.com' }, + subject: '[GitHub] Payment receipt for Meridian Labs', + text: 'Thanks for your payment.\n\nGitHub Team, 18 seats · USD 72.00\nGitHub Actions, 4,200 minutes · USD 33.60\nTotal: USD 105.60 · Visa ending 4242', + keywords: ['$seen', '$label:finance'], headers: authPass('github.com'), + }), + mail({ + id: 'demo-email-receipt-porkbun', mailbox: MB.receipts, date: at(18, 8, 0), + from: { name: 'Porkbun', email: 'support@porkbun.com' }, + subject: 'Renewal confirmation: meridianlabs.example (1 year)', + text: 'Your domain meridianlabs.example has been renewed for one year.\n\nAmount: USD 11.06\nAuto-renew: on\n\nReply to this mail if you need an invoice with your VAT id.', + keywords: ['$seen', '$label:finance'], headers: authPass('porkbun.com'), + }), - // Email with attachments - invoice - { - id: 'demo-email-4', - threadId: 'demo-thread-4', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 245000, - receivedAt: demoDate(0, -6), - from: [{ name: 'Sarah Kim', email: 'sarah.kim@example.com' }], - to: [USER], - subject: 'Invoice #2024-089 & landing-page prototype v3', - sentAt: demoDate(0, -6), - preview: "Hi, please find attached the invoice for October and a screenshot of the latest prototype...", - hasAttachment: true, - ...textOnly( - "Hi,\n\nPlease find attached the invoice for October and a screenshot of the latest prototype. I went with Option B for the hero (the one with the asymmetric grid) since you mentioned the symmetrical version felt too flat in our last call.\n\nIf the invoice line items look off, ping me - I had to back out the November pre-payment.\n\nBest regards,\nSarah", - ), - attachments: [ - { partId: 'att-1', blobId: 'demo-blob-att-1', size: 145000, name: 'Invoice-2024-089.pdf', type: 'application/pdf' }, - { partId: 'att-2', blobId: 'demo-blob-att-2', size: 21864, name: 'prototype-v3.png', type: 'image/png' }, - ], - messageId: '', - }, + // ══ Travel ═════════════════════════════════════════════════ + mail({ + id: 'demo-email-travel-accepted', mailbox: MB.travel, date: at(24, 10, 20), + from: addr(KENJI), + subject: 'Infra Summit Lisbon: your talk is accepted', + text: 'Dear Nora,\n\nThe programme committee accepted "Rolling back without rolling over: safe launches for event platforms". Congratulations, it was one of the highest-rated proposals.\n\nWe cover travel and two hotel nights. Logistics follow closer to the date.\n\nKenji Watanabe\nProgramme chair', + keywords: ['$seen', '$flagged', '$label:travel'], headers: authPass('infrasummit.example'), + }), + mail({ + id: 'demo-email-travel-db', mailbox: MB.travel, date: at(40, 19, 5), + from: { name: 'Deutsche Bahn', email: 'noreply@bahn.de' }, + subject: 'Your ticket: Berlin Hbf to Hamburg Hbf', + text: 'Thank you for your booking.\n\nICE 802 · Berlin Hbf 07:34 to Hamburg Hbf 09:21 · 2nd class, seat 42, coach 7\nReturn: ICE 1601 · Hamburg Hbf 18:46 to Berlin Hbf 20:35\n\nYour ticket is in the DB Navigator app.', + keywords: ['$seen', '$label:travel'], headers: authPass('bahn.de'), + }), - // Carlos - starred, social - { - id: 'demo-email-5', - threadId: 'demo-thread-5', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: { $seen: true, $flagged: true }, - size: 2800, - receivedAt: demoDate(-2, -1), - from: [{ name: 'Carlos Rivera', email: 'carlos.rivera@example.com' }], - to: [USER], - subject: 'Friday dinner - moved to 7:30 (sorry!)', - sentAt: demoDate(-2, -1), - preview: 'Quick heads up - had to push the dinner back half an hour. Bistro could only do the late seating...', - hasAttachment: false, - ...textOnly( - "Quick heads up - had to push the dinner back half an hour. Bistro could only do the late seating.\n\nNew time: Friday, 7:30 PM\nThe Garden Bistro, 123 Oak Street\n\nReservation under my name, 8 people. Let me know if that doesn't work for you and I can try to wrangle something.\n\nCheers,\nCarlos", - ), - messageId: '', - }, - - // Linear - issue assigned - { - id: 'demo-email-linear', - threadId: 'demo-thread-linear', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 5400, - receivedAt: demoDate(0, -7, -15), - from: [{ name: 'Linear', email: 'notifications@linear.app' }], - to: [USER], - subject: 'BUL-2031 was assigned to you - "Compose: drag-and-drop attachments duplicated on slow networks"', - sentAt: demoDate(0, -7, -15), - preview: 'Priya Sharma assigned this issue to you. Repro on a throttled connection (Slow 3G): drop a file twice and...', - hasAttachment: false, - ...bodies( - "Priya Sharma assigned BUL-2031 to you.\n\nTitle: Compose: drag-and-drop attachments duplicated on slow networks\nPriority: Medium\n\nRepro on a throttled connection (Slow 3G): drop a file twice in quick succession into the compose drop zone. The first upload doesn't get debounced and both attempts complete, so the attachment shows up twice in the draft.\n\nOpen in Linear: https://linear.app/bulwark/issue/BUL-2031", - '
Linear · BUL-2031
Compose: drag-and-drop attachments duplicated on slow networks
Priya Sharma assigned this issue to you · Priority Medium
Repro on a throttled connection (Slow 3G): drop a file twice in quick succession into the compose drop zone. The first upload doesn\'t get debounced and both attempts complete, so the attachment shows up twice in the draft.
Open in Linear
', - ), - messageId: '', - }, - - // Anna - sister, photos - { - id: 'demo-email-anna', - threadId: 'demo-thread-anna', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 4800000, - receivedAt: demoDate(-1, -19), - from: [{ name: 'Anna Kowalski', email: 'anna.kowalski@example.com' }], - to: [USER], - subject: 'photos from the wedding', - sentAt: demoDate(-1, -19), - preview: "finally got around to going through these. there are like 600 more on the drive but here's the highlights...", - hasAttachment: true, - ...textOnly( - "ok finally got around to going through these. there are like 600 more on the drive but here's the highlights - the ones I'd actually want to print.\n\nmom looked SO happy. dad cried during the speech btw, did you see?\n\nlet me know which ones you want full-res of\n\na", - ), - attachments: [ - { partId: 'att-3', blobId: 'demo-blob-att-3', size: 170392, name: 'wedding-001.jpg', type: 'image/jpeg' }, - { partId: 'att-4', blobId: 'demo-blob-att-4', size: 154740, name: 'wedding-014-mom-dad.jpg', type: 'image/jpeg' }, - { partId: 'att-5', blobId: 'demo-blob-att-5', size: 133897, name: 'wedding-038-the-toast.jpg', type: 'image/jpeg' }, - ], - messageId: '', - }, - - // AWS billing - { - id: 'demo-email-aws', - threadId: 'demo-thread-aws', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: { $seen: true }, - size: 9100, - receivedAt: demoDate(-2, -3, -45), - from: [{ name: 'AWS Billing', email: 'no-reply-aws@amazon.com' }], - to: [USER], - subject: 'Your AWS bill is available - $127.43', - sentAt: demoDate(-2, -3, -45), - preview: 'Your bill for the previous billing period is now available. Total this period: $127.43 (down $4.12)...', - hasAttachment: false, - ...textOnly( - "Your bill for the previous billing period is now available.\n\nTotal this period: $127.43 (down $4.12 from last period)\n\nTop services:\n EC2 - $61.20\n S3 - $28.94\n Route 53 - $14.50\n CloudFront - $11.02\n Other - $11.77\n\nView the full invoice in the Billing Console.", - ), - messageId: '', - }, - - // 2FA code - system, unread - { - id: 'demo-email-2fa', - threadId: 'demo-thread-2fa', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 1700, - receivedAt: demoDate(0, -1, -8), - from: [{ name: '1Password', email: 'noreply@1password.com' }], - to: [USER], - subject: 'Your one-time verification code is 814-302', - sentAt: demoDate(0, -1, -8), - preview: "Use this code within 10 minutes to sign in. If you didn't request it, ignore this email.", - hasAttachment: false, - ...textOnly( - "Your verification code: 814-302\n\nUse this code within 10 minutes to sign in. If you didn't request it, you can safely ignore this email - your account remains secure.", - ), - messageId: '', - }, - - // LinkedIn - cold-ish - { - id: 'demo-email-linkedin', - threadId: 'demo-thread-linkedin', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: { $seen: true }, - size: 8200, - receivedAt: demoDate(-3, -11), - from: [{ name: 'LinkedIn', email: 'jobs-noreply@linkedin.com' }], - to: [USER], - subject: '5 jobs matching "staff engineer · remote · eu" - including one at Datadog', - sentAt: demoDate(-3, -11), - preview: "We thought you'd be interested in these jobs based on your profile and search history.", - hasAttachment: false, - ...textOnly( - 'Based on your saved search "staff engineer · remote · eu":\n\n1. Staff Software Engineer - Datadog (Remote, EU)\n2. Principal Engineer, Platform - Sentry (Remote, EU)\n3. Staff Backend Engineer - Linear (Remote)\n4. Tech Lead, Infrastructure - Tailscale (Remote, EU)\n5. Staff Engineer, Mobile - Notion (Remote, EU)\n\nManage job alerts at linkedin.com/jobs/preferences.', - ), - messageId: '', - }, - - // Book club - Marcus - { - id: 'demo-email-bookclub', - threadId: 'demo-thread-bookclub', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 2400, - receivedAt: demoDate(-1, -14), - from: [{ name: 'Marcus Hughes', email: 'marcus.hughes@example.com' }], - to: [USER, { name: 'Emma Wilson', email: 'emma.wilson@example.com' }, { name: 'David Park', email: 'david.park@example.com' }], - subject: 'book club thursday - picking the next one', - sentAt: demoDate(-1, -14), - preview: 'Reminder: 7pm at mine. We finish off Le Guin and pick the next read. My vote is the Calvino but I know Emma...', - hasAttachment: false, - ...textOnly( - "Reminder: 7pm at mine. We finish off Le Guin and pick the next read.\n\nMy vote is the Calvino but I know Emma's been pushing for the Knausgaard. I'll bring wine, can someone else handle snacks?\n\nm", - ), - messageId: '', - }, - - // DHL package - { - id: 'demo-email-dhl', - threadId: 'demo-thread-dhl', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 5600, - receivedAt: demoDate(0, -9, -30), - from: [{ name: 'DHL Express', email: 'noreply@dhl.com' }], - to: [USER], - subject: 'Your package is out for delivery - arriving today', - sentAt: demoDate(0, -9, -30), - preview: 'Tracking 1Z 999 AA1 0123 4567 84 · Estimated delivery: today between 14:00 and 18:00.', - hasAttachment: false, - ...textOnly( - 'Your package is on the truck.\n\nTracking: 1Z 999 AA1 0123 4567 84\nEstimated delivery window: today, 14:00–18:00\n\nIf no one is home, the driver will attempt redelivery tomorrow or leave it at the nearest pickup point.\n\nTrack live at dhl.com/track.', - ), - messageId: '', - }, - - // Notion - { - id: 'demo-email-notion', - threadId: 'demo-thread-notion', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: { $seen: true }, - size: 4100, - receivedAt: demoDate(-2, -16), - from: [{ name: 'Olivia Bennett (via Notion)', email: 'team@mail.notion.so' }], - to: [USER], - subject: 'Olivia shared "Q1 2026 - design north star" with you', - sentAt: demoDate(-2, -16), - preview: 'Olivia Bennett shared a page with you in the Northwind workspace. Open in Notion to view.', - hasAttachment: false, - ...textOnly( - 'Olivia Bennett shared a page with you in the Northwind workspace.\n\n"Q1 2026 - design north star"\n\nOpen in Notion: https://notion.so/northwind/q1-design-north-star', - ), - messageId: '', - }, - - // Spotify wrap - { - id: 'demo-email-spotify', - threadId: 'demo-thread-spotify', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: { $seen: true }, - size: 7400, - receivedAt: demoDate(-4, -8), - from: [{ name: 'Spotify', email: 'no-reply@spotify.com' }], - to: [USER], - subject: 'Your year in music is ready', - sentAt: demoDate(-4, -8), - preview: 'You spent 38,420 minutes listening this year. Your top artist was Big Thief, and your top genre was indie folk.', - hasAttachment: false, - ...textOnly( - 'Your year, in music.\n\n38,420 minutes listened\nTop artist: Big Thief\nTop song: "Vampire Empire"\nTop genre: indie folk\nDiscover Weekly hit rate: 41%\n\nOpen Spotify to see your full Wrapped.', - ), - messageId: '', - }, - - // Booking.com confirmation - { - id: 'demo-email-booking', - threadId: 'demo-thread-booking', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: { $seen: true }, - size: 32100, - receivedAt: demoDate(-5, -10), - from: [{ name: 'Booking.com', email: 'no-reply@booking.com' }], - to: [USER], - subject: 'Confirmation 4892-7714-3320 - Hotel Lago, Lake Como (Dec 22–25)', - sentAt: demoDate(-5, -10), - preview: 'Your booking is confirmed. Check-in: Dec 22, after 15:00. Check-out: Dec 25, before 11:00.', - hasAttachment: true, - ...textOnly( - 'Your booking is confirmed.\n\nHotel Lago, Lake Como (Italy)\nCheck-in: Dec 22, after 15:00\nCheck-out: Dec 25, before 11:00\n\nRoom: Lake-view double, breakfast included\nTotal: €612 (paid)\n\nConfirmation number: 4892-7714-3320\n\nYour voucher is attached. Show it at reception.', - ), - attachments: [ - { partId: 'att-6', blobId: 'demo-blob-att-6', size: 31000, name: 'booking-voucher-4892-7714-3320.pdf', type: 'application/pdf' }, - ], - messageId: '', - }, - - // Substack post - { - id: 'demo-email-substack', - threadId: 'demo-thread-substack', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: { $seen: true }, - size: 22400, - receivedAt: demoDate(-1, -12), - from: [{ name: 'Robin Sloan', email: 'robin@substack.com' }], - to: [USER], + // ══ Newsletters ════════════════════════════════════════════ + mail({ + id: 'demo-email-nl-substack', mailbox: MB.newsletters, date: at(2, 6, 12), + from: { name: 'Robin Sloan', email: 'robin@substack.com' }, subject: 'a small newsletter about a small forge', - sentAt: demoDate(-1, -12), - preview: 'I have been spending the slow weeks of November in the workshop, slowly forging a knife from a piece of...', - hasAttachment: false, - ...textOnly( - "Hello, friends.\n\nI have been spending the slow weeks of November in the workshop, slowly forging a knife from a piece of railway track. It is going badly, in the way that is good for one's soul.\n\nWhat I'm reading: Annie Dillard, again. \"The Writing Life\". Specifically the chapter about her cabin, which I read every year around this time and which always makes me want to throw my laptop into the sea.\n\nWhat I'm watching: very little. There is something about December that makes television feel like an admission of defeat.\n\nUntil next month -\nR.", - ), - messageId: '', - }, + text: 'Hello, friends.\n\nI have been spending the slow weeks in the workshop, slowly forging a knife from a piece of railway track. It is going badly, in the way that is good for one\'s soul.\n\nWhat I\'m reading: Annie Dillard, again. "The Writing Life". Specifically the chapter about her cabin, which always makes me want to throw my laptop into the sea.\n\nUntil next month,\nR.', + keywords: ['$seen'], headers: { ...authPass('substack.com'), ...listHeaders('Robin Sloan', 'substack.com') }, + }), + mail({ + id: 'demo-email-nl-pragmatic', mailbox: MB.newsletters, date: at(4, 7, 0), + from: { name: 'The Pragmatic Engineer', email: 'pragmaticengineer@substack.com' }, + subject: 'How launch reviews work at companies that ship well', + text: 'This week: what a good go/no-go looks like, why the best teams write the rollback plan before the launch plan, and a reader question about canary sizes.\n\nRead online or reply with your own launch stories.', + keywords: ['$seen'], headers: { ...authPass('substack.com'), ...listHeaders('The Pragmatic Engineer', 'substack.com') }, + }), + mail({ + id: 'demo-email-nl-postgres', mailbox: MB.newsletters, date: at(6, 5, 45), + from: { name: 'Postgres Weekly', email: 'postgres@cooperpress.com' }, + subject: '#612: Logical replication in 18, and a tale of two vacuums', + text: 'Postgres Weekly #612\n\n- What changed in logical replication in Postgres 18\n- A tale of two vacuums: autovacuum tuning for append-mostly tables\n- pg_stat_io, one year on\n\nUnsubscribe or change your address at the link below.', + keywords: ['$seen'], headers: { ...authPass('cooperpress.com'), ...listHeaders('Postgres Weekly', 'cooperpress.com') }, + }), - // Recruiter cold outreach - { - id: 'demo-email-recruiter', - threadId: 'demo-thread-recruiter', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 3200, - receivedAt: demoDate(0, -10), - from: [{ name: 'Jennifer Hayes', email: 'jennifer@talent-partners.example' }], - to: [USER], - subject: 'Senior role - Distributed Systems - €180-220k + equity', - sentAt: demoDate(0, -10), - preview: "Hi, I came across your profile and thought you'd be a great fit for a senior position with one of our clients...", - hasAttachment: false, - ...textOnly( - "Hi,\n\nI came across your profile and thought you'd be a great fit for a senior position with one of our clients - a well-funded Series B (real-time data infrastructure, 60-person eng team, fully remote within EU).\n\nThe core stack: Rust + Postgres + a non-trivial amount of Go. Hiring level is roughly equivalent to Staff at FAANG.\n\nWould you be open to a 15-minute call this week or next?\n\nBest,\nJennifer Hayes\nTalent Partners", - ), - messageId: '', - }, - - // Dentist reminder - { - id: 'demo-email-dentist', - threadId: 'demo-thread-dentist', - mailboxIds: { 'demo-mailbox-inbox': true }, - keywords: {}, - size: 2200, - receivedAt: demoDate(-1, -2), - from: [{ name: "Dr. Smith's Office", email: 'appointments@drsmith.example' }], - to: [USER], - subject: 'Appointment reminder - Tuesday at 10:00', - sentAt: demoDate(-1, -2), - preview: 'This is a friendly reminder of your upcoming cleaning appointment on Tuesday at 10:00 AM.', - hasAttachment: false, - ...textOnly( - "Hello,\n\nThis is a friendly reminder of your upcoming cleaning appointment on Tuesday at 10:00 AM with Dr. Smith.\n\nLocation: 123 Medical Plaza, Suite 4\n\nNeed to reschedule? Reply to this email or call (555) 010-7878.\n\nSee you Tuesday!\nDr. Smith's office", - ), - messageId: '', - }, - - // ── Sent ──────────────────────────────────────────────────── - { - id: 'demo-email-6', - threadId: 'demo-thread-6', - mailboxIds: { 'demo-mailbox-sent': true }, - keywords: { $seen: true }, - size: 2100, - receivedAt: demoDate(-1, -4), - from: [USER], - to: [{ name: 'Alice Johnson', email: 'alice.johnson@example.com' }], - subject: 'Updated Requirements Document', - sentAt: demoDate(-1, -4), - preview: "Hi Alice, I've updated the requirements document with the changes we discussed...", - hasAttachment: false, - ...textOnly( - "Hi Alice,\n\nI've updated the requirements document with the changes we discussed in yesterday's meeting. The main updates are in sections 3 and 5.\n\nLet me know if you have any questions.\n\nBest,\nDemo User", - ), - messageId: '', - }, - { - id: 'demo-email-7', - threadId: 'demo-thread-7', - mailboxIds: { 'demo-mailbox-sent': true }, - keywords: { $seen: true }, - size: 1800, - receivedAt: demoDate(-4, -2), - from: [USER], - to: [{ name: 'Sarah Kim', email: 'sarah.kim@example.com' }], - subject: 'Re: Design Feedback', - sentAt: demoDate(-4, -2), - preview: 'Thanks Sarah! The new color scheme looks great. I especially like the contrast improvements...', - hasAttachment: false, - ...textOnly( - "Thanks Sarah! The new color scheme looks great. I especially like the contrast improvements for accessibility.\n\nLet's go with Option B for the navigation.\n\nBest,\nDemo User", - ), - messageId: '', - }, - { - id: 'demo-email-sent-mom', - threadId: 'demo-thread-mom', - mailboxIds: { 'demo-mailbox-sent': true }, - keywords: { $seen: true }, - size: 1400, - receivedAt: demoDate(0, -2, -10), - from: [USER], - to: [{ name: 'Sofia Russo', email: 'sofia.russo@example.com' }], - subject: 'Re: when are you coming home?', - sentAt: demoDate(0, -2, -10), - preview: "Mom - I miss you too. Let me check the calendar tonight and I'll get back to you tomorrow about the weekend...", - hasAttachment: false, - ...textOnly( - "Mom - I miss you too. Let me check the calendar tonight and I'll get back to you tomorrow about the weekend. Lemons sound like a bribe and I will not pretend otherwise.\n\nLove you both.", - ), - messageId: '', - inReplyTo: ['<5a8c-mom@example.com>'], - references: ['<5a8c-mom@example.com>'], - }, - - // ── Drafts ────────────────────────────────────────────────── - { - id: 'demo-email-8', - threadId: 'demo-thread-8', - mailboxIds: { 'demo-mailbox-drafts': true }, - keywords: { $seen: true, $draft: true }, - size: 900, - receivedAt: demoDate(0, -1), - from: [USER], - to: [{ name: 'Bob Chen', email: 'bob.chen@example.com' }], - subject: 'Meeting Notes - Draft', - sentAt: demoDate(0, -1), - preview: "Here are the notes from today's standup...", - hasAttachment: false, - ...textOnly( - "Here are the notes from today's standup:\n\n- API integration on track\n- Need to resolve the caching issue\n- ", - ), - messageId: '', - }, - { - id: 'demo-email-draft-recruiter', - threadId: 'demo-thread-draft-recruiter', - mailboxIds: { 'demo-mailbox-drafts': true }, - keywords: { $seen: true, $draft: true }, - size: 720, - receivedAt: demoDate(0, -8), - from: [USER], - to: [{ name: 'Jennifer Hayes', email: 'jennifer@talent-partners.example' }], - subject: 'Re: Senior role - Distributed Systems', - sentAt: demoDate(0, -8), - preview: "Hi Jennifer, thanks for reaching out. I'm not actively looking, but the role sounds interesting enough that...", - hasAttachment: false, - ...textOnly( - "Hi Jennifer,\n\nThanks for reaching out. I'm not actively looking, but the role sounds interesting enough that I'd be open to a quick call. A few questions before we set something up:\n\n- ", - ), - messageId: '', - }, - - // ── Trash ─────────────────────────────────────────────────── - { - id: 'demo-email-9', - threadId: 'demo-thread-9', - mailboxIds: { 'demo-mailbox-trash': true }, - keywords: { $seen: true }, - size: 15200, - receivedAt: demoDate(-5, -3), - from: [{ name: 'Promo Store', email: 'deals@promostore.example' }], - to: [USER], - subject: '🎉 Flash Sale: 50% Off Everything!', - sentAt: demoDate(-5, -3), - preview: 'Limited time offer! Get 50% off all items in our store...', - hasAttachment: false, - ...textOnly( - 'Limited time offer! Get 50% off all items in our store. Use code FLASH50 at checkout.', - ), - messageId: '', - }, - { - id: 'demo-email-10', - threadId: 'demo-thread-10', - mailboxIds: { 'demo-mailbox-trash': true }, - keywords: { $seen: true }, - size: 2300, - receivedAt: demoDate(-7, 0), - from: [{ name: 'System Notification', email: 'noreply@service.example' }], - to: [USER], - subject: 'Your password was changed', - sentAt: demoDate(-7, 0), - preview: 'Your account password was successfully changed on...', - hasAttachment: false, - ...textOnly( - 'Your account password was successfully changed. If you did not make this change, please contact support immediately.', - ), - messageId: '', - }, - - // ── Projects ──────────────────────────────────────────────── - { - id: 'demo-email-11', - threadId: 'demo-thread-11', - mailboxIds: { 'demo-mailbox-projects': true }, - keywords: { $seen: true, $flagged: true }, - size: 4500, - receivedAt: demoDate(-2, -7), - from: [{ name: 'Alice Johnson', email: 'alice.johnson@example.com' }], - to: [USER], - subject: '[Project] Sprint Planning Agenda', - sentAt: demoDate(-2, -7), - preview: "Here's the agenda for next week's sprint planning session...", - hasAttachment: false, - ...textOnly( - "Hi team,\n\nHere's the agenda for next week's sprint planning:\n\n1. Review previous sprint velocity\n2. Discuss tech debt items\n3. Prioritize backlog\n4. Assign story points\n5. Capacity planning\n\nPlease come prepared with your updates.\n\nThanks,\nAlice", - ), - messageId: '', - }, - { - id: 'demo-email-12', - threadId: 'demo-thread-12', - mailboxIds: { 'demo-mailbox-projects': true }, - keywords: {}, - size: 3200, - receivedAt: demoDate(0, -8), - from: [{ name: 'Bob Chen', email: 'bob.chen@example.com' }], - to: [USER], - subject: '[Project] API Rate Limiting Discussion', - sentAt: demoDate(0, -8), - preview: "I've been thinking about our rate limiting approach and wanted to propose a few changes...", - hasAttachment: false, - ...textOnly( - "Hey,\n\nI've been thinking about our rate limiting approach and wanted to propose:\n\n1. Token bucket algorithm instead of fixed window\n2. Per-endpoint limits rather than global\n3. Graduated response (warn → throttle → block)\n\nThoughts? I can put together a more detailed RFC if we agree on the direction.\n\n- Bob", - ), - messageId: '', - }, - { - id: 'demo-email-roadmap', - threadId: 'demo-thread-roadmap', - mailboxIds: { 'demo-mailbox-projects': true }, - keywords: {}, - size: 4900, - receivedAt: demoDate(-1, -15), - from: [{ name: 'Michael Torres', email: 'michael.torres@company.example' }], - to: [USER, { name: 'Alice Johnson', email: 'alice.johnson@example.com' }, { name: 'James Miller', email: 'james.miller@company.example' }], - subject: '[Project] Q1 2026 roadmap - first cut', - sentAt: demoDate(-1, -15), - preview: 'Attached is the first cut of the Q1 roadmap. Three themes: reliability, mobile, and the long-promised...', - hasAttachment: true, - ...textOnly( - "Team,\n\nAttached is the first cut of the Q1 roadmap. Three themes:\n\n1. Reliability (Alice's team)\n2. Mobile parity (cross-functional)\n3. The long-promised search rework (James, this is mostly on you)\n\nLet's leave comments in the doc rather than do a meeting - I'd rather have the meeting be the *decisions*, not the discussion. Closing comments end-of-week.\n\nM", - ), - attachments: [ - { partId: 'att-7', blobId: 'demo-blob-att-7', size: 84000, name: 'Q1-2026-roadmap-v0.pdf', type: 'application/pdf' }, - ], - messageId: '', - }, - - // ── Archive ───────────────────────────────────────────────── - { - id: 'demo-email-13', - threadId: 'demo-thread-13', - mailboxIds: { 'demo-mailbox-archive': true }, - keywords: { $seen: true }, - size: 2600, - receivedAt: demoDate(-14, -6), - from: [{ name: 'Maria Lopez', email: 'maria.lopez@company.example' }], - to: [USER], - subject: 'Updated PTO Policy - Effective January 1', - sentAt: demoDate(-14, -6), - preview: 'Please review the updated PTO policy that takes effect January 1st...', - hasAttachment: false, - ...textOnly( - 'Dear team,\n\nPlease review the updated PTO policy effective January 1st. Key changes include:\n\n- Increased annual allowance from 20 to 25 days\n- Flexible half-day options\n- Rollover limit increased to 10 days\n\nPlease acknowledge receipt.\n\nBest,\nMaria - People Ops', - ), - messageId: '', - }, - { - id: 'demo-email-archive-support', - threadId: 'demo-thread-archive-support', - mailboxIds: { 'demo-mailbox-archive': true }, - keywords: { $seen: true }, - size: 3400, - receivedAt: demoDate(-21, -4), - from: [{ name: 'Fastmail Support', email: 'support@fastmail.com' }], - to: [USER], - subject: 'Re: Ticket #438201 - DKIM signing fails on cross-account aliases', - sentAt: demoDate(-21, -4), - preview: "Thanks for the additional logs. We were able to reproduce on our side - the issue was indeed the alias resolution...", - hasAttachment: false, - ...textOnly( - "Hi,\n\nThanks for the additional logs. We were able to reproduce on our side - the issue was indeed the alias resolution path skipping the DKIM signer step. Fix has been deployed to the AU and SY clusters; EU rolls out tomorrow.\n\nResolved on our end. Please reopen if you see anything related.\n\nBest,\nClaire - Fastmail Support", - ), - messageId: '', - }, - - // ── Receipts ──────────────────────────────────────────────── - { - id: 'demo-email-14', - threadId: 'demo-thread-14', - mailboxIds: { 'demo-mailbox-receipts': true }, - keywords: { $seen: true }, - size: 5200, - receivedAt: demoDate(-3, -12), - from: [{ name: 'Hetzner', email: 'billing@hetzner.com' }], - to: [USER], - subject: 'Invoice #INV-2024-1042 - €49.99 (paid)', - sentAt: demoDate(-3, -12), - preview: 'Your payment of €49.99 has been processed successfully...', - hasAttachment: true, - ...textOnly( - 'Payment Confirmation\n\nAmount: €49.99\nDate: 3 days ago\nInvoice: INV-2024-1042\nService: CX22 dedicated (Helsinki, monthly)\n\nThank you for your payment.', - ), - attachments: [ - { partId: 'att-8', blobId: 'demo-blob-att-8', size: 28000, name: 'INV-2024-1042.pdf', type: 'application/pdf' }, - ], - messageId: '', - }, - { - id: 'demo-email-receipts-domain', - threadId: 'demo-thread-receipts-domain', - mailboxIds: { 'demo-mailbox-receipts': true }, - keywords: { $seen: true }, - size: 3100, - receivedAt: demoDate(-9, -8), - from: [{ name: 'Porkbun', email: 'support@porkbun.com' }], - to: [USER], - subject: 'Renewal confirmation - example.com (1 year)', - sentAt: demoDate(-9, -8), - preview: 'Your domain example.com has been renewed for 1 year. Next renewal: 11 months from today.', - hasAttachment: false, - ...textOnly( - "Hi,\n\nYour domain example.com has been renewed for 1 year.\n\nAmount: $11.06\nNext renewal: 11 months from today\nAutorenew: on\n\nReply to this email if you need a tax-receipt-style invoice.\n\n- Porkbun", - ), - messageId: '', - }, - - // ── Spam ──────────────────────────────────────────────────── - { - id: 'demo-email-15', - threadId: 'demo-thread-15', - mailboxIds: { 'demo-mailbox-junk': true }, - keywords: {}, - size: 8900, - receivedAt: demoDate(-1, -9), - from: [{ name: 'Prize Center', email: 'winner@totallylegit.example' }], - to: [USER], - subject: 'Congratulations! You Won $1,000,000!!!', - sentAt: demoDate(-1, -9), - preview: 'Dear lucky winner, you have been selected to receive one million dollars...', - hasAttachment: false, - ...textOnly( - 'Dear lucky winner,\n\nYou have been selected to receive ONE MILLION DOLLARS! Click below to claim your prize immediately.\n\n[This is a demo spam email]', - ), - messageId: '', - }, - { - id: 'demo-email-spam-phish', - threadId: 'demo-thread-spam-phish', - mailboxIds: { 'demo-mailbox-junk': true }, - keywords: {}, - size: 4600, - receivedAt: demoDate(-2, -3), - from: [{ name: 'Secure Banking', email: 'security-alert@secur1ty-bank.example' }], - to: [USER], - subject: 'URGENT: Unusual activity on your account - verify within 24 hours', - sentAt: demoDate(-2, -3), - preview: "We've detected suspicious activity. Click below to verify your identity or your account will be suspended...", - hasAttachment: false, - ...textOnly( - "We've detected suspicious activity on your account. To prevent suspension, please verify your details within 24 hours by clicking the link below.\n\n[Phishing demo - never click links like this in real life.]", - ), - messageId: '', - }, - { - id: 'demo-email-spam-crypto', - threadId: 'demo-thread-spam-crypto', - mailboxIds: { 'demo-mailbox-junk': true }, - keywords: {}, - size: 6800, - receivedAt: demoDate(-3, -19), - from: [{ name: 'CryptoGrowth Daily', email: 'invest@cryptogrowth.example' }], - to: [USER], - subject: '🚀 The coin Elon won\'t tell you about - 1000x potential', - sentAt: demoDate(-3, -19), - preview: 'Three early backers turned $500 into $5M in 90 days. Today, you have a chance to get in even earlier...', - hasAttachment: false, - ...textOnly( - 'Three early backers turned $500 into $5M in 90 days. Today, you have a chance to get in even earlier. Limited spots. No experience needed.\n\n[Demo spam.]', - ), - messageId: '', - }, + // A mail to the alias, so the identity picker has something to show. + mail({ + id: 'demo-email-alias', mailbox: MB.inbox, date: at(5, 14, 22), + from: { name: 'Infra Summit', email: 'speakers@infrasummit.example' }, to: [addr(NORA_ALIAS)], + subject: 'Speaker profile: please check your bio and photo', + text: 'Your speaker profile is live at infrasummit.example/speakers/nora-lindqvist. Please check the bio and the photo; reply to this mail with changes by the end of the week.', + keywords: ['$seen', '$label:travel'], headers: { ...authPass('infrasummit.example'), ...listHeaders('Infra Summit Speakers', 'infrasummit.example') }, + }), ]; } diff --git a/lib/demo/fixtures/files.ts b/lib/demo/fixtures/files.ts index 28778634f..2b9fdad0b 100644 --- a/lib/demo/fixtures/files.ts +++ b/lib/demo/fixtures/files.ts @@ -1,146 +1,58 @@ import type { FileNode } from '@/lib/jmap/types'; import { demoDate } from '../demo-utils'; +import { DEMO_ASSETS, type DemoBlobId } from './assets'; + +const FOLDER = { + documents: 'demo-file-documents', + beacon: 'demo-file-beacon', + photos: 'demo-file-photos', + travel: 'demo-file-travel', +} as const; + +function folder(id: string, name: string, parentId: string | null, createdDays: number, modifiedDays: number): FileNode { + return { id, parentId, name, type: 'd', blobId: null, size: 0, created: demoDate(-createdDays), modified: demoDate(-modifiedDays) }; +} + +/** A file backed by one of the demo assets; name and size come from the asset. */ +function file(id: string, parentId: string | null, blobId: DemoBlobId, createdDays: number, modifiedDays = createdDays, name?: string): FileNode { + const asset = DEMO_ASSETS[blobId]; + return { id, parentId, name: name ?? asset.name, type: asset.type, blobId, size: asset.size, created: demoDate(-createdDays), modified: demoDate(-modifiedDays) }; +} export function createDemoFileNodes(): FileNode[] { return [ - // Root-level directories - { - id: 'demo-file-documents', - parentId: null, - name: 'Documents', - type: 'd', - blobId: null, - size: 0, - created: demoDate(-30), - modified: demoDate(-2), - }, - { - id: 'demo-file-photos', - parentId: null, - name: 'Photos', - type: 'd', - blobId: null, - size: 0, - created: demoDate(-30), - modified: demoDate(-5), - }, + folder(FOLDER.documents, 'Documents', null, 400, 1), + folder(FOLDER.beacon, 'Beacon', FOLDER.documents, 60, 1), + folder(FOLDER.photos, 'Photos', null, 400, 5), + folder(FOLDER.travel, 'Travel', null, 24, 2), - // Documents contents - { - id: 'demo-file-meeting-notes', - parentId: 'demo-file-documents', - name: 'meeting-notes.md', - type: 'text/markdown', - blobId: 'demo-blob-file-1', - size: 2150, - created: demoDate(-7), - modified: demoDate(-2), - }, - { - id: 'demo-file-quarterly-report', - parentId: 'demo-file-documents', - name: 'quarterly-report.pdf', - type: 'application/pdf', - blobId: 'demo-blob-file-2', - size: 148480, - created: demoDate(-14), - modified: demoDate(-14), - }, - { - id: 'demo-file-todo', - parentId: 'demo-file-documents', - name: 'todo.txt', - type: 'text/plain', - blobId: 'demo-blob-file-3', - size: 410, - created: demoDate(-3), - modified: demoDate(-1), - }, + // Documents + file('demo-file-meeting-notes', FOLDER.documents, 'demo-blob-meeting-notes', 7, 1), + file('demo-file-todo', FOLDER.documents, 'demo-blob-todo', 3, 0), + file('demo-file-quarterly-report', FOLDER.documents, 'demo-blob-quarterly-report', 3, 2), + file('demo-file-service-agreement', FOLDER.documents, 'demo-blob-service-agreement', 9, 1), + file('demo-file-budget', FOLDER.documents, 'demo-blob-budget', 40, 4), - // Office documents (openable in a WOPI editor when one is configured, #425) - { - id: 'demo-file-project-proposal', - parentId: 'demo-file-documents', - name: 'project-proposal.odt', - type: 'application/vnd.oasis.opendocument.text', - blobId: 'demo-blob-file-7', - size: 24576, - created: demoDate(-12), - modified: demoDate(-4), - }, - { - id: 'demo-file-contract-draft', - parentId: 'demo-file-documents', - name: 'contract-draft.docx', - type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - blobId: 'demo-blob-file-8', - size: 38912, - created: demoDate(-9), - modified: demoDate(-2), - }, - { - id: 'demo-file-team-timesheet', - parentId: 'demo-file-documents', - name: 'team-timesheet.ods', - type: 'application/vnd.oasis.opendocument.spreadsheet', - blobId: 'demo-blob-file-9', - size: 17408, - created: demoDate(-6), - modified: demoDate(-1), - }, - { - id: 'demo-file-roadmap-presentation', - parentId: 'demo-file-documents', - name: 'roadmap-presentation.odp', - type: 'application/vnd.oasis.opendocument.presentation', - blobId: 'demo-blob-file-10', - size: 245760, - created: demoDate(-16), - modified: demoDate(-8), - }, + // Documents / Beacon + file('demo-file-launch-plan', FOLDER.beacon, 'demo-blob-launch-plan', 2), + file('demo-file-runbook', FOLDER.beacon, 'demo-blob-runbook', 1, 1), + file('demo-file-soak-metrics', FOLDER.beacon, 'demo-blob-soak-metrics', 1), + file('demo-file-soak-dashboard', FOLDER.beacon, 'demo-blob-soak-dashboard', 1), + file('demo-file-launch-deck', FOLDER.beacon, 'demo-blob-launch-deck', 5, 2), - // Photos contents - { - id: 'demo-file-vacation', - parentId: 'demo-file-photos', - name: 'vacation.jpg', - type: 'image/jpeg', - blobId: 'demo-blob-file-4', - size: 91949, - created: demoDate(-10), - modified: demoDate(-10), - }, - { - id: 'demo-file-team-photo', - parentId: 'demo-file-photos', - name: 'team-photo.jpg', - type: 'image/jpeg', - blobId: 'demo-blob-file-5', - size: 71066, - created: demoDate(-21), - modified: demoDate(-21), - }, + // Photos + file('demo-file-team-photo', FOLDER.photos, 'demo-blob-team-photo', 120), + file('demo-file-lake', FOLDER.photos, 'demo-blob-vacation', 95), + file('demo-file-wedding-1', FOLDER.photos, 'demo-blob-wedding-1', 1), + file('demo-file-wedding-2', FOLDER.photos, 'demo-blob-wedding-2', 1), + file('demo-file-wedding-3', FOLDER.photos, 'demo-blob-wedding-3', 1), - // Root-level files - { - id: 'demo-file-budget', - parentId: null, - name: 'budget.xlsx', - type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - blobId: 'demo-blob-file-6', - size: 68608, - created: demoDate(-5), - modified: demoDate(-1), - }, - { - id: 'demo-file-launch-deck', - parentId: null, - name: 'product-launch.pptx', - type: 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - blobId: 'demo-blob-file-11', - size: 512000, - created: demoDate(-4), - modified: demoDate(-3), - }, + // Travel + file('demo-file-eticket', FOLDER.travel, 'demo-blob-boarding-pass', 3, 3, 'E-ticket-E7KQ2R.pdf'), + file('demo-file-hotel', FOLDER.travel, 'demo-blob-hotel-voucher', 3), + file('demo-file-summit-ticket', FOLDER.travel, 'demo-blob-summit-ticket', 2), + + // Root + file('demo-file-prototype', null, 'demo-blob-prototype', 1), ]; } diff --git a/lib/demo/fixtures/filters.ts b/lib/demo/fixtures/filters.ts index b477d14ec..38dc1f1f6 100644 --- a/lib/demo/fixtures/filters.ts +++ b/lib/demo/fixtures/filters.ts @@ -4,7 +4,7 @@ export function createDemoSieveCapabilities(): SieveCapabilities { return { implementation: 'Demo Sieve Engine', maxSizeScript: 65536, - sieveExtensions: ['fileinto', 'reject', 'vacation', 'imap4flags', 'comparator-i;ascii-casemap', 'body', 'envelope'], + sieveExtensions: ['fileinto', 'reject', 'vacation', 'imap4flags', 'comparator-i;ascii-casemap', 'body', 'envelope', 'mailbox', 'variables'], notificationMethods: [], externalLists: [], }; @@ -14,34 +14,48 @@ export function createDemoSieveScripts(): SieveScript[] { return [ { id: 'demo-sieve-1', - name: 'Default Filters', + name: 'Inbox rules', blobId: 'demo-sieve-blob-1', isActive: true, }, ]; } -// Sieve script content keyed by blobId +// Sieve script content keyed by blobId. The rules match the folders and the +// mail in the fixtures, so the filter editor shows something coherent. export function createDemoSieveContent(): Record { return { 'demo-sieve-blob-1': [ - 'require ["fileinto", "imap4flags"];', + 'require ["fileinto", "imap4flags", "mailbox"];', '', - '# Newsletters to Receipts', - 'if address :contains "from" "newsletter@" {', - ' fileinto "Receipts";', + '# Newsletters out of the inbox', + 'if exists "List-Unsubscribe" {', + ' if address :domain :is "from" ["github.com", "linear.app"] { keep; stop; }', + ' fileinto "Newsletters";', ' stop;', '}', '', - '# Flag emails from boss', - 'if address :is "from" "alice.johnson@example.com" {', + '# Receipts and invoices', + 'if anyof (address :is "from" ["billing@hetzner.com", "receipts@stripe.com", "billing@github.com", "support@porkbun.com"],', + ' header :contains "subject" ["receipt", "invoice"]) {', + ' fileinto :create "Receipts";', + ' stop;', + '}', + '', + '# Travel confirmations', + 'if address :domain :is "from" ["lufthansa.com", "booking.com", "bahn.de"] {', + ' fileinto "Travel";', + ' stop;', + '}', + '', + '# Flag anything from Alice', + 'if address :is "from" "alice.johnson@meridianlabs.example" {', ' addflag "\\\\Flagged";', '}', '', - '# Move project updates', - 'if header :contains "subject" "[Project]" {', - ' fileinto "Projects";', - ' stop;', + '# Beacon mail gets its label', + 'if header :contains "subject" ["Beacon", "BEA-"] {', + ' addflag "$label:beacon";', '}', ].join('\n'), }; diff --git a/lib/demo/fixtures/identities.ts b/lib/demo/fixtures/identities.ts index cc1e271df..ecbc94bfc 100644 --- a/lib/demo/fixtures/identities.ts +++ b/lib/demo/fixtures/identities.ts @@ -1,21 +1,31 @@ import type { Identity } from '@/lib/jmap/types'; +import { NORA, NORA_ALIAS, SUPPORT } from './people'; export function createDemoIdentities(): Identity[] { return [ { id: 'demo-identity-primary', - name: 'Demo User', - email: 'demo@example.com', - textSignature: 'Best regards,\nDemo User\nBulwark Mail Demo', - htmlSignature: '

Best regards,
Demo User
Bulwark Mail Demo

', + name: NORA.name, + email: NORA.email, + textSignature: 'Nora Lindqvist\nEngineering Lead, Meridian Labs\n+49 30 555 0199', + htmlSignature: '

Nora Lindqvist
Engineering Lead, Meridian Labs
+49 30 555 0199

', mayDelete: false, }, { id: 'demo-identity-alias', - name: 'Demo User', - email: 'demo+newsletter@example.com', - textSignature: '', - htmlSignature: '', + name: NORA_ALIAS.name, + email: NORA_ALIAS.email, + textSignature: 'Nora Lindqvist\nMeridian Labs', + htmlSignature: '

Nora Lindqvist
Meridian Labs

', + mayDelete: true, + }, + { + id: 'demo-identity-support', + name: 'Meridian Support', + email: SUPPORT.email, + replyTo: [{ name: 'Meridian Support', email: SUPPORT.email }], + textSignature: 'Nora, for Meridian Support\nsupport@meridianlabs.example', + htmlSignature: '

Nora, for Meridian Support
support@meridianlabs.example

', mayDelete: true, }, ]; diff --git a/lib/demo/fixtures/keywords.ts b/lib/demo/fixtures/keywords.ts new file mode 100644 index 000000000..22a4e82a2 --- /dev/null +++ b/lib/demo/fixtures/keywords.ts @@ -0,0 +1,15 @@ +import type { KeywordDefinition } from '@/stores/settings-store'; + +/** + * The persona's tags. The mail fixtures set these as `$label:` keywords; + * demo login seeds the definitions into the settings store so the sidebar + * shows them with names and colours instead of the built-in colour names. + */ +export const DEMO_KEYWORDS: KeywordDefinition[] = [ + { id: 'beacon', label: 'Beacon', color: 'purple' }, + { id: 'work', label: 'Work', color: 'blue' }, + { id: 'family', label: 'Family', color: 'pink' }, + { id: 'travel', label: 'Travel', color: 'orange' }, + { id: 'finance', label: 'Finance', color: 'green' }, + { id: 'follow-up', label: 'Follow-up', color: 'red' }, +]; diff --git a/lib/demo/fixtures/mail.ts b/lib/demo/fixtures/mail.ts new file mode 100644 index 000000000..753c1235e --- /dev/null +++ b/lib/demo/fixtures/mail.ts @@ -0,0 +1,159 @@ +/** + * Helpers that keep the mail fixtures short: one `mail()` call per message, + * with the body parts, preview, size and message id derived from a few + * fields. Headers are written the way Stalwart writes them, so the viewer's + * banners (sender authentication, unsubscribe, read receipt) have the same + * input as on a real server. + */ +import type { Email, EmailAddress, Attachment } from '@/lib/jmap/types'; +import { demoDate } from '../demo-utils'; +import { NORA, WORK_DOMAIN } from './people'; + +export const MX = `mx.${WORK_DOMAIN}`; + +// ── Time ───────────────────────────────────────────────────── +/** Hours and minutes before now, for today's mail. */ +export const ago = (hours: number, minutes = 0): string => demoDate(0, -hours, -minutes); + +/** A wall-clock time on a day in the past (1 = yesterday) or future (negative). */ +export function at(daysAgo: number, hour: number, minute = 0): string { + const d = new Date(); + d.setDate(d.getDate() - daysAgo); + d.setHours(hour, minute, 0, 0); + return d.toISOString(); +} + +/** Weekday name of a day relative to today, for body text ("see you Thursday"). */ +export function dayName(daysAhead: number): string { + const d = new Date(); + d.setDate(d.getDate() + daysAhead); + return d.toLocaleDateString('en-US', { weekday: 'long' }); +} + +/** Short date of a day relative to today ("Oct 21"). */ +export function dayLabel(daysAhead: number): string { + const d = new Date(); + d.setDate(d.getDate() + daysAhead); + return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric' }); +} + +// ── Body parts ─────────────────────────────────────────────── +let partCounter = 0; + +function part(value: string, type: 'text/plain' | 'text/html') { + const partId = String(++partCounter); + return { + part: { partId, blobId: `blob-${partId}`, size: value.length, type }, + values: { [partId]: { value } }, + }; +} + +function bodyParts(text: string, html?: string): Pick { + const t = part(text, 'text/plain'); + if (!html) return { textBody: [t.part], bodyValues: t.values }; + const h = part(html, 'text/html'); + return { textBody: [t.part], htmlBody: [h.part], bodyValues: { ...t.values, ...h.values } }; +} + +/** Paragraphs separated by blank lines become

; single newlines become
. */ +export function htmlFromText(text: string): string { + const escape = (s: string) => s.replace(/&/g, '&').replace(//g, '>'); + return text + .trim() + .split(/\n{2,}/) + .map((para) => `

${escape(para).replace(/\n/g, '
')}

`) + .join(''); +} + +// ── Headers ────────────────────────────────────────────────── +/** The receiving server's results for mail that checks out. */ +export function authPass(domain: string, opts: { spam?: number } = {}): Record { + return { + 'Authentication-Results': `${MX}; dkim=pass header.d=${domain} header.s=mail; spf=pass smtp.mailfrom=${domain}; dmarc=pass header.from=${domain}; iprev=pass`, + 'X-Spam-Score': `ham, score=${(opts.spam ?? -1.4).toFixed(2)}`, + }; +} + +/** A forged sender: SPF and DKIM for the envelope domain, DMARC fails for the From domain. */ +export function authFail(fromDomain: string, envelopeDomain: string, opts: { spam?: number; llm?: string } = {}): Record { + return { + 'Authentication-Results': `${MX}; dkim=fail header.d=${fromDomain}; spf=fail smtp.mailfrom=${envelopeDomain}; dmarc=fail header.from=${fromDomain} policy.dmarc=reject; iprev=fail`, + 'X-Spam-Score': `spam, score=${(opts.spam ?? 9.1).toFixed(2)}`, + ...(opts.llm ? { 'X-Spam-LLM': opts.llm } : {}), + }; +} + +/** Mailing-list headers of a newsletter, with a one-click unsubscribe. */ +export function listHeaders(listName: string, domain: string): Record { + const slug = listName.toLowerCase().replace(/[^a-z0-9]+/g, '-'); + return { + 'List-Id': `${listName} <${slug}.${domain}>`, + 'List-Unsubscribe': `, `, + 'List-Unsubscribe-Post': 'List-Unsubscribe=One-Click', + 'Precedence': 'bulk', + }; +} + +// ── The message builder ────────────────────────────────────── +export interface MailSpec { + id: string; + /** Thread id; defaults to the message's own id. */ + thread?: string; + /** Mailbox id, or several for a message filed in more than one folder. */ + mailbox: string | string[]; + from: EmailAddress; + /** Defaults to the persona's work address. */ + to?: EmailAddress[]; + cc?: EmailAddress[]; + replyTo?: EmailAddress[]; + subject: string; + /** receivedAt (and sentAt unless given). */ + date: string; + sentAt?: string; + text: string; + /** HTML body; `true` renders the text as simple HTML. */ + html?: string | true; + attachments?: Attachment[]; + /** Keywords that are set, e.g. ['$seen', '$label:work']. */ + keywords?: string[]; + headers?: Record; + messageId?: string; + inReplyTo?: string[]; + references?: string[]; + preview?: string; +} + +export function mail(spec: MailSpec): Email { + const mailboxIds = Object.fromEntries((Array.isArray(spec.mailbox) ? spec.mailbox : [spec.mailbox]).map((m) => [m, true])); + const keywords = Object.fromEntries((spec.keywords ?? []).map((k) => [k, true])); + const html = spec.html === true ? htmlFromText(spec.text) : spec.html; + const parts = bodyParts(spec.text, html); + const attachmentBytes = (spec.attachments ?? []).reduce((sum, a) => sum + a.size, 0); + const domain = spec.from.email.slice(spec.from.email.indexOf('@') + 1); + const preview = spec.preview ?? spec.text.replace(/\s+/g, ' ').trim().slice(0, 140); + return { + id: spec.id, + threadId: spec.thread ?? spec.id, + mailboxIds, + keywords, + size: 1200 + spec.text.length + (html?.length ?? 0) + Math.round(attachmentBytes * 1.37), + receivedAt: spec.date, + sentAt: spec.sentAt ?? spec.date, + from: [spec.from], + to: spec.to ?? [{ name: NORA.name, email: NORA.email }], + ...(spec.cc ? { cc: spec.cc } : {}), + ...(spec.replyTo ? { replyTo: spec.replyTo } : {}), + subject: spec.subject, + preview, + hasAttachment: (spec.attachments?.length ?? 0) > 0, + ...(spec.attachments ? { attachments: spec.attachments } : {}), + ...parts, + messageId: spec.messageId ?? `<${spec.id}@${domain}>`, + ...(spec.inReplyTo ? { inReplyTo: spec.inReplyTo } : {}), + ...(spec.references ? { references: spec.references } : {}), + ...(spec.headers ? { headers: spec.headers } : {}), + }; +} + +/** Message id of a fixture, for In-Reply-To / References chains. */ +export const mid = (id: string, domain = WORK_DOMAIN): string => `<${id}@${domain}>`; diff --git a/lib/demo/fixtures/mailboxes.ts b/lib/demo/fixtures/mailboxes.ts index 328d94184..e02d9ff12 100644 --- a/lib/demo/fixtures/mailboxes.ts +++ b/lib/demo/fixtures/mailboxes.ts @@ -3,16 +3,90 @@ import type { Mailbox } from '@/lib/jmap/types'; const RIGHTS_SYSTEM = { mayReadItems: true, mayAddItems: true, mayRemoveItems: true, maySetSeen: true, maySetKeywords: true, mayCreateChild: true, mayRename: false, mayDelete: false, maySubmit: true }; const RIGHTS_CUSTOM = { ...RIGHTS_SYSTEM, mayRename: true, mayDelete: true }; -// Counts must stay in sync with createDemoEmails() in fixtures/emails.ts. +// Counts are left at zero here; DemoJMAPClient recomputes them from the mail +// when it starts, so they can never drift from the fixtures. +const COUNTS = { totalEmails: 0, unreadEmails: 0, totalThreads: 0, unreadThreads: 0 }; + +const system = (id: string, name: string, role: string, sortOrder: number, parentId?: string): Mailbox => + ({ id, name, role, sortOrder, ...COUNTS, myRights: RIGHTS_SYSTEM, isSubscribed: true, ...(parentId ? { parentId } : {}) }); +const custom = (id: string, name: string, sortOrder: number, parentId?: string): Mailbox => + ({ id, name, sortOrder, ...COUNTS, myRights: RIGHTS_CUSTOM, isSubscribed: true, ...(parentId ? { parentId } : {}) }); + +// ── Work account (the primary login) ───────────────────────── +export const MB = { + inbox: 'demo-mailbox-inbox', + drafts: 'demo-mailbox-drafts', + sent: 'demo-mailbox-sent', + archive: 'demo-mailbox-archive', + archive2025: 'demo-mailbox-archive-2025', + archive2024: 'demo-mailbox-archive-2024', + junk: 'demo-mailbox-junk', + trash: 'demo-mailbox-trash', + projects: 'demo-mailbox-projects', + beacon: 'demo-mailbox-projects-beacon', + website: 'demo-mailbox-projects-website', + receipts: 'demo-mailbox-receipts', + travel: 'demo-mailbox-travel', + newsletters: 'demo-mailbox-newsletters', +} as const; + export function createDemoMailboxes(): Mailbox[] { return [ - { id: 'demo-mailbox-inbox', name: 'Inbox', role: 'inbox', sortOrder: 1, totalEmails: 22, unreadEmails: 13, totalThreads: 20, unreadThreads: 12, myRights: RIGHTS_SYSTEM, isSubscribed: true }, - { id: 'demo-mailbox-sent', name: 'Sent', role: 'sent', sortOrder: 2, totalEmails: 3, unreadEmails: 0, totalThreads: 3, unreadThreads: 0, myRights: RIGHTS_SYSTEM, isSubscribed: true }, - { id: 'demo-mailbox-drafts', name: 'Drafts', role: 'drafts', sortOrder: 3, totalEmails: 2, unreadEmails: 0, totalThreads: 2, unreadThreads: 0, myRights: RIGHTS_SYSTEM, isSubscribed: true }, - { id: 'demo-mailbox-trash', name: 'Trash', role: 'trash', sortOrder: 5, totalEmails: 2, unreadEmails: 0, totalThreads: 2, unreadThreads: 0, myRights: RIGHTS_SYSTEM, isSubscribed: true }, - { id: 'demo-mailbox-archive', name: 'Archive', role: 'archive', sortOrder: 4, totalEmails: 2, unreadEmails: 0, totalThreads: 2, unreadThreads: 0, myRights: RIGHTS_SYSTEM, isSubscribed: true }, - { id: 'demo-mailbox-junk', name: 'Spam', role: 'junk', sortOrder: 6, totalEmails: 3, unreadEmails: 3, totalThreads: 3, unreadThreads: 3, myRights: RIGHTS_SYSTEM, isSubscribed: true }, - { id: 'demo-mailbox-projects', name: 'Projects', sortOrder: 10, totalEmails: 3, unreadEmails: 2, totalThreads: 3, unreadThreads: 2, myRights: RIGHTS_CUSTOM, isSubscribed: true }, - { id: 'demo-mailbox-receipts', name: 'Receipts', sortOrder: 11, totalEmails: 2, unreadEmails: 0, totalThreads: 2, unreadThreads: 0, myRights: RIGHTS_CUSTOM, isSubscribed: true }, + system(MB.inbox, 'Inbox', 'inbox', 1), + system(MB.drafts, 'Drafts', 'drafts', 2), + system(MB.sent, 'Sent', 'sent', 3), + system(MB.archive, 'Archive', 'archive', 4), + custom(MB.archive2025, '2025', 1, MB.archive), + custom(MB.archive2024, '2024', 2, MB.archive), + system(MB.junk, 'Spam', 'junk', 5), + system(MB.trash, 'Trash', 'trash', 6), + custom(MB.projects, 'Projects', 10), + custom(MB.beacon, 'Beacon', 1, MB.projects), + custom(MB.website, 'Website redesign', 2, MB.projects), + custom(MB.receipts, 'Receipts', 11), + custom(MB.travel, 'Travel', 12), + custom(MB.newsletters, 'Newsletters', 13), + ]; +} + +// ── Shared Support mailbox (delegated to the work login) ───── +// Bare ids as the owner account holds them; the client namespaces them +// `demo-support:` when it lists them next to the user's own folders. +export const SUPPORT_ACCOUNT_ID = 'demo-support'; +export const SUPPORT_ACCOUNT_NAME = 'Support'; +export const SMB = { + inbox: 'demo-support-inbox', + sent: 'demo-support-sent', + resolved: 'demo-support-resolved', +} as const; + +export function createDemoSupportMailboxes(): Mailbox[] { + return [ + system(SMB.inbox, 'Inbox', 'inbox', 1), + system(SMB.sent, 'Sent', 'sent', 2), + custom(SMB.resolved, 'Resolved', 10), + ]; +} + +// ── Personal account (the second login) ────────────────────── +export const PMB = { + inbox: 'demo-personal-inbox', + drafts: 'demo-personal-drafts', + sent: 'demo-personal-sent', + archive: 'demo-personal-archive', + junk: 'demo-personal-junk', + trash: 'demo-personal-trash', + family: 'demo-personal-family', +} as const; + +export function createDemoPersonalMailboxes(): Mailbox[] { + return [ + system(PMB.inbox, 'Inbox', 'inbox', 1), + system(PMB.drafts, 'Drafts', 'drafts', 2), + system(PMB.sent, 'Sent', 'sent', 3), + system(PMB.archive, 'Archive', 'archive', 4), + system(PMB.junk, 'Spam', 'junk', 5), + system(PMB.trash, 'Trash', 'trash', 6), + custom(PMB.family, 'Family', 10), ]; } diff --git a/lib/demo/fixtures/people.ts b/lib/demo/fixtures/people.ts new file mode 100644 index 000000000..15bf08886 --- /dev/null +++ b/lib/demo/fixtures/people.ts @@ -0,0 +1,80 @@ +/** + * The cast of the demo. One place for every name, address and portrait so + * the mail, the address books, the calendar and the shared mailbox all agree. + * + * The persona is Nora Lindqvist, engineering lead at Meridian Labs in Berlin. + * She has three mail sources: her work account (the primary login), a + * personal account on her own domain (a second login) and the company's + * shared Support mailbox (delegated to her, no login of its own). + * + * Portraits are Unsplash photos (free to use under the Unsplash License), + * resized to 256px and served from public/demo/portraits/. + */ +import type { EmailAddress } from '@/lib/jmap/types'; + +export interface Person extends EmailAddress { + name: string; + email: string; + /** File under public/demo/portraits/, without extension. */ + portrait?: string; + given: string; + surname: string; +} + +const p = (given: string, surname: string, email: string, portrait?: string): Person => + ({ name: `${given} ${surname}`, email, given, surname, portrait }); + +export const WORK_DOMAIN = 'meridianlabs.example'; +export const PERSONAL_DOMAIN = 'lindqvist.example'; + +// ── The persona ─────────────────────────────────────────────── +export const NORA = p('Nora', 'Lindqvist', `nora@${WORK_DOMAIN}`, 'nora-lindqvist'); +export const NORA_ALIAS = p('Nora', 'Lindqvist', `nora.lindqvist@${WORK_DOMAIN}`, 'nora-lindqvist'); +export const NORA_PERSONAL = p('Nora', 'Lindqvist', `nora@${PERSONAL_DOMAIN}`, 'nora-lindqvist'); +export const SUPPORT: Person = { name: 'Meridian Support', email: `support@${WORK_DOMAIN}`, given: 'Meridian', surname: 'Support' }; + +// ── Meridian Labs ───────────────────────────────────────────── +export const ALICE = p('Alice', 'Johnson', `alice.johnson@${WORK_DOMAIN}`, 'alice-johnson'); +export const BOB = p('Bob', 'Chen', `bob.chen@${WORK_DOMAIN}`, 'bob-chen'); +export const PRIYA = p('Priya', 'Sharma', `priya.sharma@${WORK_DOMAIN}`, 'priya-sharma'); +export const AHMED = p('Ahmed', 'Hassan', `ahmed.hassan@${WORK_DOMAIN}`, 'ahmed-hassan'); +export const JAMES = p('James', 'Miller', `james.miller@${WORK_DOMAIN}`, 'james-miller'); +export const MICHAEL = p('Michael', 'Torres', `michael.torres@${WORK_DOMAIN}`, 'michael-torres'); +export const RACHEL = p('Rachel', 'Green', `rachel.green@${WORK_DOMAIN}`, 'rachel-green'); +export const WEI = p('Wei', 'Zhang', `wei.zhang@${WORK_DOMAIN}`, 'wei-zhang'); +export const MARIA = p('Maria', 'Lopez', `maria.lopez@${WORK_DOMAIN}`, 'maria-lopez'); +export const LISA = p('Lisa', 'Tanaka', `lisa.tanaka@${WORK_DOMAIN}`, 'lisa-tanaka'); + +// ── Work, outside the company ───────────────────────────────── +export const SARAH = p('Sarah', 'Kim', 'sarah@designco.example', 'sarah-kim'); +export const OLIVIA = p('Olivia', 'Bennett', 'olivia@northwind.example', 'olivia-bennett'); +export const JENNIFER = p('Jennifer', 'Hayes', 'jennifer@talent-partners.example', 'jennifer-hayes'); +export const KENJI = p('Kenji', 'Watanabe', 'kenji@infrasummit.example', 'kenji-watanabe'); + +// ── Family and friends ──────────────────────────────────────── +export const SOFIA = p('Sofia', 'Russo', 'sofia.russo@example.com', 'sofia-russo'); +export const ANNA = p('Anna', 'Kowalski', 'anna.kowalski@example.com', 'anna-kowalski'); +export const ELIAS = p('Elias', 'Lindqvist', `elias@${PERSONAL_DOMAIN}`, 'elias-lindqvist'); +export const CARLOS = p('Carlos', 'Rivera', 'carlos.rivera@example.com', 'carlos-rivera'); +export const MARCUS = p('Marcus', 'Hughes', 'marcus.hughes@example.com', 'marcus-hughes'); +export const EMMA = p('Emma', 'Wilson', 'emma.wilson@example.com', 'emma-wilson'); +export const DAVID = p('David', 'Park', 'david.park@example.com', 'david-park'); +export const DANIEL = p('Daniel', 'Cooper', 'daniel@coopercreative.example', 'daniel-cooper'); + +// ── Customers writing to Support ────────────────────────────── +export const TOMAS = p('Tomás', 'Ferreira', 'tomas.ferreira@lumenlogistics.example', 'tomas-ferreira'); +export const LENA = p('Lena', 'Hoffmann', 'l.hoffmann@hoffmann-partner.example', 'lena-hoffmann'); +export const YUSUF = p('Yusuf', 'Demir', 'yusuf@demir-retail.example', 'yusuf-demir'); + +/** Everyone with a portrait, for the fixture test that checks the files exist. */ +export const PORTRAITS: Person[] = [ + NORA, ALICE, BOB, PRIYA, AHMED, JAMES, MICHAEL, RACHEL, WEI, MARIA, LISA, + SARAH, OLIVIA, JENNIFER, KENJI, SOFIA, ANNA, ELIAS, CARLOS, MARCUS, EMMA, DAVID, DANIEL, + TOMAS, LENA, YUSUF, +]; + +export const portraitUri = (person: Person): string | undefined => + person.portrait ? `/demo/portraits/${person.portrait}.jpg` : undefined; + +/** Plain address, without the fixture-only fields, for From/To lists. */ +export const addr = (person: Person): EmailAddress => ({ name: person.name, email: person.email }); diff --git a/lib/demo/fixtures/personal.ts b/lib/demo/fixtures/personal.ts new file mode 100644 index 000000000..95d24f62c --- /dev/null +++ b/lib/demo/fixtures/personal.ts @@ -0,0 +1,173 @@ +/** + * Nora's personal account (nora@lindqvist.example): family, friends, the + * dentist, a parcel. It is a second login in the demo, so the account + * switcher and the merged inbox have something to merge. + */ +import type { Email, Identity } from '@/lib/jmap/types'; +import { ago, at, authPass, dayName, listHeaders, mail, mid } from './mail'; +import { attachment } from './assets'; +import { PMB } from './mailboxes'; +import { addr, NORA_PERSONAL, SOFIA, ANNA, ELIAS, CARLOS, MARCUS, EMMA, DAVID, DANIEL, PERSONAL_DOMAIN } from './people'; + +const me = addr(NORA_PERSONAL); + +export function createDemoPersonalIdentities(): Identity[] { + return [{ + id: 'demo-identity-personal', + name: 'Nora Lindqvist', + email: NORA_PERSONAL.email, + textSignature: 'Nora', + htmlSignature: '

Nora

', + mayDelete: false, + }]; +} + +export function createDemoPersonalEmails(): Email[] { + return [ + // ══ Inbox ═══════════════════════════════════════════════════ + mail({ + id: 'demo-personal-dhl', mailbox: PMB.inbox, date: ago(1, 20), + from: { name: 'DHL', email: 'noreply@dhl.de' }, to: [me], + subject: 'Your parcel arrives today between 14:00 and 17:00', + text: 'Your parcel from Cooper Creative is out for delivery.\n\nTracking: JJD0002 2345 6789 01\nDelivery window: today, 14:00 to 17:00\n\nIf nobody is home, we will try again tomorrow or leave it at the Packstation on Torstraße.', + headers: authPass('dhl.de'), + }), + + // Mom, a thread with Nora's reply in Sent. + mail({ + id: 'demo-personal-mom-3', thread: 'demo-thread-mom', mailbox: PMB.inbox, date: ago(2, 15), + from: addr(SOFIA), to: [me], + subject: 'Re: when are you coming home?', + text: `Lemons are not a bribe, they are a fact. Twelve of them.\n\nAnna says she can do the weekend after your trip. Your father is already planning the menu, which should worry you. Tell me by ${dayName(4)} so I can tell him.\n\nMom`, + keywords: ['$label:family'], + headers: authPass('example.com'), + inReplyTo: [mid('demo-personal-mom-2', PERSONAL_DOMAIN)], references: [mid('demo-personal-mom-1', 'example.com'), mid('demo-personal-mom-2', PERSONAL_DOMAIN)], + }), + mail({ + id: 'demo-personal-mom-1', thread: 'demo-thread-mom', mailbox: PMB.inbox, date: at(1, 20, 48), + from: addr(SOFIA), to: [me], + subject: 'when are you coming home?', + text: `Hi sweetie,\n\nYour father and I were just talking, we miss you. Any chance you can come down for a weekend before the winter? Anna said she might manage the same one, it would be nice to all be in one place again.\n\nThe lemon tree finally fruited! Twelve lemons. I'll save you some.\n\nLove,\nMom`, + keywords: ['$seen', '$label:family'], + headers: authPass('example.com'), + }), + + mail({ + id: 'demo-personal-anna', mailbox: PMB.inbox, date: at(1, 22, 31), + from: addr(ANNA), to: [me], + subject: 'photos from the wedding', + text: 'ok finally got around to going through these. there are like 600 more on the drive but here are the highlights, the ones I\'d actually want to print.\n\nmom looked SO happy. dad cried during the speech btw, did you see?\n\nlet me know which ones you want full-res of\n\na', + attachments: [attachment('demo-blob-wedding-1'), attachment('demo-blob-wedding-2'), attachment('demo-blob-wedding-3')], + keywords: ['$label:family'], + headers: authPass('example.com'), + }), + + mail({ + id: 'demo-personal-daniel', mailbox: PMB.inbox, date: at(1, 14, 15), + from: addr(DANIEL), to: [me], + subject: 'Lemon Tree cover, draft 2', + text: 'Hi Nora,\n\nDraft two attached. I made the sun bolder as you asked and moved the title down so it sits in the sea. Still not sure about the serif; a geometric sans would feel more modern but less like your mother.\n\nThe print proof is on its way to you, DHL says tomorrow.\n\nDaniel', + attachments: [attachment('demo-blob-book-cover')], + keywords: ['$seen', '$flagged', '$label:family'], + headers: authPass('coopercreative.example'), + }), + + mail({ + id: 'demo-personal-carlos', mailbox: PMB.inbox, date: at(2, 21, 10), + from: addr(CARLOS), to: [me], + subject: 'dinner moved to 19:30 (sorry!)', + text: `Quick heads up, had to push dinner back half an hour. The bistro could only do the late seating.\n\nNew time: ${dayName(3)}, 19:30\nThe Garden Bistro, Oranienstraße 12\n\nReservation under my name, eight people. Let me know if that doesn't work and I'll try to wrangle something.\n\nCarlos`, + keywords: ['$seen', '$flagged'], + headers: authPass('example.com'), + }), + + mail({ + id: 'demo-personal-bookclub', mailbox: PMB.inbox, date: at(1, 12, 40), + from: addr(MARCUS), to: [me, addr(EMMA), addr(DAVID)], + subject: `book club ${dayName(2)}: picking the next one`, + text: `Reminder: 19:00 at mine. We finish off Le Guin and pick the next read.\n\nMy vote is the Calvino but I know Emma has been pushing for the Knausgaard. I'll bring wine, can someone else handle snacks?\n\nm`, + headers: authPass('example.com'), + }), + + mail({ + id: 'demo-personal-elias', mailbox: PMB.inbox, date: at(3, 18, 5), + from: addr(ELIAS), to: [me, addr(ANNA)], + subject: 'Christmas: Göteborg or Bologna?', + text: 'Before Mom decides for us: do we do Christmas up here or down there this year? I can host, the flat finally has a table that seats six. Anna, your call since you travel furthest.\n\nE', + keywords: ['$seen', '$label:family'], + headers: authPass(PERSONAL_DOMAIN), + }), + + mail({ + id: 'demo-personal-dentist', mailbox: PMB.inbox, date: at(1, 8, 0), + from: { name: 'Zahnarztpraxis Dr. Weber', email: 'termine@dr-weber.example' }, to: [me], + subject: `Appointment reminder: ${dayName(7)} at 10:00`, + text: `Dear Ms Lindqvist,\n\nThis is a reminder of your appointment on ${dayName(7)} at 10:00 with Dr. Weber (check-up and cleaning).\n\nPractice: Kastanienallee 21, 10435 Berlin, 2nd floor\n\nTo reschedule, reply to this mail or call 030 555 0142.\n\nKind regards,\nZahnarztpraxis Dr. Weber`, + headers: authPass('dr-weber.example'), + }), + + // Spotify, HTML with a remote image. + mail({ + id: 'demo-personal-spotify', mailbox: PMB.inbox, date: at(2, 9, 30), + from: { name: 'Spotify', email: 'no-reply@spotify.com' }, to: [me], + subject: 'New release from Big Thief', + text: 'Big Thief just released a new album, "Double Infinity Sessions". Based on your listening, we think you\'ll like it.\n\nOpen Spotify to listen.', + html: '
Album cover

New release from Big Thief

"Double Infinity Sessions". Based on your listening, we think you\'ll like it.

Listen now
', + keywords: ['$seen'], + headers: { ...authPass('spotify.com'), ...listHeaders('Spotify Releases', 'spotify.com') }, + }), + + mail({ + id: 'demo-personal-apple', mailbox: PMB.inbox, date: at(4, 16, 22), + from: { name: 'Apple', email: 'no_reply@email.apple.com' }, to: [me], + subject: 'Your receipt from Apple', + text: 'Receipt\n\niCloud+ 200 GB, monthly · EUR 2.99\nBilled to: Visa ending 1187\n\nApple Distribution International Ltd.', + keywords: ['$seen', '$label:finance'], + headers: authPass('email.apple.com'), + }), + + mail({ + id: 'demo-personal-marginalian', mailbox: PMB.inbox, date: at(5, 7, 15), + from: { name: 'The Marginalian', email: 'newsletter@themarginalian.org' }, to: [me], + subject: 'Ursula K. Le Guin on the art of growing older, and a forgotten astronomer', + text: 'This week: Le Guin on the art of growing older, a forgotten astronomer who mapped the night sky by hand, and a children\'s book about a lighthouse.\n\nThe Marginalian is free and ad-free; it survives on donations.', + keywords: ['$seen'], + headers: { ...authPass('themarginalian.org'), ...listHeaders('The Marginalian', 'themarginalian.org') }, + }), + + // ══ Sent ═══════════════════════════════════════════════════ + mail({ + id: 'demo-personal-mom-2', thread: 'demo-thread-mom', mailbox: PMB.sent, date: at(1, 21, 30), + from: me, to: [addr(SOFIA)], + subject: 'Re: when are you coming home?', + text: 'Mom, I miss you too. I\'m in Lisbon for work next week, but the weekend after could work. Let me check with Anna.\n\nLemons sound like a bribe and I will not pretend otherwise.\n\nLove you both.', + keywords: ['$seen', '$label:family'], + inReplyTo: [mid('demo-personal-mom-1', 'example.com')], references: [mid('demo-personal-mom-1', 'example.com')], + }), + mail({ + id: 'demo-personal-sent-daniel', mailbox: PMB.sent, date: at(4, 20, 5), + from: me, to: [addr(DANIEL)], + subject: 'Re: Lemon Tree cover, draft 1', + text: 'Daniel, it\'s lovely. Two things: a bolder sun, and the title lower, into the sea. Keep the serif for now; it is her kind of book.\n\nNora', + keywords: ['$seen', '$label:family'], + }), + + // ══ Family folder ══════════════════════════════════════════ + mail({ + id: 'demo-personal-family-recipe', mailbox: PMB.family, date: at(30, 11, 0), + from: addr(SOFIA), to: [me, addr(ANNA), addr(ELIAS)], + subject: 'Nonna\'s lemon cake, finally written down', + text: 'As promised, and before I forget it myself:\n\n4 eggs, 200 g sugar, 120 g butter, 250 g flour, zest and juice of two lemons (ours, when they come), a pinch of salt, 1 tsp baking powder.\n\nBeat eggs and sugar until pale. Everything else in, lemon last. 45 minutes at 170. Do not open the oven, Elias.\n\nMom', + keywords: ['$seen', '$label:family'], headers: authPass('example.com'), + }), + + // ══ Trash ══════════════════════════════════════════════════ + mail({ + id: 'demo-personal-trash', mailbox: PMB.trash, date: at(6, 12, 0), + from: { name: 'Lieferando', email: 'noreply@lieferando.de' }, to: [me], + subject: 'Your order is on its way', + text: 'Your order from Thai Orchid is on its way and should arrive in about 25 minutes.', + keywords: ['$seen'], headers: authPass('lieferando.de'), + }), + ]; +} diff --git a/lib/demo/fixtures/support.ts b/lib/demo/fixtures/support.ts new file mode 100644 index 000000000..dc6554c40 --- /dev/null +++ b/lib/demo/fixtures/support.ts @@ -0,0 +1,76 @@ +/** + * The shared Support mailbox (support@meridianlabs.example). It belongs to a + * separate principal that has delegated it to Nora, so it shows up under her + * own folders as a shared account, and in the merged inbox with its own badge. + */ +import type { Email } from '@/lib/jmap/types'; +import { ago, at, authPass, dayName, mail, mid } from './mail'; +import { SMB } from './mailboxes'; +import { addr, SUPPORT, NORA, TOMAS, LENA, YUSUF } from './people'; + +const support = addr(SUPPORT); + +export function createDemoSupportEmails(): Email[] { + return [ + mail({ + id: 'demo-support-tomas', mailbox: SMB.inbox, date: ago(0, 55), + from: addr(TOMAS), to: [support], + subject: 'Beacon add-on: can we go to 100 tenants before launch?', + text: 'Hello,\n\nOur PO covers fifty tenants on the Beacon add-on. Operations now wants all hundred Lisbon tenants on it from day one. Can the add-on be raised before the launch, and does that change the canary plan Nora mentioned?\n\nThank you,\nTomás Ferreira\nLumen Logistics', + headers: authPass('lumenlogistics.example'), + }), + mail({ + id: 'demo-support-lena-address', mailbox: SMB.inbox, date: at(1, 11, 18), + from: addr(LENA), to: [support], + subject: 'Invoice address change', + text: 'Dear Meridian team,\n\nPlease send future invoices to our new address:\n\nHoffmann & Partner Steuerberatung\nFriedrichstraße 200\n10117 Berlin\n\nThe VAT id stays the same. Could you confirm once it is changed?\n\nKind regards,\nLena Hoffmann', + headers: authPass('hoffmann-partner.example'), + }), + mail({ + id: 'demo-support-yusuf-2', thread: 'demo-support-thread-yusuf', mailbox: SMB.inbox, date: at(1, 9, 5), + from: addr(YUSUF), to: [support], + subject: 'Re: Webhook signature verification in PHP?', + text: 'That worked, thank you! The timestamp tolerance was the missing piece. You can close this.\n\nYusuf', + keywords: ['$seen'], + headers: authPass('demir-retail.example'), + inReplyTo: [mid('demo-support-yusuf-reply')], references: [mid('demo-support-yusuf-1', 'demir-retail.example'), mid('demo-support-yusuf-reply')], + }), + mail({ + id: 'demo-support-yusuf-1', thread: 'demo-support-thread-yusuf', mailbox: SMB.inbox, date: at(2, 15, 42), + from: addr(YUSUF), to: [support], + subject: 'Webhook signature verification in PHP?', + text: 'Hi,\n\nWe are testing the Beacon beta. The docs show signature verification in Node and Python; is there a PHP example? Our shop runs on Laravel. Verification fails for us with "timestamp outside tolerance", although the clocks look fine.\n\nYusuf Demir\nDemir Retail', + keywords: ['$seen'], + headers: authPass('demir-retail.example'), + }), + mail({ + id: 'demo-support-lena-reset', mailbox: SMB.inbox, date: at(3, 10, 2), + from: addr(LENA), to: [support], + subject: 'Access for a departed employee', + text: `Hello,\n\nA colleague left us at the end of last month and still has an active login to our Meridian workspace. Could you disable it? The address is j.becker@hoffmann-partner.example. I am the account owner.\n\nThank you,\nLena Hoffmann`, + keywords: ['$seen'], + headers: authPass('hoffmann-partner.example'), + }), + + // Nora answered Yusuf from the shared mailbox. + mail({ + id: 'demo-support-yusuf-reply', thread: 'demo-support-thread-yusuf', mailbox: SMB.sent, date: at(2, 16, 30), + from: support, to: [addr(YUSUF)], + subject: 'Re: Webhook signature verification in PHP?', + text: `Hi Yusuf,\n\nThere is no PHP example in the docs yet; one is coming with the launch. Until then, the two things that usually go wrong:\n\n1. Sign the raw request body, not the decoded JSON.\n2. The timestamp in X-Beacon-Timestamp is in seconds, and the tolerance is five minutes. "Outside tolerance" nearly always means the body was re-encoded or the header was read as milliseconds.\n\nA minimal example:\n\n $expected = hash_hmac('sha256', $timestamp . '.' . $rawBody, $secret);\n hash_equals($expected, $signature);\n\nTell me if that does not fix it and I will look at a request with you.\n\nNora, for Meridian Support`, + keywords: ['$seen'], + inReplyTo: [mid('demo-support-yusuf-1', 'demir-retail.example')], references: [mid('demo-support-yusuf-1', 'demir-retail.example')], + }), + + mail({ + id: 'demo-support-resolved-sso', mailbox: SMB.resolved, date: at(9, 13, 20), + from: { name: 'Petra Novak', email: 'petra@novak-consulting.example' }, to: [support], + subject: 'Re: SSO login loop after the provider change', + text: `Confirmed fixed on our side, thank you for the quick turnaround ${dayName(-9)}.\n\nPetra`, + keywords: ['$seen'], headers: authPass('novak-consulting.example'), + }), + ]; +} + +/** The persona's address inside the shared mailbox, for the identity list. */ +export const SUPPORT_SENDER = { name: `${NORA.given} (Meridian Support)`, email: SUPPORT.email }; diff --git a/lib/demo/fixtures/tasks.ts b/lib/demo/fixtures/tasks.ts index 064d6820a..c2971f2d5 100644 --- a/lib/demo/fixtures/tasks.ts +++ b/lib/demo/fixtures/tasks.ts @@ -1,140 +1,52 @@ import type { CalendarTask } from '@/lib/jmap/types'; import { demoDate } from '../demo-utils'; +import { CAL } from './calendars'; + +type Progress = 'needs-action' | 'in-process' | 'completed'; + +function task(id: string, calendar: string, title: string, due: string, extra: { description?: string; progress?: Progress; priority?: number; allDay?: boolean; alert?: boolean; created?: string } = {}): CalendarTask { + const progress = extra.progress ?? 'needs-action'; + return { + id, + calendarIds: { [calendar]: true }, + '@type': 'Task', + uid: `${id}@meridianlabs.example`, + title, + description: extra.description ?? '', + due, + start: null, + duration: null, + timeZone: null, + showWithoutTime: extra.allDay ?? true, + progress, + progressUpdated: progress === 'needs-action' ? null : demoDate(0, -3), + priority: extra.priority ?? 0, + privacy: 'public', + keywords: null, + categories: null, + color: null, + created: extra.created ?? demoDate(-5), + updated: demoDate(-1), + recurrenceRules: null, + alerts: extra.alert ? { + 'alert-1': { '@type': 'Alert', trigger: { '@type': 'OffsetTrigger', offset: '-PT1H', relativeTo: 'start' }, action: 'display', acknowledged: null, relatedTo: null }, + } : null, + relatedTo: null, + } as CalendarTask; +} export function createDemoCalendarTasks(): CalendarTask[] { return [ - { - id: 'demo-task-1', - calendarIds: { 'demo-calendar-personal': true }, - '@type': 'Task', - uid: 'demo-task-uid-1', - title: 'Buy groceries', - description: 'Milk, bread, eggs, and vegetables', - due: demoDate(0, 2), - start: null, - duration: null, - timeZone: null, - showWithoutTime: false, - progress: 'needs-action', - progressUpdated: null, - priority: 0, - privacy: 'public', - keywords: null, - categories: null, - color: null, - created: demoDate(-3), - updated: demoDate(-1), - recurrenceRules: null, - alerts: null, - relatedTo: null, - }, - { - id: 'demo-task-2', - calendarIds: { 'demo-calendar-work': true }, - '@type': 'Task', - uid: 'demo-task-uid-2', - title: 'Prepare quarterly report', - description: 'Compile Q4 metrics and send to team', - due: demoDate(1, 4), - start: null, - duration: null, - timeZone: null, - showWithoutTime: false, - progress: 'in-process', - progressUpdated: demoDate(-1), - priority: 1, - privacy: 'public', - keywords: null, - categories: null, - color: null, - created: demoDate(-5), - updated: demoDate(0), - recurrenceRules: null, - alerts: { - 'demo-alert-1': { - '@type': 'Alert', - trigger: { '@type': 'OffsetTrigger', offset: '-PT15M', relativeTo: 'start' }, - action: 'display', - acknowledged: null, - relatedTo: null, - }, - }, - relatedTo: null, - }, - { - id: 'demo-task-3', - calendarIds: { 'demo-calendar-personal': true }, - '@type': 'Task', - uid: 'demo-task-uid-3', - title: 'Schedule dentist appointment', - description: '', - due: demoDate(3), - start: null, - duration: null, - timeZone: null, - showWithoutTime: true, - progress: 'needs-action', - progressUpdated: null, - priority: 5, - privacy: 'public', - keywords: null, - categories: null, - color: null, - created: demoDate(-2), - updated: demoDate(-2), - recurrenceRules: null, - alerts: null, - relatedTo: null, - }, - { - id: 'demo-task-4', - calendarIds: { 'demo-calendar-work': true }, - '@type': 'Task', - uid: 'demo-task-uid-4', - title: 'Review pull requests', - description: 'Review open PRs from the team', - due: demoDate(-1), - start: null, - duration: null, - timeZone: null, - showWithoutTime: true, - progress: 'completed', - progressUpdated: demoDate(0), - priority: 0, - privacy: 'public', - keywords: null, - categories: null, - color: null, - created: demoDate(-4), - updated: demoDate(0), - recurrenceRules: null, - alerts: null, - relatedTo: null, - }, - { - id: 'demo-task-5', - calendarIds: { 'demo-calendar-personal': true }, - '@type': 'Task', - uid: 'demo-task-uid-5', - title: 'Pay electricity bill', - description: '', - due: demoDate(-2), - start: null, - duration: null, - timeZone: null, - showWithoutTime: true, - progress: 'needs-action', - progressUpdated: null, - priority: 1, - privacy: 'public', - keywords: null, - categories: null, - color: null, - created: demoDate(-7), - updated: demoDate(-7), - recurrenceRules: null, - alerts: null, - relatedTo: null, - }, + task('demo-task-runbook', CAL.work, 'Rollback runbook: work in Bob\'s comments', demoDate(1, 2), { description: 'Name the dashboard owner in step 3; drop the signing-key question.', progress: 'in-process', priority: 1, allDay: false, alert: true }), + task('demo-task-rsvp', CAL.work, 'RSVP to the go / no-go review', demoDate(0, 4), { priority: 1, allDay: false }), + task('demo-task-quote', CAL.work, 'Quote for Rachel\'s launch post', demoDate(3), { description: 'Two sentences. Not "we are excited".', priority: 5 }), + task('demo-task-canary-list', CAL.work, 'Pick the five canary tenants with Priya', demoDate(4), { description: 'Lumen Logistics is one.' }), + task('demo-task-slides', CAL.work, 'Finish Infra Summit slides', demoDate(8), { progress: 'in-process', priority: 5, created: demoDate(-12) }), + task('demo-task-review-pr', CAL.work, 'Review #1284 (signing key overlap)', demoDate(-1), { progress: 'completed', created: demoDate(-3) }), + task('demo-task-invoice', CAL.work, 'Approve DesignCo invoice 2026-089', demoDate(2), { priority: 9 }), + task('demo-task-mom', CAL.personal, 'Tell Mom which weekend', demoDate(4), { priority: 5 }), + task('demo-task-suit', CAL.personal, 'Pick up the suit from the cleaner', demoDate(-2), { priority: 9 }), + task('demo-task-passport', CAL.personal, 'Check passport is in the travel wallet', demoDate(8), { progress: 'completed' }), + task('demo-task-snacks', CAL.personal, 'Snacks for book club', demoDate(2)), ]; } diff --git a/lib/demo/fixtures/templates.ts b/lib/demo/fixtures/templates.ts new file mode 100644 index 000000000..542d5e080 --- /dev/null +++ b/lib/demo/fixtures/templates.ts @@ -0,0 +1,43 @@ +import type { EmailTemplate } from '@/lib/template-types'; +import { demoDate } from '../demo-utils'; + +/** Templates seeded into the (device-local) template store on demo login. */ +export function createDemoTemplates(): EmailTemplate[] { + return [ + { + id: 'demo-template-followup', + name: 'Meeting follow-up', + subject: 'Follow-up: {{subject}}', + body: '

Hi {{recipient_name}},

Thanks for your time today. What we agreed:

Next step is on my side; I\'ll come back to you by {{date}}.

Nora

', + isHTML: true, + category: 'Work', + isFavorite: true, + createdAt: demoDate(-90), + updatedAt: demoDate(-20), + }, + { + id: 'demo-template-webhook', + name: 'Support: webhook signature help', + subject: 'Re: Webhook signature verification', + body: '

Hi {{recipient_name}},

The two things that usually go wrong with signature verification:

  1. Sign the raw request body, not the decoded JSON.
  2. The timestamp in X-Beacon-Timestamp is in seconds and the tolerance is five minutes.

If that does not fix it, send me one failing request (headers and body) and I\'ll look at it with you.

{{sender_name}}, for Meridian Support

', + isHTML: true, + category: 'Support', + identityId: 'demo-identity-support', + isFavorite: false, + createdAt: demoDate(-40), + updatedAt: demoDate(-2), + }, + { + id: 'demo-template-handover', + name: 'Handover before leave', + subject: 'Handover: {{day_of_week}} to next week', + body: '

Hi all,

I\'m out from {{date}}. While I\'m away:

  • Launch questions: Alice
  • Customer questions: support@meridianlabs.example
  • Anything on fire: call me, don\'t mail

Nora

', + isHTML: true, + category: 'Work', + defaultRecipients: { to: ['alice.johnson@meridianlabs.example'], cc: ['bob.chen@meridianlabs.example'] }, + isFavorite: false, + createdAt: demoDate(-200), + updatedAt: demoDate(-200), + }, + ]; +} diff --git a/lib/demo/fixtures/vacation.ts b/lib/demo/fixtures/vacation.ts index 96badaa82..927f1a844 100644 --- a/lib/demo/fixtures/vacation.ts +++ b/lib/demo/fixtures/vacation.ts @@ -1,13 +1,15 @@ import type { VacationResponse } from '@/lib/jmap/types'; +import { demoDate } from '../demo-utils'; +/** Prepared for the Lisbon trip, not switched on yet. */ export function createDemoVacationResponse(): VacationResponse { return { id: 'singleton', isEnabled: false, - fromDate: null, - toDate: null, - subject: 'Out of Office', - textBody: 'Thank you for your email. I am currently out of the office and will return on Monday. For urgent matters, please contact support@example.com.', - htmlBody: '

Thank you for your email. I am currently out of the office and will return on Monday.

For urgent matters, please contact support@example.com.

', + fromDate: demoDate(9, 0), + toDate: demoDate(13, 0), + subject: 'Out of office: back next week', + textBody: 'Thank you for your mail. I am at Infra Summit in Lisbon and reading mail slowly until next week.\n\nFor anything about the Beacon launch, Alice Johnson (alice.johnson@meridianlabs.example) has the plan. For customer questions, support@meridianlabs.example answers within a business day.\n\nNora', + htmlBody: '

Thank you for your mail. I am at Infra Summit in Lisbon and reading mail slowly until next week.

For anything about the Beacon launch, Alice Johnson has the plan. For customer questions, support@meridianlabs.example answers within a business day.

Nora

', }; } diff --git a/public/demo/beacon-launch-deck.pptx b/public/demo/beacon-launch-deck.pptx new file mode 100644 index 0000000000000000000000000000000000000000..4f4c44ec0e9d075e8d007ad2c640482dd72a5ed4 GIT binary patch literal 99675 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 literal 0 HcmV?d00001 diff --git a/public/demo/beacon-launch-plan-v3.pdf b/public/demo/beacon-launch-plan-v3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0fd9d32355d4307186270933d60663a5b24bb8e9 GIT binary patch literal 44032 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⪼7AF(wLC?QuuQ(4>zF+5;`?>`z=6Xae-nVsY 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 bU#_~lhpC&#uWJqgnzaZa2Zw^jeZv0%o)^4F literal 0 HcmV?d00001 diff --git a/public/demo/beacon-rollback-runbook.docx b/public/demo/beacon-rollback-runbook.docx new file mode 100644 index 0000000000000000000000000000000000000000..03fe33f34411ff53dafd15b954e4b409667b936b GIT binary patch literal 8303 zcmc&(WmHvLv_5oqmw-rzbVwtJG}7H&heM|{NOvDXX=wxr>FyGcE-57>BqiQKuf=`$ z$NTlx7@N%)tZ%aRoO7-DeRCi?M@nM56O?BiX1&D!s_ppP9~my~u=#*cZum z?>$cY7_iK8EGiokNEbSd<=SJPd_f@uuM5jwAnB@pQ2v#2Fj$<`q`VZpU9O(8w?Mf0 z0`8{^e|QE(*lU;+9suZtxCQH{Xa4lbkfyEUdtS_IMq-Y6dk)U1c~Ubu%gS%hTXxi{$O`0S;&Ew)LZ&@t%+=q`)~+3=7wg2(TXZCn!aXY> z!Hkim*2&LV{xX2!83M(Y)E|gUZHPPA1`CYR8wn0IGDRQ9hK(`fWt^t#EnyBew9tU( zGW~GrBYJ zhKfSJ5ylvbmHQxEtz+jNIx!&^vNUrDSLdP_g(Q0k>}ztgAiWTvgoBcGt0O8GVuGkt z{J|^1?za|oDO?oqv&f9n!VL`lEp80CdB>cBqw(#@4&uY;2ol$XB_kTFH9AF^=%%n% z9*sPS13S#HFG_RC^hcs|!)z_U(v61@ZRV(%j=eevdFdS&50`YbjaFer^^kl>KsF^j z0v`p#M19+D@^pA*H-sr?wp}$G%NErEvl$gb-OocCuma^d#-QS3TqwGgs|BTX#Ighs zD^iP@YMkJSwd0#N;LlxT7!Ti#xhQ@bGDlgeLyP(#o;llX+nDnUEeTa4qGO`(R&5(A zF{{RVL1KOWk_;}BU3XG+edSDe^NQA$fkPYGL2O?sn>gFRacd*TEsLT&BCZ+sRkIb; zs~W%bO?gQ^lIPNS}0#gGF_Gww(!I$lashUlG zCCfXy;BVHg^Ip=^J)Rc}fD#N^-Xc@Xe=sKfBBcsxEH5H4jn`_M%_+z!z6hp0-CyU^ zG&DZTvvN-qb={_;Q6F-W8xv`|gYU1g=uMI8=ehr^Fk=wVW zUqHz~4nPOqMP1(PP0w1og zo{2eSGuO>sgcaSM>HQ{bu`JW*CYPwVJ=v);pQNC+PV~S7I2ohJS_Ue&a)$}zN}}08 zGvZcJ<Y&GAiA ztABaUhJ3|-6cEmaN0xlUo(!GJNPk1{%@WUj&-iK33RDwOOuFXnp zlpyuNsVubemovzj%zN_=+2M@47b31e0Z)g4E+mpI{kCOhN4b?R8;6rYi|=k>cTVY=(ceL*FdR#Bh`=_2VqUwf&{PNB&?q%e*dmb^=? zt_4ZsszrG@8aKbbA}P6)=WJgrvwU?oK#Xu^Cdq7znLhVNx?xQQn}*i_Efij2DZZ6yDrf}Tro%|WncZd+ z?fmhy`U8&!(Ag+ggCpuEF9 zdAMV+d`(Kk!f=)GmHbP2SU;3ol*|cFZA4EED8hOdT=QViON|pC7e5`Wu_V2k-zm99 zW%iv3TRnf1Cy$#i%nns(Mbe@Csg;IR(wV_Yc*0D{if40*K=?*Q z&EumFQ`_f|$u`$++YO#^_7$~HbCXtzD>X{*!^xdd@S2=%UJL~jHDjQE3)$1PG-pXr zw+v72P@82LADOsf3M_rNw@}WxJ2&j2aa_7PecZH5_jsF6wQ0+P+cxh;au!cQcZ%SwHGg{clr!{>EOYqi5?A{f|-=!pJVo;$L8UPSL0{}37 zmJ&xNcNz0{V>3&jqbk2cgQTVPrzn}w$t#kHj-MH5(FzV;M- zxh}VJeaLfcjPG5#g~CV{9n!s6m6SJ9DWu(ozJzOhX5mt9K0N%q=rDOu15hida_x9Z zE9Wzx97?{1QQ)O~l#QeZ2j)!~kxC#Zy?}P^g)^eju$S`V&esvg?G2G86_JMzvknB+)XDWRr1$e8Or)pWa1Ewf zA84YyFruqp4HDusBF!Q0CskOz2#-T+-CqKX!~3=$O!|Y6HaaI3S&>jREC#Y1-TaUh zu}Vwm%kwy>tizJcCi=@f37C33s8LG**h~*FO$qBpRfUkgRL~SQhe27zlS3UWUPSRJ z(%tlVt%Wc%Xoe7ajL%)Rm^-gi_0;7b?%;&vILCQpzW&hMYbqJFScc7lRpAJ(R;d$- z`C0_)(4IFU*Ft8hAEFm?ia!3fvj(UTYFW_vHJ&nM%PKO2JvIF`jYc&T-`4?SCLcoL))w_wi;9K@EpFDXOfIF;f59)a z{n}*shGXUGpx=x{wl$8;6hQ!6S3I&!<}*opIT8<50IrX3W< zs#^p#Z+}rv9agX^P@I6;ys7F@N)?`c@Jm>veoe4AQgao0M71kBlJWY@A~mf0Xd z@2Xb_+YM2l4Z|<4aV{%UT558F#kkUqe4h?$ZUi#=$@;OELgx%P>=vL8ik8+aZr0Hf zClO`KlN`Q6L)#ELD9@=V3u-9TbeAgCKAW?F-T#zYqEc80oB6RtGk|0t-$y;JT3ml4 znd_>~58-*^jyaL;p^%q{-Y_OnX8nd@`@}K=mnLROcquR0O5+FqR*{GkLwRp=BBw4PUIO^?oZP)gy%%BF%`X6-p8z$gy-O6j3@a zD1fq;s6vu&65-z*Ex@3h$W|XQc6zQ13==R89Yj=*>$Z?V^Qdc?6R*NVnq1z15>2y+ zFJRNsOqV1~canf(^KMfrjnJBY{u)*-98QLQkuGD!kNj-1MW;A{7zXSrp46EQPkUWZ z1eRuHNx<(EQ-4@V;i0=Gn7!Fq6$mn`Z9VDXj|hAA(sY8tqm+UGd(uD6jNs)+pLU4A z>uOAuSq7@9gaCNzp|JIDmQHzopqhY$hjOoQNo%w*13&Dx<lNlLEz$9L2zB8J!O(~6&gn;b#rK!qPditq>eMo+PZLz6 z$q9ke>g5M(@%mmuOArqwDOtwZE5d4Tw7vG+)1Y!)kLlEqQ~Fkqx%dp2)HWFecFd)p zSDQtfs(qgxly^~@Z$d`Z^6G`Z_DO6~!bmM2oT3zO;Sx=nX%;w=pQL>_IhmA{kdviB z+Tf-5%VC+%N{_M_me6q~K=yn>p)RcSyajKmhd()5Uwr#!&VNn05b4lhF@ID(%Oz`O z;Ml>Ih6;|ekXWl~$PF=GI$!N3QZG?HXxn~q11dVBK;dnnO_eY+beG z_{iVSL)E9PY)o%%$by$E8>dh16-(q$MO&v;^^ za#JAkrQr5gO1Lzo?0Qo{4u0b=(y2O4bC0yeUcfJK3Nv@R!^^+qE=$`OQE<%(zqI0Z zzu3p*$Zy~sA`rh;dQpgPV9GQaV4T}&Kn)^dSjqE9#C!4P;7o_k2{!6Ug2&pMKD30Y zBKmiF83j}C=chYQ%lhBUxeDoZN!3gjyB&-sRwJ}bT|P+FUV4`6(ejGjR5JGSRajk# z{23WPgV46B)EDcV2W-!nGOpP}#ysF9d>hs~gANYTp>hr=Ldx4!ZrF&D@}6Zs<4U52 z8y=uxC;3Xo^C=~p#wu&qkB5^G?dHI}Bima9j_uH4u3`GV8gZ>hswB~tp4J{Swyq8R z_BMJP)wm=Y$ki9`BgH#WdKn9VObI*@h@> z@uV`Chf@3-d8Rk?&!qnmK@Io0`*D!StwEmK2>z~)&W=t%+uI0c42vSSvtkCV6erBg zsSw=Hv*cNwm2f5>w%JEg?HaCuo0v!s=zlY&>M?xBC+F&rdM4xBq+n zfjhRZQDVodNkF@=8Zi2*(KtCMab!F_sr(V_&(Bsq)?DG^SBe=a6s}jk&I44h3CL>+ z1<$SAhcgctW(v$+M`!w0)4Klu7&LYv)33P@e-TFo?&+_f_8`eayK=24usfRGK_Q`kz;da|+WYJ&sbReLrI z_F(HCycrUXF!Vl^EH1$rmSM%CPvYwfT&ajR(~n(hxre{hw_vuA%q7B#891V7;5DPI z7fS=Ht@PQQit|W@xgG|?S;Juz_p_FRsHZ)DLw~rJ*BkV@{d=E;Q$D58VinvJ_~F45 zSlg$;fg1!T2bh zWTSExdx^l>9P7gJ@eQYrO;pUD4pxTRgPQER`Z9#msAJy2R+*hIG_h*&M@OCaTe7KO z?$fhW?gNK&aE5YIaeS<-<+*F?t_Tf|@eNKtaBUU@Obv6olkJW*(j;M#8+FlSC2f>* zys=H`!YOn=uj5&s4i}T0u0nMcBzbP_;IVGvO@xk5)mSlD35Z&ztuO9kry7Z$k)QFLfZREcu22G=l_2)2$vJ9LAu05mlU^dLnefo3M% z>&DaT#^*AbT(qA-;a5lz%{vH@}X7?gq)1iIA6Us$5i9&X}I%>f*<-9G_Ge z1}MtM*^k+@Tcxk%{0>ZZiRNw)mJjbRHoB;! zX1Uk|I-{D6V-h{Cyp;{Z$>wS85N%QyEL|I~3f^3C@17knnEiFamf|3yZzXACp+q%Qp`X%=!GCcHzN% zon4S{b|d}~PGg|$ZO{EjI42eyRw)SKm$gB>>Tw#%JnyS%Gj_ka&7oxbwsT&hW{asPfkyo{H7Xfn+J!3Xi#&sxHxu zf+KQhM@i0YOkjN4Y*F!$6f@iIM;9I2ybjcTjo2XL@AdlWY_8OercNpiUZqnOO{uYE zI*mkmd@EKiXX5p$Jdq#x#_~jw;>dke2E%&o3;|fj@5#Xk6Hs?4`*f|qL$svNX5}8T zgvA>g(Pvz|gqpgW$yZ(kO$~$k!tH^nRo4T(Z`wob_lZ;D? zAON~X9KB#=d7_rQ^sV)3TcAYU7_Ga^sbsBVx=5=BIN>%o4Edyz>zH=eDlH^xHfM50LaYJ#oq9m4oU ztY(v-sDY|T`y&=*j_5EChAwqYADB~wl1->{97Q_E40D@%!B6{&jE@Bh2+4|Rhi}4C z0l7JLX7uN*>SLy+36Z&G3~BBXrILH_3lSoTS(4GB_jKaMr!=)lw+&sgbX+UGu}_ae z6TJJsoZEl6^#9}BhJwZg{P&F=q{u+VEj_v&|J>jGH{@2^{1~?oD#-IkiBgpL3H-q! z@80PBgM_?f{|5efm-XF6cP-t$0sC#q43fg%m++^JyYRbR&)@J$h(P%c|J?)q4gR9EvA|RmB1O%*9>AedGh?Icz8hS6%OCV7Z5D*aQz4tD?D^+TM&|9RJ z&;x`(%7=U3`+oM1@BRNC$NTW>S_z9aYt}h)&75n7Fb#DjG7@?c0s;au<=3y?5)crZ z5fI$Wx_$lX6CK+FGy%a~0_9h-+P-PKi^Rs-I$eE7ghN&RS&t$Q=_9L?=iW1MCgCo2zl2x8N*ynGA6s(05B(W7`Wo7-~C2X~|xoZ=0 z?Uuo-4HWiJvoQ^{Ig-Ad(X&zww~A%Si(a`i~|LoaEL zh~U1A$v+1en45F!6M8%aGcjI=)Fcw&Hfd&gqE680ddK+eazVp2_vRQw${DAq*%2ud zdR#?bJ_xh8n4WegVq#~_Q8NZ4%$3o`{pQF0j^CQls6EPu+S9;z(98)D_j6$mi@v#@ zh%PbL|CreO$mZzK2VU;(?kEZpIzi`29uUNscLG4r$aAj7K)vhiysQq>b-A>ktd)KI zVM&oMaTJSg*pl2GK8SX@v@({zCScBt!3>5^hX&W*KH-;kx**)7esKS6w{x!pA|<5# zkA*sEt|tYJN>xEq;gt`S6>l#P-D;&%3c+ z!BO(rCqh#N9FY3u9~a=Hv3~ou*Mhuhn#3Cd>LlR1=xTw)vhyQUn-Vy{Nc)a^X74b@ zY(2VTPv*N{6dMs(Kq=U8Hjvk|KQ-ujdD#8*>qKo$S?Yq^^q4+mZ=qzCb4uKk*<>G(VWK`>1Sl-b(7%R*BH?{i(Wa_DyO zyeBC{rJcH-*{@~Ldgp%zaXXFp2wdKv+td2a1_D#U8D@SBe76LWoQfD^wR^u?UGb|C zQMgH#B<8VFMPsVifjmHu>sN0IxZyb`rxnugVyA&IF)gT9`9&Y)KxbRCvzYE}W=Uby zSD#4#7Bow>>0IifvxY+CGh7n43hc(J9GO*K!?x5OSMKLb;LDo)P7eYdb)CPcPzn#) zcBd8Zm5{o59Q0{TXAYnogI(Kj@}adZzY!HOR?Sbn?XW0@ksimJ`^A?mkEnKL4iC#i zT)VoaxoFZ8Fc@V3?EFVR51T4Zmw-Alv7@6UKGz|Efd|sz4lleWKvZ9K#-|iKCB$A5 zg<0w6i&*u9D>|o0Ny@e1LJPlyaCnt4h-(Mbt1qD5Y7djSQEH)5W-}Q*~PtCyoW$rtdjRljToT&ygq<7am2TW zv3%xA6a9rBRTIR-{D=vtwYR>}N*IYX7g1?1=2aRU1C8!%n?*JHfpS8G_`?`D4R3&W z%9-GgY^HYP&VOgvA(5w`;kqruP0WMOM2ummScANjF&uPTY+Z({3RGKnud zH9V{j=Ax&WTT6_7b|5WR6>sSII14+;MQhb~vyd!sqL2?iRkLr%ALJX)KPJ$AoqaGY zh(H=OI260 zr#_H$IQ(VX7kraw^3+Gf6qug&kfF|YxOE$mb6iO&Xttsv4-$qp4E)zMcCJ{C%m%n? zWF39nB2&9mOEh8-x1IZy!FByW($UNP1Srw|H9EjBj`hkP^0bNa=9y>pyTz@=NOstE zK{m=GYQS86CnNYekG*k}h$8jzd%_Shh6fzctsNY$>uFt$BgZj314Z#5AO#<&ugAr& zVmeMLxJ=M}9cTZThBNrb2UY<25L#MnCH)ML>VqPo7x!3sKT0F(2VDxsQqZ68sC4-Y zHXKGpNH9~k2MpMPUdY6x1=4#SpJz#2dLE`nS?WfN!|Zil9izENb;kMtuP zcLe+Jp@7jamSThxcl38)*9f(*3&X#1BE_GL7F#{`_o6|y2uLJmR#%;OMu%2-ZzDJ{ zOm>gEUCiZ6P!DE%^z5R74?O6m<^}Kvfs0;|kmAj!IKe%G;zhg2*(#hpDv`PUW-7(k6*CMiszMk=;*52G^JL`^gV!N#P-(kO#`cNWl z^S05~w1NYTBJE}pqa1ok+1{KKh;RTh^myAm;f>u1o+JKdBwy)R9?60P%JStFt>n91 z6-uIzq}rQ6iN>wE9`qd0I{fey@iTbDe`Af2-=RO6qlVxS8(US;$PaZ~I%|b-v5SmN zB-&LD-v<6!rP#Bh`cTk&ot08PJR@VcZLI1haQc+q)Cxd_r{*NONn1s#{vl{1;QrVi zIx?p$cx1NKO2h2PCIpFS`wbHd3^!Hw!F1rNEBxFkskEnCio6zsLWWH?e9Q4Cx6RY9 zWvbp00=a#o;09Ny%1xn6vK69yJHSkW@ACHe^@6#2MSnc&RXx+}?jh~fx&+QNMKmsm1lBzCd01-tz*;V+^UNuexbED_5#Vd&jI}pz8?o=3(mDa+PAi zWo6V7@A~#+chFxikl#z1lA`a{K9kE%mhKRJo5(ZicyO=X0ha!lnM_>O@N9-q4pU=( zoD<+NCUsI7j3o^IjN4!LL4}3OF3)?;Y+WmN1kvB>n^Mi@i`wtLVsw6gp? zZzPt-v-Ghbtw{MoGPl10H?pt22=_sDpxK0}9DG8Q8?-7`HAv{5D5wdcL6WV*%zyj> zGcpyq_(~s#xdPEg?W74T;31#5@d{wH_}MBTmEw6a4aEZ~e7vxZf_pcSfOG`k{OA0J zubOBb_Q$zOWaJf3J(kx3No~vc1+Q^1?FwZ<5_NHtChk!e!`(B1@E3Cro^qsJ+K|hk zzS^?_n5H4lKp~$bWi7D##9Y6kxiUBQ+;^kA*Fg$q&F`Be%&JeNT3%n9;!>%|#cKqZ z-YZDj&Kk-rdqd>mi}2s^^aj<8?YO>q`si~WZ{cX7rwIxDb|1jGy6uTFjI}3Jt#YO*0y`rV z=9SSkU&(3wvj$@@5xglN4aTN3veMZ4Mj^{vcw42iBae3|iaUbJM6tOIL;g;x#H+NZ ztgmu#ul>h_wlv}tz-$sf+IDgExNJ>M)JD26UcxQOK%5PlM#+?_HyRU51UYYAB=!T9 z58m!D6@CMGI0TbDty?^h6b>*Ady334y}h_c23ryq+g^%A2FPMeO+;V(l4M#q*6km6 z{0pJ)zr8CK@gKn?f<$12LG+P|xARp_e{esw1u(;9pYH>t2{Y4WF1NiuTr8-d;y!&Z zaa~=Cg=Z|~jHvi?A@2{HXp9(yfdMBX8&z{_k)K7y}$im4xyZ0K42c^;8E)bxycWVM;GV=KVdp zqap|Oc<@hs0>oAypPpcX`c7%?HOZ%5s2Pj$L9}z#KSyB@mA@82Ij=PAprfN-AFaOc zlEdYJwxlGycPA=Gp9%^##wf#CW)-EqMtYw}{CKW(Kn`y_sx8@kFD+%1gz6`DlGgm( z)5!srhhKWWrReH*>K~Ix0Qgxq2|e9cb8?X;)mvNP>q6c_kdiP;?Br)ZRvbRM%AW)d z0-i>jI;~|$Ni;nCa!Nr=N=8o3H!S*B3g{4tE_2#(EIe~E#`ZKvHhBndAd*nkkuGq|sZxSITF8r-At0C)>5tEkU^xo3&JfATJ zdQ>L&o5U}YKtcbzUTd^8{ueYXE{hVbMcoUuAj4gqf_9oF%f&gV{MbpBKE>VH`|VHj zmw$ZNVBA}4sY7eYQDMFLW}9v-w!9lQ%=Iy!`DpEdY$HuXh!|B=s<@xXI&SEGF+ySv zzdSE3*kB4^Js4F6@*pYn$gYfReg0&d81aUOFR_IczvlC*-&nXTbaoby(IVGJMs-h& zG3%h;ul><6My4bfJrNX<$yunL^LHXZbK^_WsYPlD|I;uj%w#wZYWqT+eSz=-;9G6v z4DAI-kDYeo!2lW*txmLU;Tie2CV<09@4CvJ#SJQ4dZw@WD^Ap0U?!uRcW;UNehD>i zS*8m_(Dn?go7RZfZ)|D2t+vw72rrxW=GKH;j}~_QN>pla*Si%gWpIG9-gFxQRXTND*`70-$g2*kk&a;B zcGSt$)8DIw)Pv({Wc-JFr4}oiN7oCOAsq1)dp_% z%R|~-*Y*KgXv2XB_+rItc^N?iV3x^4#6~9$Y;9mu-HqyxJ_X^**WF3A6eT4e zOHS>g)J<`^XP-&Hm$2!sJKI^KWUjLw0j%sMesgoY}1jPWq@TB5if(3|D&MsA>^iK{so9NVy&mC)gk|YW7S=TP6 ztFi}nb(y^e>RzvIGF7`Babo9Wbmx|VV{)4>QmyV&RAd;p`c^GB0_w4~4i?aleQ8d7 zc5@{MNGzHbc>L2Zh#Bl3j>$E`O(C&Nm%uzf8UD)VwsN@P8>epCSmr(PwfLTbgU&%V=oBW**feG zx{OXf#)&Uxw(jqudf1WsHL~VDrV$|b44(J!BC)O^b+c-Tf-mMfvVU3Ey8~ZooW4Xd zdH4+6hRd*y$JR>0*?kCwlo1cmx^1n|AS=Cs%dr!c%k0h1IQQ&rX$o?1u=J@ks6GAo zrF~)kY)89dF-Q9`rQ$aE_YJ4>l3eRdiUBL<13XU1cD6UoQzIPSurYYsghzV1naiW^ zj`Ku)MuqMC@Mq@s;fTt&Bbhkx*acjHxc`QFqPSzuRj8wTk|&?R$mG|U?>fSpS!`b{ z2D^Vz&ot4H98s0wsH3wRq7WgxY`hJpc^&dxJOP(%D)|77`0%&6uDYs7n|UpEVNNB9q5Z^N2tTm{XC6I z2UXdXBL;^{tUy;L-RWB5nL(L`4>IS)8#V^O&V97JjjNFBqo{dt*K?Sd{qSgptc`1r z)-vUg(vC!1fP3R?QOD8;^WZ!Fg;B;Lj~BMgQLXh|0TX8NdI0nIE8lx9*hfP@iJH?? zh0k#swU1tg0z0I*Yt655w$60cmII&d8aQM~{`$P0yGUHnbJF(MqYP~QD+%ofkSfyB z*FSI*fE!g=^;`f_Q#b7PO}Snz%WbL(MG(bOaC6&qTeoQrGbCdkG91Mi$n<>vB^o=? zIS9nlX9#Cr4zq6+ABgZIi#}@1D>mr=)Gh+^ZPiZpQ3rR3_Eo^rm^)G?W(65k+iAF- zCvB`BL-D7T(sVlCY#CZ?i`~9bHuw$#ZIWAKV-u^UQi$a zZZRp>C8nCx>+Y+~SCDQPa$Q?UR3!voWu&u}y!C853=>0lY%bYYd%`y%@nN+Rza+NKy^iH(t2i`iRI0?@xh zWpL-Tjx3KR$Yh%iyR2OSJ6?&aEx2|EY;{1}n7YY01=3)0^Mi!Sx6>{MlKeM1b8hyz z)jWuc&BcY508R6t2zoYpie$m&+%H6x%qCKhm9_p@8`V@^znz>&d>)B)BsX+qKt$Z` zam9g=Ylc!UvuG~-CT*sn4~-XMRFziI6tfLU=p5841z#BXnC;Z=Z$5s*c4~L7SQGkM z8P>s0U9peqpGijz-_7lhDYb>%OGX9_biPb)&ajG27!Dht^A(tY*9yUldumvtWsJ7u zi(37EC14krgKo87j8|3tegr|~*mMtK0|7EMHTF*3yJ`w$3pvdO(hnF<6N2wP->*Sd zchS?inyxcFqkL*^;B;cUq4L&hNpnTJReuUcjnyWF-IGs0k&-4-f79;GVX?ZCf8Z*( zUoSAQD@579>ElvcwWtOf0qpHMpBUe{LS}Rd@USS+^dZgMD7@uYVugmfRAI7uXi?OX zehBtM$gSiy5C&8sYH*He+@B2c#4GH6Zl8kf{%#^V3-DHl+QL<%aE^U*(Fqk%YzHo? z&HbWXUote0f9As?gfz_#(~1jVd;`2YGCm^k%#fqF~j|(NEHvo@_P5J>40ym zPlj;`-o`3^ZO;_!Qg$0+W0!ew8EKnb z$C;No+lN2;iD)Bj|8cf}CK-K|=|EoeM1=<$LI*OjVQB9(p=Iw0UqPI9h6XVWH3%LZ zhI;6xQ&|@_nR7Qp+*_tmR8&({kAIvzUQ<5={`Trfh+YC4{2POWr7!*=)sMM!&g&UP z?0r{DE{>kj2A*U6%;UM+Jmob=5{a5mifWu;H{E=wGRSs>9Cz_A_x#(1Fp?(5#wPJL z&n-}l9ZNk8&5kuO9vS7Qdj*H`NBR7{`L>m`z1!qtlTw3InH=9c@^Y3N-53{77o|2| z43c`nMs`gFl_cz^EGe}2L@hkKzd+0A?+c4vyvB8TorT}IEv2ACfvz9*iE%hLBU^;% zL0{?b&lgGg@2nJEe8}-H_m_Kk|9MsumDf;!!T1MCJ^7aNW??`7sl3c~U;_fGvOZc^ z`)of`?Dk~!@^X{b%kAEsiRX9WsUwIDst4jO??1C~#Bv%ICL`bsQ$;h|@6lgV_`TS? zU&ICsy9a^N=E?{G>Z00b2{^YBK$bH1U4|y{g>dTC4W6ZO`~Iw#q-2PTB^3`)l)pVn zi82FUmi2kra97-%I?(lXpx~N_!)%FiHZK2Oe`5ph9z`B$kxiU=5QO;5Z*_N_a2Q9k z?=&IB>pP0zywyfk=Y2L<(>2KT{7we4xZf(RKL#;n>c~WsFmE)1dG79h;JlTP;tobI zEizdA5QSAgrSyg}OY^wiZ)`k7cWGh3xQU|BLeSw4dke3l0^%3??J|uPhYaZclCX5_ zfeEj#l5zLQLZaltp-8GLzq;Q-Z`%^+^wSfT86<;HNhmtg-7NDt^Q$OuJ{2o-?U}3e z0Z;q0{bNa2WwY0xw?A&BBXtvf*eL$;i)JMWq2L=zC}AERCoK)Sd=)oEKfxSj6}4ez zvHbjaw?`}XGw``+F2gf@S?f6Nk`~h2LiP!naV+pBnM{_ZOmnKjFYLK-Cr3Hyw&fIX zZ)b^7fg+RBT8Q^vYs=MpbTlZXDfQMz`bdowg-@FeFAUbD%{||pmdGyl-t=NfKZlMv zFTcAeri1!yKMgIU)qZm3pL08ouJCP~>YN%WmX#;q^oSmns8oOA={o8&^rii& zO9s|)697NpWeTa4Yl2+w#H>uUR$FfI1gXBgaqxrbr-jxhHsTIVPOduoQfsp;^{BRl zoMVcUc9a@^oz(^R$){C1eWHt(%-r4cJcqr~AUSp~c?lvn@P|kx{q-gdBLOf**Et*> zqEzPMTyA^F!EqCB#fu=@6+NburXO%qh1dG4tJQJ63?3AIXF;Q0)b2w+{*Vv0FV0UU zr9a%1ltE>gd*~IV`K!&c4JgP%cwqZ&T)kYz`ZFXrDcTnk(TVhJ=8hfP=)R~{nmRt< zVTUc)$_W6;H4VqfK8=(JU3{8uB|6tsyA+(SE<$G;(JT|mABAZP>ipOVnT(#KF*sSd7^{4BgRxq0x3S%Y%sw)1?b#j!Za~AGV z#ShI^(x_dQY*|ERqzP6;biB>X}|JOe}aT3%l@U!*;sn{<*8q-e9cZp2E`2u$YbB%i@Qk1#S5AgAin&&w+Fd2z;MT7WFt1{da%$!DG?n-p#7pa$6$~&QEK%2#DF%>zBA5O3(eCP z2D6DgnNr9Mu&-&?2TI_>Db~i|e6#Mho}%E@CFb^p&Ss9vB{}`AnYDE*?-%aPjB2T( zqn@e*TU;t|!#I)VjbHJXT;4UDFL!r%D%1k%gU4vB!|UAFet&1Mp3s)F@_lu$?a~st zwBv>-I5BEq^IcQnAtQ4(XPo~=WsOfUF;r~&YJ2k zudyH@1{;0Oq%XKRIB@?*p1l|BPWVe(@|Z*3?yqiWQ-*_17x zZg7D85d_?F40R1Iaho@nXLdC0%GZS|^B5=BTQwAkQspPV&A0b-y-SNSyh;9O2WUcT zzvggF!fpEmrLu%IU0x{K{P7d}F)-e%S&iPqYh^%&!&s*CQsU7GDSzes9*+978NGq*fYacK1b*a1b(R?O~1ORVU65@b=E#jg)C;=gc{k~ zXL6A9;5E^Gal3n7i2~?^>@cn!dVEoo@w98WTVd}?2dN6)i!KHKQ1^##NqRvbcIk>5 z_ts}@Gyiy}4Wn3&;TGBOJSI;+Ipx>npv&%nFw2+=n-{=qWNnm9;MEk{~i zsDA=!S3`vkX(tha_e0gGbwpVo*9m?pDN#;uX$tK)`g*UK?)*LlBmf}(39UD+#*uuE zl16$~sYgDcf1{<&WGKyP^VcOmC&I^$(;KeVdNJ4%3t`{#3E}=Cf&xo=1@0rhd0H{`c7og-gmW@eZCYfDcq%jg2JJ z7+1p zb)iGs1;+vU)jILBnQudsS-Crk35}?HH}o0(mder>J2pX_eL{jfo713;3!cpfR{=_& z6JsHbrCt>OJWSog=8SicDEFz%eH63F+Zorx9W5KcZ2xFUJNrOcR~jTb*+V>;`&)na z42=!iY=S(HNR9_4_UOQ>$LCHOol}#C&Eu5~==^=>DHSfOaS&y>A1n1p>Asc?L)h(T zbzXzt6Bb(^HQanWm6s1qDZP`Jt}hpHEJ-g)NLZ-(EVlLhD7KN<6mir3to$oBkzr9@ zp^X&&0@qS?UO8A~eU-s16`4gi_IG4u+dyQW2oK0nn0I8WfN`VGu51-!@iAM)cwvVx zy3K?4pqP%oQ#1eYjF=?V(LaYgrP(UWpl@^y333;wf&U?}g{3<%S=(mB>K_PgxwoJF zhzh@A@8>{8;hRDX(|RQTlB=d5u2W`;%(4+6TOO<(1T&y_wAx zTf%zd+o&?CmV?G+sY!ng735*Le>9HklU*lT;aCC9VcYOfu7_Wh9DUa;9U zaPf9|AMTt_>OQGT72O;uw6tuh^4$Mjt&hz9YNDy z?4$wOFR_R)bjrI)O^GEa`Yb{!X5;5b?E%D8*u#!Bw|65X+uYK2K#g%$lGTUOCiUc? z)@p%ks#ZDdI(SraQ3@B{@>4rD`?vBI(Y3?}2U2b5U z_I^5Ul(yo!4iJgM$)bWUoVL2f2B+}2?Cq@JX0WnEg6{cj`G(V!)KRjfyjm(MNDh%Q z0$_dn_9O@w_E|w9XDFxZhiv99-mT|bvgJBL+GT@?6N2G}AAYI6H^`+fvAJZi@I5T# z%d;X_vaO(3L2{qRB@1LBTr``m@tSkKTUP=QU~8xtTM@@?-;QNgPuGr zQg5>P4xqESoUohG148LI;rW@EMs%!ZNN^=MaP7Q5wh0K*i@L9?FHjH&>y0Eur`Xcu zzjFPBj(52($37y-Oj5+88xGx2h$@c{w zB8M~%a&)Wrz1Y)Y^~`1vrS;6S9eW7Cl2H~OIhHPbRbl0ZKMR1!?r7bk0X>x{`O-DA z_F2JFacEG*%v$k$O`@f8y}k14X?!6jr+Y2zqA;_=_^P&H8!& zi-MeTL)GoJUD-f&%#Qb&pWL^ed0UD)*}Eq5tW95T)@))3a%$&1V~Z}>Iqg0%2t19kS@}TLqV>vtd>_XmX_%YI z=C*TE?X%Q>Y`#dyl#<2Fq-%F|Db#jkmkHSyuYjc9Aj_Cr9g%pm4EOsrLHp4p93_0j zAZh;vBd@j2q>Q#=7Fk2k;+9xBGA?aCYc8sKkw)0r>L`Ws45trp?_=|g{9o{qO)X&M zLx;Zs(Rz_1SQiuRg%`26JW+~Q*V{67QB?y4vx7unS8??MoSTtn0x&Sdz}Pm|g|VjT zD6N$tnEV@%M(-=xg(J|&co`{c?z_^pHvP&3z#$*o8mrYFf|~io`Shd!I!||OpLE3dT>XQ&z~(1Z zDlT-AVV0g+q_AeY`@Q-S*DW=N>`QL3&Fup}+tZ(BFrSaHdb!e+_<36k92X0NZ6HVG zkFUJw)7^yyLg(ezrMceR!WVp!9NsRru(GNC(w?j^($iEKJN^4kDH|nFr3Bco`g>aK zpKl9cwcIK0q@LK%7NLO2#`jUMAWc5C_HG}xx!5xS={C198X(r@tplyhp-$gpMmtK=T4P$iT zSFgZ4*rBcDf&nZc0{&d08%YJ)18PzqTwPWf@;UUuN)JK>g#QA4k!Quh<)LNAHjhu) zKK+Dq8s^*b>lDRp_d*`nY>lF|mavQDUCf)7ozAxYqT&c8V!B8+ubWzcGF+FncEd}} z5GvU^&$bl{fU^qE_uXQs^n!7q1O6o~JfRC{CuS`DJW{c^6&d$UtsqmZ;jFJnQ9dYc zKzz|O1IE>m$Knl*rcI&P(I1jF3ArcT^XGb8v?z<;RwNpKPOGVC(GI7XG?r$Zw!zvC z9b{g%YDJeXuJe~|2K6e$?@LDpWjZcsq1ukFjlY641mqscMxnWm9a6d52j&QEF+N!p zRt}$zc(b2B1D4h4u#!3c-lw1WlRsLjf|JjuODH;CVB3?}uZZSf9=#sfLdF3>N@`?G z))yIomfF=WiiYHnZ!rvAP(jA=9|{I72c!pQ!=O~-*?Zt>9lRMriB6{|AhnKex-4}c zw3?f71`VN>c@`1A31+gGP<8Ll*;KUw%?Siza)NqfwvfU!&2Qa3oy0-OiKbZ31hn=}XN8l;G4%*GfDGIbwQ>xItP zlDjIU$))TznMKa+GTH=Qrv0fT%@bXPa4#L}ja63dr&saK&DpvpYso4Z;y$Pfr;ojJ z^RAr?xe7^Qb4Ap*P=>zjtpq!raNIEf{C#`)9%@YzSk*Y`S|)&)U|R@c zEk z^jS)v?LnNj!`sS?h30o>-*T;&3@5*5xJWl6G>OXm^WuO@=|^WJCU|4O$gHMGQfxwi z)XrfD#YQFn_EO?^Bt(G5Su$Dgt%sEVbV>tlc?;XV5(_{H<@BvGbLM>cBp$LR;gWc^ zcZqmo;jn*goH>&aIFfm^-~I~rjkewJq{HM`f!0SjS-XVCXMj1v27rH;yO6vv;!Cf# zB6AN25p^3m4$Pki9g;f_H5(`%+zk|GW7bAxWQwgWx~?K4?Ne}Evoo5Ngnesv^}kEQjh>jBrCcI`!hc#1 zS?=5%WH}{%;V#aeD~r8iH3Ux(%GpcmG|ZcIkzR06+vrgkY6$E!RE(lgCE>i#L{9lR z{z`(8(zF_OXOvj_@C2gK>xBx>A4hLOScZi6LTMW|(96>W!|9?gy5YrJUJdje8~0$F zm1O>|`cFywG}5bV$2_J(u=n-X2%>5Bk`FT(Wgz3QH80dblUYyE8Ng^h+vW5mKO3mV zkD#+zjYZTIW`ySiF^`v&6X0qtK3zc%l@``premAvyF7#_Yaa-E+%XM?!oy|+9oL#3b)4d5yH=ipDOMt z0&HT&T>U@&9lJIXjjw?9>$iv;-#EmQS6rO`=0Nszv`REl`S&NMw20mN%} zN7W$}WhNl?N8+V@K8(0bu9)inruE5w;zDnX>#?Q0jge4^)x;H{QOA7Ti|?dR1PTOd zV=b8$&PTS6V90WTd|+QF3lH3#mqQpXPCRzc2qzNwuGAEzCEj=;;5P$EX1>-1i>XYN z++_?+VhIpisUKm0l}`S~mn|~d<4V?BH*S_+_U%57R>N6DyOb{oeaoeAIfourtf~li z!F5{Z3sL$>9chAX=9+q1Jii z)D^Mz&*$V@WTu}}o+MWK;t+Y$ z>weo+q2R}EF0k_+J5pJR@Dc-3ce{8<_!q2ZzADy9T3h*e1HTbyfOkv$&q)ZX%(e!w zt{cOJ301c4(?`qK*|?tS?Te&)3W%*RB0%eZS88XywG%V%FS_V&p;3o>$`Y`N#9MvV zB*=&I%)r@Nm8CmEJ^#~M@UqxJ1FFaVEjRir`StaP_jg}j^Y<@425V$S8$bOU+yq&I z=}i&a1lQsoUiBIcew4=?i{CBDCFiF3&-Vmb_a8mFVP??%$u#ojKc5vj?f&hD^n7Ub zM0P9*-V0f!rziMx3JHlxaH?oaPF&T`acch0JdK}@wQ>u9YuV}Pfz%BpItvSAGByr% z^v)r=x%~qp_h-LJo_Jp;FhhK|4$LkU*xjQh$zL8kjF@k5S!$0jtK{Lh@n`+)qA>!3 zc;Zuff-Lt&SBKgsiz3&uBO+2$TS6sQjzM1jDTe7RoL1KeUTW^{?xv-gq^G5=qYMlT z*!#n_?HhX96x(hQuyH#G61=pQyLv2o$YB#{Lq=pvE23H5Z`kNix8qXcaLnc?M92Sr z(oW!tbJK-62&H_vgAJ4-v9;B^+OuCiYbmuG&mYa~(+gcm!k=wQNT5wlU7}cHsz7mj z?^C*x7w}5C=s?4r@{^MZr=QLe1n(^dM@AB;y}Whn-)?VhZRL4->K5jQyDR+>=<&Y= zdL60zf?E7h9Fg|aaFqJUmGBL&&j;`55)f!yPfj*8NM)mndec9qYUdVDIk(%%PS5D)3LVA4um=#;RI!XTc($Zu3 zbd~|qKdPkq*Fn9baI9S^X}r>E>42IJmxKi3Y%k7f$A;h~`@qPQgHTkI`mu`X4F{oh zzUmu)CZGI!GLJ)Tiy05cGa^v%z@j`j*8kF5x8RTDCExi4U~gRqU9G$zBc+dZoGv$s~bD5`cY0<0XKZhD8^sj>%C{%25q~?3%>Fynmx3S8* z3XcbpvYXx9-KniZ{)k2XZ?Qt@_bPN6-)m%hdcM=JvbGuExdJ8KV4RS;Zb6XT+i?Du ze-55`!j9nmz^6a6#p1job?;MiKl1eUzSrE(kWBZ0KtsLu;!WQ>lwEP|A88o=ElsT= zXIS`jkjC;e&*YLnD(0>=Tx858$UsaaqL3u& zi;Hd@!25IjZxO`B?w0YlMuh&^m&?Dk0;4Z~#<6ra*ZacKij{zX4PY(wj_l9j1pNDO zt`T;UG|2zYt80M#|AA)QhiN7YuM}1aN?7nZg@s|4TEA3CO#{l>jD`*hD-jUgTIQon zz09r2DKQ%qd|Dxyb2F6i{XpmJtPT!zIi;pKw~z8Kj}zRLSv@Vh5Ny+BKxNamXWbp_&=D2-*$^q3`_Vd)`;l&}=)$#^GR*px- z7-)^s8R1tNC#QG%9M=XJPBa=;|Gn5Za=?(}I-Hk_H#$7E|6>K;-{lvKJu{W82EiIy zDs^TgUJ(#f{dkMaHT67?gMzPG_ZH;qAKu*<&C6dmvE(q;&cF@JD+yEVLEMpjKwQkD zH?LdpgLIb)P3)VYgV{SX?HO;oneMPM-gqAleY%zpA-kLskk#fa1p7N z(N;MvCDKMD-V^q-I(~n*r%4AnZA!%^wuKg!KZe-hpjJhESajO(wrWMUJZX*A9S%3(fjEVQ>ZTaerOiM$IjSIlGczDDj`X_j;TiHsgN5`;vcYN0m4G+Rc+57Ywx0r9 zTOMIPDzXuF^?H`+YYFPU@@f$|rLpfji-SNF2wu7gZO?UTeV*AX-OmepJD$x0kuJQq zU*1v&?pc3LgX8KZjENJw*(HTuk<3C(LMk&aU_tvr zzrY?;2X6`)&-;qZ#b5Xo0S3aT{Y1L_8}rs2uMaOR8*aRJf$`|wGD7QA+Vr`AeldRv2wW|=)#ymK>?3at!_Q~>6 z10<$xSFCuu=zmYtbR@{C6@0*F?Zg?Klv%(dHMeyX(|bBGQmM-{#27JLZmLH6`0WZ$ z$|+j<9R~B;pDbW!lIGGQ1nA-BmQZItVB(eQQ!#ziZ*Fp3icISvOV2~>c4=;c3XOqO z^0u(Kx_)|^-(5!v&?)|78!U<^v+lT6`LRx7zW@lGG*KV^L%NIUKtraG=FOL=g?4aP zcI#(BpBf__Y$o0Kh!VR6_*@Zo8RkDQ2(rPWh+yDA7cBk&ZsNeA_#&g@ETt-{v&CiR z{WUIkmOw#Cm=Ms3Pc>Hube_6u)XYF~D}*bFk_8WtK1|khRWFsfpJp%MG?S}F=m~ur zdmj=2qjdy4Pl~k6E1Jpyz?ZlXpk{=R0*XfL9J|29v1r^maBkwtwUFkrY{r5+f;SmG zNTT>5<-@|QTzjk`UizsqrlqQiR4^CqsZ-tyb{|rIb(1{pz*7I=wrN zehs_Fc9~IPn~GTCsa^iUuUx5<{LLgMCjb>aCQBz?f-1fnpKgxf+E_V?%{dQ#{C0T4 zvUvf^-K$E>u&WraYff)UV@Z?Rxwvr}hy$8t4lf4urugw%oMkBQPAt`c=UGJI%O#C76Vd7<{e^_}qZXUQLnB^^m(C<*-(|@d$e{(w3ghzQi{CaM@O)TZMc8iAEKpoZB>p%6u*)mep~28deopyH7)&Y zRKacpYoIN@wcy+tS0z5zJtM$ph#jGl9CX!OXjbzTDvOG!5Ra6CsC3lT15}AshxF1p z9At2nN6u0n(7j^^73nQ}59j>GN{=qer4jBCa*idXJRhi1#S+#HoPe&GxKI_eFif8fM zRAlx`MjCd7Bvcd*HS88#vC76zh~raR-R~43Sfj??5)lZ8yst6~VbC^_Z1r%_&d;7{VO)1gVQ_WXdNv{=u8kQCdR*%TD|7oG^eKTy{i@)8mD0pov>V1@d)88WOe)m8rG!vX>w zUvD+@8B*XLvX&JzQTv!J_N7v6)_=bx$$z?DA`(ic9{Bi`2e4R0)DiS74XO+T^|TZ@tMXrM)?lSbn# zJ-4$K=34xWN*D3y&6XQU@lJd;pRQsRTH(OMqn{FOy^C{ghmasdGIbgD{6R7~OFGVG zb~DtyL@0XSk`+Z3U}yC!`#F(o7?L3&4Z3|j$(tph|Nmp}t>2>T`o7TtFIzwbK}0}A zIwb`JR7$$Lq=pz6y3>nNQo6ethK8XLkcJ_K8Kk9ihVB9O>3zS?`|N*VAIIkBIhb?K zwbpliYJJz*xD`F;k{qhk2DueY4sysEbQg6B)kl?=p4nw_EV!;A@47~d(XX7VzqzS{ z_D^@Yi%qe$NMvU5y~;-awnPqJxcKMjL&srh3U`+g!`|-NxaqHU+dS?6fPT}gy<(R% z_!I_>s7rqX`*_1iP<=9cx=JEVAC;-wj7^s=-m0_tGRJ6tbx~xi>N4i)-e-Zi(7GH$ zewA}P|2bgjDTue?@@u||koK5>=+BrtXQE>Td=Df#HnUyz4^Kwx9xTYcOG2ayEKZoP zy|9Fw-rpx>v2>$m+tJb!=bBqn=gi_|jd$1}6J#Lxuqlr>(}W5$yD;G^w69~BVc{Wg z$cx067i`k>LCVopSFKLFPn@9R>nX(iih>$lQr<#qos?JFE~cp}UU%wuL`-^qMe#rM z#ozJ$l>abu z;b}oOtk)MRE7o`;8Ivaeu9k;u1ce<+Vk6lsUF@+7PqIMc=BmNhaKl;r>Q@iczhOT{ zUnPvDpVM(s$3v;l779^?@Rl%K^u|TCjNQeOiV;!b(RN{Ay{<-xRmT#DW#6 z7N}YLGouoc(wlI^LPL5BTXm)D<&ddIf_AMa#?3pw#z?NgZ?F?zuY$$WHT9c47?s3& zQ?Wg+*4a|Zz{>qRruMgx6I6zV<5;0YjNw$}O1peg*|@*2z|BGp*snz~b1323 zH|xcc=H9Y4M6I`LX)jH-$V`E!&{Wgyc5~fj@_%bxs5HSrr6e|zuQhJfv<2$^9j(kAle^Ma+$N|Nj@YSUJCQNYR!T8pj;se$I7!?!-OA7 zRGL=Q3ezuft-8BV0h{|Akq>KqCe;!3y9wvH;n4W8mtpmA3pU#&Yqm9+&rxD8&FVMw zR&MJqdtCC9b^n=U{*ZY?s*HQPFbzjl6f1+%C1KFXpR?dCK|mR;KmtDmw^NAMvyBOPE(vxjoDG5cwzeB)XSj0l3387laC? zOW#O6qXrDyY=0Sv!_g*-3>15Ary=CD1usdGYrX^&^p?NGXGSfrUb+L&* z#7~~pU$^!kcM=jk4)zkWI-}>AtNB&_m$bZoka=Oc`n7+g{&1V;dckn~X`Y+iTrFF5 zew;1{#Qr&~UClg2|FS(jY4pD|MAT<%1AO)U`x!t)j*YzpRPs0+R8o$dn-k07LT2X9 zzLvkRw`cWjirM0p!e9E;=p-1@shvn0ZER~ZxyP#>f+`B5q0d2@u>C`QT^;?^%>nnlgZ!WFPm2UThObmg~M+?OAOYgo=I5{6pYfZ?c}Kqe3A{GXb(w=J(Q+I(+<_Phc!IA4;n!JhyKMEjiq8Q-wS0Mw)Xaj zr-jx4 zQsdvq2c~Z9#;UF5U7WwWU#O9*F6ob}ZHn3(96rvNeaRKpy7yML9{WlAR}ID>X;^aG3OYj}eO zCUgG1f6qL5^bwW=HJWXte8<((YN3<_W1KHT2%06`TtD#>bFbKcDs>ul@S0cbWcL$h zoJKT@yV^6rQgP~w_J_EF(D3kQu5rv@3+-ajCzdp&s8{R2**b#E@K2{7nK<4G({-z5 zkXpX4GxE~AmWiAx$ckWP;)P^yXC^zDE-d7}dlCJT3Dr^iP~5l9X*a|1s|znNIrZbj zdDU3OE@YFI4!pk76^i%aEA)*98AkUHZ|0h?4LG#?j~37ya`1&l{5cEg&-}R2eEWIe zo7GxNeL+fr+_`};mWa-nWgdcS?ny4Pg=vO__3>b&0?ZW@{4mD{gyHU`2E%QQ zGI7-wSS__2w)*>}9Fm`o=-6;CILcyh)otZvTIzH|AxC7KoQzrTJq;R`W=+|%#M^*lbj zpx@+cuWI`maeHqKMS~f^>-8ebmPQduql#INN44T-zxo!92eEQDKm+TE%(rLmFJlm> z^<`Jy6Mh?Y)+CYcg};c70&@L1p2C1&nD8Mdra{Je>Yg`vvTDgFg6XB+ji%(k_&21Z zwILu-JZqL0T(KyRBJ5<&{@5p(WWHCqcJ4e@qN`9)@_|!JdT^nu3 z<~;n1_Y%-yH6F)6+G$-?_6( z-w6L5a6THqgk|+3&zyc;i5;c*eymvN`caL#e zsZsVDZl+lOi4<24s-6$1YHd~2y0^o7QG(3%h@y!|j7%Xgq`~l8q$-N}?;w_CKTZ7^ zqxjSkSrMNOIm+bDk7MS9)N8?|W?uA6>OWAvx+;{_egJ(oaT>}E3F7!>d?j$KP=5aY zn0`@*SCt%;?SZGIoGa493284o3C?*Q;ySl&MkTYP#{#uXTzHn>~k)_M?ml4xPp0 z4N|(ywQjx(iqETdPBF%*GMkvhg;mY=>iHi@7v8IO3aW6_L&h{=pOqHr30rP<$$Iu* z)N`KhSDXad3i&VbHVYPpaGsSXU3Rn>qik!}A|1<98_WXK(QzR~(z6lc_CeG?#?31U ztv+%mDC(`S8C&VGpUG#@g3m&2he&d0dK8MmOOfV&KhZcD(PcETfG6Q6@4X*wIT&+D zCww@WfM}Sf3gxZ5L5RQvM#6-2$09aOQc1!FXHEyEhj=}P_81vMJDTloEJL0zNafL1 zBfGouiUVCgxi5U*gUqylgvye16%m^S8(ZsX4(ncx5rS-c&yAxQ`_w%y-%7lo$}oR6 z56`3=pOtzeg=61>UWY_ZCr`YGhTI<{UA_(a*~85$lOa|!@Ac-CDL6d*I+k&D7P*>b z-w0OA$((QD%Y}zfCg*LMyQ%$-

{zTbo0)sGT)20D>c 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 z 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 literal 0 HcmV?d00001 diff --git a/public/demo/beacon-soak-metrics.xlsx b/public/demo/beacon-soak-metrics.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4e6b4e90a6b75eadc1946c47d3b5ae0be905947d GIT binary patch literal 8731 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 G{Qm$X4BzAc literal 0 HcmV?d00001 diff --git a/public/demo/boarding-pass-ber-lis.pdf b/public/demo/boarding-pass-ber-lis.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d0e5b80ef9cdac64462d6254af12c3e7992b7431 GIT binary patch literal 53751 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%0D5eEu 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 literal 0 HcmV?d00001 diff --git a/public/demo/budget-2026.xlsx b/public/demo/budget-2026.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3642efdfb09e82effd79cb6dbf35fbb6bf928c4e GIT binary patch literal 6835 zcmai32UL^G){WA8?_E%OkzS?u-lPeL5Sl>C!<^K_nm|LI6>! z)X*VF`GZ{aKJR`1o3)aamGA61v-X)e=gj^Lv@tO80RR9lKrY(II%T30&*BmQuz?8x zP@w;{QU-bW06lzcO#(cD-qr&5+}$c4>Uz8qB8}RYQ=Q}2BD6L!Ree=Z*H2x#1NeAP ziH~t&>ruyqKRH(!4{Ok z+?!!u)ZW#~K%??r#x% zFsQRVy%mXJ!c+6EcRh2!{-k}y%k<=Z+csl0;7eZ^td-`PZ&~d|r!wQx`TNnA)jz#N z5Gkwa%)59gy4^olX9z!yF7g1IsC;g;7fR4CxR@~xOrzkoHeDi5=QSg0beO{kFQC6J zer;v6;*vYg@sXZRjg^`NF?a{rM}~SZdlL8{5?+F%;pLRN_&LQOlTC ze)1JF3u4kGSp~~ zk&v&Po)W7c9u4p8KXLIQ;UU0|X2%isEF#Qaa6Hyw*DCF6OR}KS=*139Imq*Ekkfs{ zn@IUizu!fPdvIha#;-GRr|db>=ddqyA+odqu7GI1`t11nu$Y^N6=*4C&8~pe$@1tO zmxB&dY*@euG6!O|kk4Z;NO^yq$u8M z`8ZE{D#jka)mRzWmyFTZ8NsQ__ibH<;b&6)BYn>XZ2Y;*fGCcSlNiec`qj1g!|Y(r=AC z%^WMijnids#a{@|n>CBxMFMY6YH@d)xzo{W-zI%D7r*ZwjMaacHGWjewl**=FLN=v zkI=#>B~Vw(<|8IksfvHUemn*Z2&`RNqmY+@hv50t)4;#YUm26L1sNsfe)%jWJb!Gg zhU{U5uc0Yo%uA`|N`)FsiSI^1SA6)q=q&1aLH)7{CV%YZpe7(xw%in@KF4$Ai{Ajp zqA3P>RfWUyGu0H+`OQY%0jvQ2uDzC(w4;hj9ClRPe7LsFGwxoP!rR=%y-Doi`8xxh ziW9!tLst~{J#tigZ3KMQBOH&|D#ZAEpPR^|zVQOHE5ofQS>ur=eXfVFbr-yROsPz7 zUYlhpBKoQ%x^$^JUPZ+rfs}2dW!v&QYq~hKbJnLUW0vj|k=JXsU?#1HpLAb7t$7Z3 zf`8QB`FhP5>?SjB!&~2SwZ1WdtL7GN@QX-z29e7X771*r($_7A&vB%IbKQ?;0D+Gh z$@kZrh%b{n?rS^QAtzMz>0C0u(b25~-?-+435wKsK|VW;eJyE>6y!h7o+{eI88NT= zzHE+}1P6>0MvH`y!cQRa^Z5Ek8^*WtcRljOrf@JU2Rpk?V)m{uzErjxEZV(R>JJ<3 zh#Hk}?!HtB`icohKT2p*^j*lVJK@-^`iR{)gpKVknny&)2-3L=nX(XFb-z7~ohJHH zkKv0F1ASfXC3oi;Om<5VSrsDP5zkb}XT!qN7k5<(t?h4YkiotjP%kXaZ+gegiXIJ9 z_g%*Do&8A3rpWTDs6abZlT&8TJ5d33 zQ5ey2ewc!$T}{#?t9tvfW!CmyU3r{`lR5_7QRI=_ToBYW<7MEe(7ox6$tTfdxe)?E z99$W;cp8t~B!Y4Da>7fUz95gLUdT7?Xby!)@}2%lR_E!P4;*(Hfj$q(=z>dmelEP7 z?Z7|>V;``Khm-f&nE)ntY4s=&LXbCJ3vtT5G?t6$^~or{!Yo%oLW*#c5lS1;EL)$D zsbL+?RccQ@)er7Ch4%&BN$DLyv{>5{84W5IRo5fmW=^QzRSCn^&>2IB#7#x>3Ko<+ zPp$Jaf<4Je3w}jdGfP*hr*})(*}ea}g8*)XPE1x>3n&XGlPy(DPO#`xL$d&-JoV~{ z!UlQ7=b^Bf-uYD+HZpiTs^co_D?2Djn?UmD4qe(SdcWArfs+)ePt%Q;$<>8FXCgKS z)Do5=i`AlQnA?=-+Vj4SYMt6HyB2-J`S1DUue|Kz40H$nO5f*{`DF`Dv!Tl&9m{!t zg3j;fWEPcBn=s zGcP@x7_^VJC3N+hCkI!qOBVy?-KrWXGl9XY_$fYEP}8@E9B&M6c)!oily3__F`_@K zbDQyLZ#!~j1HfAcG!)y^i9s;bVYJ{WYF%V!e;a8lf7~3->iddCKIG&F$kvoKJuzr^ zpjO^i_Wte~O~~=VNaQs6y`tG@Q4aE{tLn~4(O;ivV$sEl7(p(TT*W5_xGL?L8Yq2% z-EqY9)0BdcVAc_^Z!OFj_I){4(4iD#1L4@=HFZm^fbI5{{0j8;UC2>Xhp$y|*6o6v zO{T5P=TA5wlO<~TZJ`f!rhqRt#yH6gxdPsj;9lQkHnNOE68mCh22~6x$2C97!VoE9 z2Rcp_u<;FzII~v-ax2M@7-WhRhP#8!AxcrV9VxZUxw9lTRlW_mi4i|0Zi_IzE$S1( zGimg-I9zofZ}u6Ij2l{X|Bj_FN*p2%goiST6ZIS9e-9%I#PNQv+=x;X?6h-h$W{v@ zJ~3xjcyp(&KYg6o=J{g>LW1zZ<@6ARSZVv}>8HWB^)luLRA}!;Zh)bB znm`4;QSB<%Gd+RTWmH9G_V_1**I+Zk1otZZUS`52v>PXtjHGvfn${v@HO=o9>bJ`) zo{pvaj>7O^a2IKJxlRKsTu$4&BcJI@v659EkqKHP=xDT?Bk#{Ii#=Gnyh`@5b>VIs z>SSgm=R-z({QUt^{|STpe3rBYg^Bg+qKpJhlI!O7l8`QY+6bM;qFnEfp4m6?Z2Lwb ztapOjt}HE!Jw>2ua?LgBp}=HvCuE#p;FWeZ>?{K;`Ld?WHgk z7Fw%XMz*SKARX%xbJez-Q#?(%a;n&^!aR~aWaAQJnkBL|Y2Z^myrH;ZXG(d( zWONYJ=i1UzQfK%rxI3UFw+PLm7Y!<)+E z&5(FW__TSHt*7{Qyi3=UDOsrSqY`5tnHv(uIF{(NJ>@T zAXm!mvGF%Y9B;M0+ML8Q7d2O2-CyXqC_LvC#hrFk5RPt6fj9sF(O*T_C%_H(v-%dN zPkEp_(znQcO6oQyv7ydX+-Dg@8tDzLMj|ea#E*K)D*)LaYaObl6)0&L%+j090E&PsbfC4NRVgH;ed+cQ3kXwtKN zU5_vh>gYDVr2Ex(X7yp&0_iAX*V!H}LRrCZLb7%9 zS2^>G3bd&ty7LR+rWz?k`6_EN85rg_I;OyEA0V#9mGX*G&c_58-`qs!s8u+dUupq36;ben!F2 z!S@-(*~Tt81UwuDmSW)IT_+2S$@aedSw za=fg54cp^Wi={8SGlynQl|;Nm?I&I8m&Ty$zMN)~K2G26%tO-V@6^9@wE4>40sZp& z^d8lZr#i|DVxOKmJaH2|34U=E?rb;jzyB1NR6iKrd!OMjH`_X(T_$#D1g2(|pB)wa zBJNszwh)0jqMN3@n|bG0F-X!Z(oReAMtTRcm2b+~l z>i|^dA3em*&mqT5FywDPKhUM!zY{=kgS0l~bRo!_&i(PC?Fe?>p56TkJEp>JAaUaQd%1X@`AT zv|J`R4`gV4wBXS^SneNI3+D^r={cFMcRRmHW3Avb=BFZwc4LHA-7v&cZ^~5#iZb3& z+w(^t>U)DPeG4^?VJ^TLoN zdpV7>9ao5xqF8$Rr8aw69TWC{)To_w`kxHjj;{>)ef@ZOz9_d-85-elBwrCyxadK{ z9J<;1t-k~zPFk&#B;3|HVvvL<*4)+M(fQdtSB?dzTdp<7!$uH9gVN1Sa`If~Mg@O4 zB)JIdc|IFXi>kLp$7>dy)5!iFFMALe_%mQe{b%}J>pt(5=?Dr^N>w%u_t&Kw=~|!4 zBtF}8UajW8@6tQ{IUqUoU1=i>HokcyM?hbd`6$%as2nR+oeWRGi@ylL-#g(*1=swV z%-sd9ysgON>F{`}c#`9m)xBy&s4AYohT6NUlYG6*A2=RLw?~IJrI>N)d(`vO20HtX z2nFAk$(!ZM`fxcJ50Wqn$zNj9bmG1Ta!C{i5n?_~R=$MK1XaJzREOK(DM3KLpk$#@ zK{)v^x6kGQxP~SJD8<7G9oc93n6$fnSHzXew2g~a$a5jt{_2EbwRI$(6_rEREFzA)U<9? z{N#vhUXLYTOexPakfDrHw>FWB4J$>l1eub4GjFS46%uBZy>vmzqm-iAB@aWt-PACq z*;(1R9+1zW;)rQHs-OrW{azAeXi>Pz8K zuiRtELkE(3NItM_?Ox%e9%XG?yO@$NAybzzIdQvOQgx)NwvNeqSHcq{4JFv`kI9eF>c6 zNO#p-IDGnkfa4M5n?R!(O)&q`XV`am%o3Hmm7(%#h=R&KUqnwpUfiu2u?~v(#MA^@ zIHfurZ0UMAAFT3_p|E!geY?DLnG*2dg>7^!{x<$a=KejwKhx!z9(z8{GGZJ$z84ze ze>(kBpS?f<0MCD6eu{|ypR+R=^L(5+>qKv)pQ7f4r+=>Q?D~8@&H&%e0sp?hKV{Af zAo_Ix+AZ48IqdIS_J6MTObt9AXYRStFA~u6{D(GpvGntV^`|;`fd&9f|AGCj75--I ze3n18l;5+sqZ>Q)3jU$2{GQ=|Q5b;MEzvVv=n?<9{67_m-;VSC4*RW7{Pz3r4e0L) zw$N0bt^8Lz`WyPcmb`*a{l6;pZ`irVKTG;=kL2WkgZ)+D|3v>;V1A=tq2Cz&a(Yp2 l{)GRT5r4xCsD5pg3x(Z48|&v;BSp6!Z_qpPGxeGI{{c;5PVWE! literal 0 HcmV?d00001 diff --git a/public/demo/hetzner-invoice.pdf b/public/demo/hetzner-invoice.pdf new file mode 100644 index 0000000000000000000000000000000000000000..610081e88818e378dff03e32d9fc90344b92009d GIT binary patch literal 39366 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 literal 0 HcmV?d00001 diff --git a/public/demo/hotel-voucher-lisbon.pdf b/public/demo/hotel-voucher-lisbon.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cdc2dd920f06fa119fd56887ecc011eff4ab0eff GIT binary patch literal 51467 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 U`E9d-0qrI?h=M{~Q3CXT05!#&-v9sr literal 0 HcmV?d00001 diff --git a/public/demo/infra-summit-ticket.pdf b/public/demo/infra-summit-ticket.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b8f68d3d8b1b1974841d8f7829074ac7719ab816 GIT binary patch literal 93744 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�)DI$R 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 O(&-30yY=215dQ|$UC+q? literal 0 HcmV?d00001 diff --git a/public/demo/invoice-designco-2026-089.pdf b/public/demo/invoice-designco-2026-089.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9aa3b8853295fb448f1111e1979884b80efd7a1f GIT binary patch literal 50800 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 literal 0 HcmV?d00001 diff --git a/public/demo/meeting-notes.md b/public/demo/meeting-notes.md new file mode 100644 index 000000000..53e5f2462 --- /dev/null +++ b/public/demo/meeting-notes.md @@ -0,0 +1,16 @@ +# Beacon weekly · 17 Oct 2026 + +Attendees: Alice, Bob, Priya, Ahmed, Lisa, Nora + +## Decisions +- Canary stays at 5% for a full 24 h, not 12. Priya wants one night of traffic. +- Webhook signing keys rotate every 90 days; the old key stays valid for 48 h. +- Rachel gets the changelog draft by 22 Oct 2026. + +## Open +- [ ] Rollback runbook: Nora, review by Bob and Ahmed +- [ ] Long-poll reconnect test on the staging tenant: Lisa +- [ ] Status page component for Beacon: Ahmed + +## Notes +Load test held at 3× peak for 48 h without a retry-budget breach. p95 184 ms. diff --git a/public/demo/po-lumen-logistics.pdf b/public/demo/po-lumen-logistics.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6cbd05c277ebbcbe91f422eebdf0f8a91fb7d776 GIT binary patch literal 39255 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 z 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 I(!HJiKU52@%K!iX literal 0 HcmV?d00001 diff --git a/public/demo/portraits/anna-kowalski.jpg b/public/demo/portraits/anna-kowalski.jpg new file mode 100644 index 0000000000000000000000000000000000000000..89136681557d028d14829c51942b75a4220e3f3a GIT binary patch literal 11247 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 AE&u=k literal 0 HcmV?d00001 diff --git a/public/demo/portraits/carlos-rivera.jpg b/public/demo/portraits/carlos-rivera.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9bda45e9b23026ba97b000d489680b2938ee4cee GIT binary patch literal 9681 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 bo|s|@e-gCsUx1h-_dRH87vhgfuS@?AJ4tJ= literal 0 HcmV?d00001 diff --git a/public/demo/portraits/david-park.jpg b/public/demo/portraits/david-park.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3c3ea1176dc781e511157294f9c1b721cb22ec3e GIT binary patch literal 7079 zcmb7|Wn7d`*T;9s1(s!(?rs)YI;1;=rAv@jU`gqcMrmoK5k*m?S)`E;5v02XBn1S? zXZhdv{lv>>uIqEXm^m}^{mfiverL|@^zAYLs;R1>3IGBD03hZ8+|B`%0C+gKc(^!t zc({1@_;?^fC?O#M0U3SNr=+B1;9#PqW22{}WQH@dadPqS^3X8xBlx)y z9NawIcY^@&@$m^kgk*$-WZblrwA}yia@z@jf$o^Ffvf;57!VrAJa&UsmK0bO&F8A*4tSC7*mY}#fD-k8oxn{&L4zAHM$g4pz5GZBNj8m zXa_~n6d3%2ay1XFX3BF8efA8{n6fTEpXaSYN6;}KYKkTrg*`EDH=Q+1J*IL-dJTh@>4eo0AJ%1wJ z{4Jq&bOQFKOoe_le;eKB4K!9EM*tqNw%Yg+;j`9Pvv?NeS2I#2DF#-vWxeEF_&AfS zyy;Y9 zcS7^p&r7VdZ}56-5HipQN;{QCxca5xk81l56%^So)`qYXY5i?Zv<%X>9I?PH-&oR2 z7~`9GvLt67Wi6tX@TVJGkQD&{ZAbOJ~7ZvV7LXy1%HS;_?0x9(W;pcTO(MTD*y)2$V&!1pnscAehEp8f9kqX_e#uV z2stqI?SYtMLtdTJDYY02qh-~SRA?gHoS>I5ynt z*k?M8&RWJmE|5qqt#k{)S;tCLA@0kZrLCBr4Kg(34vdL@uC1z%v(ot#WJUP<-7}n5 zH|}FLqly(nX4~e?t-j{eNW)eyMU~@|PX$5RjfACoh0qT&Tx$Ipg|=47v0EL?59qm5 z6V?@(ypIn8Vs*awei)nbS}%ovfNNur&md?Ks$-6gM%@L4oO@$FIETO}&8r}z{0`;Vq;_D{@a~_SO9Ds7%7wmflDUHDkM+N%qFa$$BuDd5XJ(Ci**aA4%@97 zUs4NYZB8rZl|*mAc1?e_w0PaNX<5g`T;;DP4{q9mo@dJuQ~J zDCo8>ejbq1uUEsd%iAeB2wc}Z`7Q{SyB~LP|3D`tjqU0B{hF^Oky`3d8nNaeGG)cxnMX9hnoU-TE0XG5QQ>q&a`ZV3y2h-PI zX0)9iBVLI~LJi*UxzVy2Nen+#&2F382us#;-;le1L6AW_kfBNTN+TAN+1@ylPA>8RAZL414Ts7RhZS&D&>-Gxs*B*W?Q)fa z#Mwku9}V}iskSM;dYR^8;)KmrgI{6ZjD=?^ zHZ^pHSZ*A5{}Zmu_}{DpB}z9MJ7P*^2UM9nhchJ|M`Cp(%81WoPxh%>duNcfYjCZp zmpFez$~qY5qvQ4qv0K1%1Nk3WE_}pt59)f~zNMTnpKPaou(F-h>~bY9j@=cSkXxEP z!kC%xDz=p3SnfrE&%{38)}#{fp4;S=rA^e1!L{{^0^f#vAFxh3Qr?Ibo39yX>ndML z-~Sy{a6z_mL)F|yPUE0m-Fe)|Ns_B2$+ar%Y3aL>U4W0q*QSPf5pMukekmRH9l5!G z&2cS7TNs4gPyX#t@7v&N&YdVX%aj+&aL(W8l4alIbF!P5*lCl*u}~769Ivb5^|Cpe z!QyMGwmd-)V!jZPqCqp|O~L-kL7!2YJ>b!4s9@}q??jEl0vFfIzj0pei) zM{F^A3PWH+Nd;NRm=%yhdN%(!Cq|IvfY&OH#e)M4%iqAuJ>_&Pq+LjM4P)-|AhD=F zu9^Jo5;Hwqv`lFcm$Vy-d;DOdjlj?TUCD`MA6iL`z{RWH;qb6LMM11V1RFO1FgFHFw9f63Zc8hp1- za42S7aBy&O{u|^j+JLbLk}|W(BZL%?HrSrwMP#Y$k2?N+nBmD`-E3G!xA=)BYGggC zmC83V?0j!>{a)(Qx%@}uhWaszeOT9k!`W~4JB4P$JdX-n8gxe8Xu!11*zlpH342zw zy2<@yWr=e-?@4NvNxZAhE8bnF`})-L&Fj@0^VC{0HKQg;KW#W->ot@3(d&#KLc|!w zD4(VCy39EH6J@*QapS5;jSOsFm?-Wvgunci(S(oHYG4;j5hSAXL~heORrF04vlzr_ zZA|KYLwY)k9~|OHFA4#@6r@0^lY4l7$sasFcA*D&>qduYsxrP#%q+xy&|Z+S1C)_D z$49)P!`CV%-6`$1b!zQ>kcBP9migihu1}mprxdHNP@u#E6H-d?h9BUw4?;Gk`G|Bi z?HElZd!bq9%$UOWPzr&D=2x{j6&^_+l)9YeT)20t$3#AJn>!DTVaYz2%(C**mNZr;1KOfx z3dyky!mBZ_7QDKj{iOzbwFc&!!=6(h>5yr*0Z5+BuF$Pj45mIn@mU4t3kY1KfA2*9g=?$tjiUC zp>LyNy?+)Mezno%syjxN88*-Ai8014=(y1yZVmtrA8)mMm9}ZXrwKU2JAU#L&8V!j zd&*lt61sj$az@MP=yb6}vN)T3_*BE7ZPnUjPhQZvIr5b?y7%1>&r3OEdcHAEsKBXns(k0#?TV#kX16%9`;8iKjia!%S&sjk=Ti3#;F?N zeLEeYsqo8&tA(lgy1DuK6Up$)V2ju({ywvun}pvQ-l^v>5An8RqP%yR0vWr0e&0c# z!^YqFt&-QK2j=hPub}?KhqnaEqI`bM;n_NdmA{c%CE4@hiU8JRnThWCoWk+jP|cF2 z#J#;G-|qE>J=E>C*Y=U9qn7EE4(pS?v9L}C-vUff6*rBItL7x#5!cgaOXb=I7DdPS zrIF83=ce>z{gC=i`5BiXiK|bk1gFBn*J_@}cKMHQ0XrUZ@eQ6!9Rwg&ve#8CFE8Vz zA)Q~lXVlhn3btfT<3K|0EenGaQ7vYB64j-U*#U8~WzW1>>D`OCg5NVaH<25MR5$Cnirj5b98TtHdRDCz`OR_+EId9maw7aw z*gN04%&qfaZvG_LycbfTGM3u^hRWDFxxCs`cwV}Z-Zs$9ets=qT3Bu{SXOL0r;f3e z3ymabT?JgvCbc_@ss1OXF6+y-Sck1!wqYUEUfeIN=~J(79LVE z;_QCbUmN*mSvbBJwa<~8MHbK2z3NM(cjE8#6;;1PhpHY)s~u_FO5F^FWGPJyd|$uJ zg?nK|VVTNvUY*fxN*o5P()pQ=>|f>-5ZBM$b&+Kvl2%;xcQ{MGkR7!5W*}3#LHX;> zi8rE~j;Ph@Jp%;1g=Ohbt-dp;{uaPcKZD9NYpEDvf-4nH%(yOx5!p%}1~zr|~&`|a89p>H3Up(q{AC4c?RQ*LUL(SN?l0_(KqvR_#diP*XWf6HFD-p;fer;}7Yo%s$C1?MC0DpX)z%bZ;Mo*9fEP&;Q|GoIbyg#yw?} zQEEF1$(m{xFZW~1{HdxVQLm-f!u3b>sD2P*J9icS@tSe}KIT9<+ux-_<)-0lJM`WH z^zjnLL;A0+u5+AM)?8;?jOB!L87|pGcdM5$N9#ZLbHJU9Lo?2Pe3ZBawB({NSJQdt z7olE1>Qh4~gU@(f^UFdf6&8Hbf{$OLGHJ!*=HtDZC%$g4S6rAr*YVczSNugZ_;v^D z#^;byDWkW)k2Y@Rt5cGVR>2e{Jpp9mf~xp@dSj}L-e|Hw=7piYzvIt8(V}NZY`y2k z=(S%Cd1hy(V$(1)t&u@v(T6H2-cpYihnvqh3{WTc{iqqV_-5+@ms!^ZBPa~8yFA4I$x{GfEKr1?0<-)-LUI=|L2u}; zT+-k3jis0D^p>*J>YcS(qa6{M<# zUgc2GQZA57+nAU%;YnPI8U6xHk*Njtnz72&C5Cx6MVEw=O3OkyB9JmemkmB>yX~y4 z!=Xr&|8iD@I1d#rv=7^wNOCU@r4?It|McW=tz#R1EGk+=J;SqJL3ad0&xE1JWLf@q zDg{H2fHDipV-)cp{=1k8`q$4cVkl=tMhtRA`sSf=Oa;+s)d%)eww1@1%Y)F26I5{w zr|ClhA}d=$>wY&IH%yQ5B|d{Oqco zE5%MPjJC~nROw2i6v}aM^0(Dv%Z6~=u#DpKTvBo39H&#%zgW4eAhdj6qMIMrE<#Hj z6I5{-eqqqLq5slxOvs8^|GTL5A0<~nLTx;m!&9q@I#xyzhe!V{=FnJ@EBud$ucs;D z7tesPeIVuxz8zeD`sSzz5_ab2I8c8aMj#m4!D})`!Ph<*I|)z(F-LH8;0Q*75gojS z(oq?_?AmJE0P08aK|p69tVLRwqW*)C;j@;H${dde2#)6+C7;2lVfrl(TBHy91Ei#5g|ol@b{OT zf>ruc^YaXyhckz_fY+HE_E2Ny80uggLk&Io=e+E?#LQj(|vqXs{2v{PMTO^)}u-wu4)gqoutkX^^)`^(wo#Mt;ngoUB0 zyzy*es2^#D^RjCoIg}55;@Zt2COEngd!c?=qqGkjRbS@pl*mPhoR^VqW%}3wTivDYGUU$Eptr6{bd_V3{Wq4Q%rFIJd2V)G!?x^$oNz!S7;wa;k^rn<~|fqT$kgB!GFz54s3i75s+tDm1E`A7!#TjaSv{W#d#H^GXG3)UvkFI6>E9|*615(_e9 zXw0t#XgeEcbUe#;?v83xZAx#qa0$3sQ$OK5BPL1uKwl^O*~3$D`{UBAxk6->qUn-E zk9vL1r88uYB3Pc*4gCmRw@OJNzT0k)3M)?xUac57E>KY(vh`Pgwv6uSt6-?^BHjR5 zbMRfYjnmGU$SC*JMO|(hd(y9EGyBNnz}Y)IHJDJZhgB=FO^^^gPi}IHA!Z~`c~5rq zV71dnU)wLp6``roKFy4k1UtyyBp8KD6fXD>WHRX=UWrnFmD{Vs$up0{6Hjtj`J`iy zE~ouQ_EMs91YPvGrzG%tyKL0cGDovLz- zg&fedi5jjShVLzPaY#krJ?#V=5{jdT73$ex-Ve&J6AdXTu2>ZTd&=`~ zVob}I(5gitTJ#WEYHz-eJr=CKiq67lKJc49Af%PCHH+G%V`Us^+Z_*+Afyd-;N6R3 zBhF+c2feukD4Qp^+FzrSxRF{OZ7*LM;AM6mg`qU(wo~W!cOduhmYctpna=(hw?r?`iACr{^wVCIrtOF=kC#WM*CUGfWA@ZStE+I+ zs_1w;E8-me>1`g$%MC!cUbsS3O9h?B~pdD zqQ1EP)8~E$O@8Ar@H}m8Nm<2sjw&xw1pdz3q3#_m4n#-L*r?J=RfOfacHy&6S)Owb z2MB$>vy0Q0(iha{)(k>9L3Muxr}cu<@C9LEZ&SUBfijbb!dwXq|FBOOjW zW<)40=C!HkYUT@PWo<6B;_-NJyJ>S17nvGkW1%3sRp=1!{f4+{ER`;bE@T(7n_lmC zj6mcvqRMXB@C1w_k;O%r&ZlKkk3tF?rLS_4q;`>mGuPi*7v?6wNS3>vG%IoBjKSZK zPXSqyyfja`XzS*M)EocoAj^uAhb1&tS&k52(`^o!u*tW(d_o*%E;U`t3faVb_;8mj z)t>C;74}q;BPygKKJza%Bh{8Ydp8JJepB1Tkek-*qltu`?5yg z8>ztv8>7raNMdFH(QCK1XUhQ9-VD?_``S)7@nF3@nSCy_w9L%#BXz%h_wm9)6 zhuLfK8H-O)%|H8AQzyaK0Eyz*{18b0nr9@7#|9>NpNgI&=g&H|;;e)~I~mVjIfnuk7>+9+K2~J70N_;1;s5{u literal 0 HcmV?d00001 diff --git a/public/demo/portraits/elias-lindqvist.jpg b/public/demo/portraits/elias-lindqvist.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e4df869d49f95718b4018148814c39e6f9c4a527 GIT binary patch literal 6717 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 literal 0 HcmV?d00001 diff --git a/public/demo/portraits/emma-wilson.jpg b/public/demo/portraits/emma-wilson.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8f83997e17be5cfdb7268b7fcb38ae477e4479fd GIT binary patch literal 8826 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 literal 0 HcmV?d00001 diff --git a/public/demo/portraits/james-miller.jpg b/public/demo/portraits/james-miller.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3388560ea19fb7092483f002e3f45e46ec07e85d GIT binary patch literal 9617 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 aegPQBO4+TK*0Z$7suMYd%BtYLEdCd9@~{U0 literal 0 HcmV?d00001 diff --git a/public/demo/portraits/jennifer-hayes.jpg b/public/demo/portraits/jennifer-hayes.jpg new file mode 100644 index 0000000000000000000000000000000000000000..14d1053adab9cc7b674ce5f4f9675980f97ddf91 GIT binary patch literal 9579 zcmb7}WmFtZ*RBT!*TLNe7~Bc&4DJM%0D}Z~La^ZOZVAEN9fC7B!4oXO9RdUhPB=Wz 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 literal 0 HcmV?d00001 diff --git a/public/demo/portraits/marcus-hughes.jpg b/public/demo/portraits/marcus-hughes.jpg new file mode 100644 index 0000000000000000000000000000000000000000..81ef6b93a610f968ca95192e6b494c63e6854502 GIT binary patch literal 12042 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 PKKYH2<<7I%%kqB#XV5XR literal 0 HcmV?d00001 diff --git a/public/demo/portraits/maria-lopez.jpg b/public/demo/portraits/maria-lopez.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6636e594bd8f8ad555e5ade323afadcb4d22bee5 GIT binary patch literal 11351 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 D49n3$ literal 0 HcmV?d00001 diff --git a/public/demo/portraits/nora-lindqvist.jpg b/public/demo/portraits/nora-lindqvist.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a3bc7c4362954052b9f41e36d60e997ab2743fe4 GIT binary patch literal 9935 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%0DbJR7 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 literal 0 HcmV?d00001 diff --git a/public/demo/portraits/olivia-bennett.jpg b/public/demo/portraits/olivia-bennett.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8baaec88184835cdd2948fb52389113605d1b091 GIT binary patch literal 9074 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 PtpKY;|9uj=^ECHAKq1z^ literal 0 HcmV?d00001 diff --git a/public/demo/portraits/priya-sharma.jpg b/public/demo/portraits/priya-sharma.jpg new file mode 100644 index 0000000000000000000000000000000000000000..562a116a74bbc510967da7d09e89fca7ce5a6a7d GIT binary patch literal 12629 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 literal 0 HcmV?d00001 diff --git a/public/demo/portraits/rachel-green.jpg b/public/demo/portraits/rachel-green.jpg new file mode 100644 index 0000000000000000000000000000000000000000..50f84f39c240c45bb4d8562c8cc1ec0e1897accc GIT binary patch literal 6359 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 literal 0 HcmV?d00001 diff --git a/public/demo/portraits/sarah-kim.jpg b/public/demo/portraits/sarah-kim.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9223e55682597d004a071a0edff2ba5664796370 GIT binary patch literal 8332 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 literal 0 HcmV?d00001 diff --git a/public/demo/portraits/sofia-russo.jpg b/public/demo/portraits/sofia-russo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3eaced3e046f5ade4c500cf5801fd344a91bff13 GIT binary patch literal 11381 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 literal 0 HcmV?d00001 diff --git a/public/demo/portraits/tomas-ferreira.jpg b/public/demo/portraits/tomas-ferreira.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ddf2c1f8c11757f66babaa52f93e7b13975cbce4 GIT binary patch literal 9920 zcmb7pWmFtp*JU@2yIbShcw@ocf_rdx2^L&}I|O%!0KqK~+}#NTcL^2*DJs08>s{RvG{V0sz3b3-G!EkO08L!okDA!o$PCBOt&d zB4Z*WBOxKEGaL0G`oegODw0tWOC-2VDwY9@Za&@mA4xp3<&mh8Gs6U3&R9qzD?X~1F!*r^swWEsf{i^JDa0Fh9qv~I%@BZ z>v3@3B4{Eb0f3JYb-6n8&$HRz|E!c7Y`Ho|%+Ai{xRhVDJPx>fIzrO(0WhMNxN=m3 z74=)K&+T>z%3b5t8&vBV)<)aw4L{<@ecSlb7<7t|Vol-W699Bb08touuvqF^_o*JZ*I5k zKfi=XSyabsrVDbj9mstWK8@{qD>*vy!2K{Xq!a}JM1f*B4#j1DaW$8QX%i=14xw4u z*E>;1rJqyXMz*f_P-k~;c{_N2_R@C&^54<~;GhV3FCLykR)@k%LecYZJpX#|b&i2A z4AmCU_aQ5BO1d}N*&96X9Iy9>z})}wa1hrgQL1t0p!Cxt9A%`Tx|t9k&WCj0(MjmZ|#=&24jrS!u2GUy+8SiL1uzsd2lb1x3!z z7_}L!gNs2`;#mC9cb+N$Y|5rpjfPHzm>7;F5L)KshF!n6Fj;j|hqu>tZ%UQB`mWAU zO=ei-P7P$z*s8)AuWC~*dKnEVYRO?J>0!XKdE2o;y>Gd;1PiY)Mp_$4^trFx`oSm<+?xZ#lI*cE5~!iHJLR zGP=IxIG`TSv&Xm|S%tO9f@}N7EWw3MPlK_k?j#cnZsc$E!-xrhfdPVGfv_L|=xtyB zDIWj`3l^Iahl*X40}hi~3>PX+LBsi0QHXCf2!w-q`6Kl$V+LA;Vb3PSETKziQws+| zfagK@N~wlWjt}@i1s^Rh9)f&&C|%xG;rELVTp_IBc8!S?@iZZ@=}&oVC&I54{&U|> zWLHW|lQ9FGcid4?21cdSZBzoOU|+&bP2EOJ?D+=z55Y zL-F}z4BPpKDx4bMJ=pE(TC4k|)F2@&6{Hf`*E0~!rC9q>?ltErsKE3;T9U&$9Zu|E z?G;fC#`p>D`U$;T(AR_a9z&^IOUNY~$gEg!c4PmYZ_+_YkfDP&x7^0U%*{!hXzLSn z$P?P7)oA!gnEBCcrq1#h-)K#%xMXJTx8k5Bp)+fsrciV$q;T%Ka3>n3eu###FaxJ5=@2B{6RmYZ5Sr(mK z5{X^e_b<=D4W;(PhY!PI2@wRGgn2b(d5;WO7JAO#R@j8TJCkhrVSHVhEDyNy6S_3` z2#a(3@R0ao`y#uUEw5|nV_k!1yD?KW;V50;ID4RHUR=*4sJ)19E1mj%p0?Hh+mXg1 z*jX7r{kI<3xq2O2sla z+InP5*3JVp^^7J9E?iYzYqjdEtHBljQKTL>K&f-dp|loe7Zv3T_UH2+^7Sa~Z#X$Q zp{{JL%^H}ly~3ddMF=Gv2+KG7*CL)L)a1*N89`K+2skvOtcR=ZaShUj&Xcqgfr%Kr z>EVMM+GY`U3xzkmhcTa}s5OGuPMLUMJUl4Mk8WF?999Rg6>^Gu3=?v%I}TdgLn_$iE(gpIQ7jpOq9%3sF|Jtd)|~MnTmNz|be}(bS>k2;DqX~P`8Doq zsU9ECok2)ro%Hu;X++t(I6+$bK%J*@>%Y!4^cgrUyzhYSoN$Iwx51pw$Cne*3N%e&fA<-*yV{+kl_b+Az=>{dcKP;VB%&! zl*^rjY{wx9cyTqdm3DsZ;wTk&x0R0?@_(-scJC4VhMN2z)c>fJ{|7ZD6q|yQ9rPc} zF#ljau}C!>J8I)>g$V$H zU|?Zk;XrTH{_pO+Nh(TqOl&b#5S6G21&4DW4pcm$Ktin!mfG|@XlCnwQ#`x~%>6Z` zN`;%7I<9_chAcdfCJ3q%%A?v3xRq3NJz}I_C7^Hr@LESv^U6PwMXR*F)9{>#A@yhNJ41fSdx z`FqgU$Xj!uqX?{{_QhV#P4vZ~@&!_QJH}O;LR@(%;3Akz*W_PlFZ!;rqC1*y3ao{i z=r}(Cf$vb*kV>$^rdod&j;fAFAg8ERwLZ-(bBJeD@Fs+?eB|~(BFiaqo>7pmIo3HR)x_Z_Ra}s=>QcN$ zN`g>q1G$hCmO7&l|1%bChc>4#b-3{GldjxYpTZWxZ~j965UwNQX*(vSYMe~_7~V#I zw@LkMaRl$eoxvxFO?-J#NqX{6t$zDqO^pv~$ieEHanTg2?a}EAu;h$?gAWSi(XDuz z%BhhBRikvNMb1RdWT=D`Tokc7@m9Q~^)DW`4k#RHP;o+nP@~Mf#;vHkVw@YIhemk- z9`_6(0rFSrvBa@NTily(QdQ~YtPeraoQ5Ms>C%r?r545#ZID+0F=WnEp9)S@~tX73$8M=M$!7{FNZ*s{%@a(x#%&LBXN!b=2bJUkV+U; zC#fycF7T*M#^`jEabi}KSs*dNDA9VBg!gM zk^!)D6UiJl<}Q!%nG;i7l<9!!Tsw8x!oO?E8h36|aI68r{2@O9`!#z4%AB|bT^o}TEh{fE z39xfR*;7(ao9mC&{L-#AM_?m!c$CIJ!XUp92L$uYH~p&#|A)nZfH&R{Q#BEF4#Z3- zsOy1IwmkaaDlRdd+2_pHyX@(cBUI<9J$#i#q-{nJSL`IUFCIC zLAMiV?k&-a>&*$5On9VaMwsc)3ECB$4Nv$om4nd43LW4DcX?@HeuVdP#hyJWBXU|5 zRY1;fRdLgDwsDGD9wnwxggq4zBOP)AScg48md zCO*a$m?D`t;^xcLKKB;+?~w$>(LK#s%A?W19TshrMLIcoj6=9_g=W`qMJZM%T}$uo z(<@M)+HP(xZ!1b{FlSr+thFQqA!unEXI&|7=f-1`hpljO8A@B ze0ol0-LzAo8aiE)?yX_3Ci01tEEj*D!-FM$jiNd!unwE~4CJDXCM~W70w& zJe0a7=b?7+p08~#bPV4WzXNf48FO~&sat%v9;+(UBrvk-kAxtRg!6B4-%b3vn|o9l z`tbveLHv%R}@E-fE|xBcq5bQ(ie zI*{Fo{BL8@(Q@K1Jkv{@q^47p%Tm!MaiCJ}hJF-5$gF!BdL9R|+}!ca!KIR8r26?* zbTr7?Bo0QzXKHejUy83}Ce=Ur4OvoWxsuIbedvrD9_wSD*!Bt|7v(z;i%OM!kJF>} zFyw^5BC@t5hi7)&4 zAg!&{xM5}Gtp&3wimv8JZ%mV36p6OXw z-1M+%IV20}iESClWCs1G>Uc~!CBP|uZuyIb(3g!$5{5FLd+Xsb#k(w_- zE>17OzhyB~7VO45@L+Q*H6O~7(s#`80P~Tr%5A&?bT3K!`fm(ri{rgQRa7=F*^_~) z&;1{8Hw@LrPG?DMb=;TE$aVO4fBqu=Rm!SMS_@J6RA6Dw|!oGF6iB_!f< z#%;n6QFX_;a?)WLBPvDvq=K5Cyex}bUm|Paw2(fdFh!gR3%4ec>McpO-7JXQL$!m# z&egG`gVqMGT=CQ8Hth}c@Ga*G<5qcm#k_i`&lMZP`0y?UTb-L1qndk8efnW}Z-jq7 zFe6{crL68KHhYoH*ta7Mb={JoM2p8=vM;V1bnnS4ct%Ls>%~&PUoz(GfzeXrR|v8l z$I0Cm*WC%S|L7VKbg9Fxu0CA%Tc8K6R(-&^|9R{|{Iq*1yPs5qu~`gt#Dfr~C%75Z zRMtbad5VLGN60YH-*g}&M^4I2AvlxxNS^Ln;-RQ>OG=zaw(MR z8ROW+5vH91ndy@{%0PG6KFV7% z&e-_^MYqVHnh5!$5yYy0Kr5Ej>)JQSt+k+K8zF^7KPFaI8)3AQ`C@gX2W;2Im*A6$hG zoDS!0!Qlj!;za0^c&3wRkn0;IV*$yYM+Z_zy@p2vjTsMy0xs zFYD{qnQ5P^H0({w*<$<4=yaM%J5lKLl?~rrMyx^-p~=<7a3eYfd=5 zvHaM!5^;ZVpz$PFTbDl=2VQr%O{l+naoP6-02Ff&`7xL32^?hC{K z(6kA(#NV@1g3vyyO|=fQ$8nq~!M=US_GIQXJ4JBlck!L3vJ&3tQ_{_&Z+5I1I$wXZ zL|II6jlBsMGOV{$-rVBgGT5PQ zx%i&NId3g=>&T)Yrx|$-Z~7u>bB?<`vhwcJNNrwmxjs@)eZg8>kciv(i{s6NDa z>dGBY7A(A=Lq^_5*=;TBKA35uxyEm2pv8Nm#Z<(8*HBg3qWQMtCW5zgW zCyD5=69+-nS#ov^FPl|Hh*3?289(K{=@eX9?)0h!;^x#(PPpPcRNLKhJ+yI|paaK3 zdPDsFENmqm6>(gI=u z{*{>jDohIKo5tKa6FvX0#>9NKh45~SNJneaRz2~9fpG)vMTr1c)%TY0UUYsTAB2nhP)ZHQo`pK|gm{k?9D4RD- z(%Fd>EPCG#z%$mERXvZZ^+fvFu#1YJ3xo^b#X-J0nuInKPLa#7om^k}iTd%=`Z-@qU6XlUT2tznBZBGLj{ z$@m%ixv-XG{e9T{`->Dv!j~&iV?V%gva^QpSnmP&9QDT+Nw2E8=A zi0BJ)NnPmsVjNf$w<~iQyM^d2-**xf?-=Kc^_-Ts2(0m{gmv;?wd^=nN?LW;-ky^g zS=stxZ$~kmY54w-FN5{U8w2qbz`KH0RWE;W{Jia6B2g6LAE(8L-G1XWU>Y&`#QD<< zl>|N{=BDVzDH_Xq5jnty6A(h8Iv6l~0*QXd{O(cH*!%SmML-794NMLh5N)o_y1p(6k z!Y+yEo=fV}Y^S1gi1fT;Y0Z$PM&=g9WFJ>Nb`SM>Mkm>M@OikrUI;MrpA=(0v#igL zv8)?6Mq|D>p8gbXFcD22BhR1z>;4#@&NqR?fG6iV9MO_uEqmKRgmB9#+)^WxBCUGl zrUzWhGVJPid^14F_dvp7cIEQ9;pl<4vghcj8A@&)4tI4qNmvQ*YQi!@*O89nl)Hr6 z<*E4d!ITEDK(R!K~%0GNrbQ35cxKAIfXAvbdtBE%6w&IHqutH!>p9D**xab#TZ$uUV1j?UTl z4?eG4eU6aPws_Bbo@82E5tdN9&_qkPDe#wex3`UiRASN)U4fs2%%AAv&@7%7LJaQ% zLahm8(+(|T=%lNlm*l)%j8fVTyU^6zT(u`A`BDaV!c&!`I_9LO5X}y+4)x{M6drGQ z`>Lk;9Qnel4^7YTt|Bb1;NkH(6d_!DwM^hV6t}f=@k8c>cds$1^CpW)yZ!{yc~@T{O6o z8IFP+(T9+Cs99KPH66~?rQL|Auol%Y(#Nm5)(zsC{vFXq;BLgNbS)N$8c#y~WDEs} z3teX2qLg5+GCXaikrzJ~Wm7S--5+wqD0aq1J{fV5Ep*Yai2Y zfedhs$fQJ;kdu1d3r8NWSp$I|#}HuY#Yt6BfmeNp=~s0fk&v?Q^4X9UO&HJh!Nb&? zAI2{j$@Gf%Lm#QLGQ!WZz{;MYdtcNhx#QI98e_q=(pDi(%eopX5fR>k<0{DQd!kEA zsn`pICkIaQ1o3tocZ0*_6_X-$8-E^-Wi7|&TyC9%jSGBD{B?w$B-Swk<%xC(W&71k z+)=Y?YAO0;I@1qM9}?Q>ax#w@o2+I{@bQyKMB3p70N3>?HbZOZ{b6AF0mni`7P&nF=Xmq zpP@m_i#sR_F|cJ9COP=k{_t-e#1>&-V;}wwJZj{Vcv$_l4|R{YcI!Bvy{uE8H(a*Ivz2WJYt}yK<1)Xaujk8I)deW@?k0V+s(`jzv77&{=OfpjuG_Li zrqX>ZG4i!8iGwjm;2?Rp^cN|HyWAyLaVYSI?_%y9($QB@>VZJ^5GG$q}DrdmojY;G1 z9-3Sv7)Ek}RU#4q*}O385s)YyL{ZCSN|wlPbMizvNlGH3tVt`uRyi!(5DpV%#&@7Ixh69hp1;hwxYC}P?`o(|KASRW-JZ6yZM>Dem1vJ+M5aL$^mR^S?DDu+ zzl}}?Ng+AnS3n8exS*I;E?lQq+=5SiJeyvk@3zfZBGaf4N&!LjU@O(ngc+Y?hIB<7(%9l?+S8FaBmQ z9!vxP@ni83WvDSApv#ZXNgN1Wt?rt{q-jRrYAUZn8&Xg<8^hR0`5b!+$cKwsJ~wz| zy{EXme5uEjw)J7~OIw-*l%cETSa>Z?z;L9)Y zXu?$^h_~%O`wj__&+GQ@2FXbi2mjTiig-va%8aubJ}-0?l55}`0tg5$^Vrdn7IZ)^ zJMiw}6)%@bmz+KS8z$6@$>bz-HZH+C#pLZV_#@h`+56kxb;tyQyo6M;Ox$NWCIjrO z2vLK~Tj+8z-XhlCRvKdEG<^Ru|C}thV|Elg)#;Q>6>u2pRtp;8b*pXKBTi-6e>M({ za*H;ABWvv10Y(gthh?JS?d_jOqXlR$e>;A3VxiKf+$7O#sM=9!4lUBS<=A8#lI>J( zn}9yR6$R`V`n>`wQzAp{OATxuTL6|wWz@rkI+ zhrZ~fRGA@2cC?j#F6|$qlkD#<l2ULIjQy@VGP+>u1**IVrd3B_Pk zFfV#;_EAbLfgq5Mq0{`5%))2WTJ|jfw&FX-;*5LO`wI zOzq#3K#HdP)~f58`|cTS?8}krF2X~cEu^ol3#Ejyx}ryjvF<~&F=qLr!zSW4CmTN9 zKSU9MABLi9n$AtzH8tcMb-kTqm0;H+sv8Tgn*+qlVAB)@c>L|{k=XJ0TS+_)oFl~= zkD994>)=5hQDbQZuBI7FvR;)%H{S>NsqQUDGcTS0$} z2m^Lm+AurfAH%RktclSpcfFJqKqgnxYf4=5N1UX+*wPcR$9K)A(47PLFu4e)xDsrQ zgO6zFbL+JQ-#{i8q*{UOk)OZgQp%CfH!kzsNygp?Xzg7MoEyW2;{=|ESRj89Exg7M zPT#9v_&7{bLu8U!tjVRN`}48I4DeuGaTiX|ys3|u!eyU*v9N->e#ujZcZR{^Zhioc z=boFdpq@pRN}xgvlS#-<{(UyBXZ#&Zy8nqW#br1oKlQ+wd9}NwJ{c{vy(f^ielM^P Z`w$`#tR}*atdtvKHYWd?7jc4{@n(E6lCAZ0)RjO0QhnN{%!!I04PYvD9A`CD99+N zs3>R{APfw2bPNKVS6Coo0umBp0wN+(atI|Un3jx)h>C@ZmYxC11bt1(%E8LW0bztP z{__$bDk>@l8U{WF20kMx5h>&Ucl_-K;G+G52@yyGK)?ke;sXB;0>A(O;>*Yj(*F%0 z0^$o^)R##T;J@*|GcOPSO#WR5U?Bnl2p~kz%fRLQ*SoT@m;&7Z*o15dw!#8}k$f!6 z0lr1M`4|AHtb)p&{H%ib)xv2{!@4k=_C?3QI6Ftcva9skC!bWOHxP zS{9ZNu@o#IH)S_aMe6i8hkj5t-KYlq)FCccrABwhb+Sd0QAm_%#byvIE^e`a?vIwN!QbA9TEg=CGT zX>xj7d&=(*%0Im$oGw*N3om7tBJ&$=bg~Nas(L&sDJ?o%pc`=bM%}w9OXwts`GjO2sXc~Y8zr| zQ&=iSN0^O6;Q=gw6T}H&i9*eU<#n0$O!DdnY%3huM@ZwdOm_J|Wdew1QVlQ<06~}BM1OQ0wN*<5dK>rFPk0_7ledI zjZekFDM7=9%q>nU`BDyOF9ifdMwqF(*!T;m?CtyNrgiaC8`-3}uaBq<>0~HB?v*pz ziYZlI+l;K7Nd1(pu#4vmQ)8P|z!Z}>l4KXoI7!9G(vg>FLRAt9Tb+J9&<(wT`xb0q zvz03^fY(M_XS&T=J$2)y6Kx{v40)%L5=(E7puV*1b@Il2vtv2KKnGToG8KA6q0@cH zrG!5YeFXMOyrnYt3H^%FX$!xtuu-`l;(Qo#alQ7Ei{Uu?AYh_!Uy_<~m$|z@mKEN_ zvY*M&{I$@G@oZDDw@+OO&}_Ft#HE+8r(X!iLpPRlN$8=6ivM9QB7^NH;kJH!e zAxO5DHB}q$-Z@humS)WpCwN+{Aa&;-to)SI z)n*xMV+P?YA5Ko1_Zh!s)F%~7c)W($cAO>|XE2bu-Wk7gA$f?J4p&{tg_V-?@i+x` z%FL%q@7deg6fUpkEpYKN`fX_jQwi{ll76{)l!B<=RLq$Sj*k{D{yvDagRk-LTBwKw z25Hs`8$70P!zz;8maEIoL#C7~DaLnmq%rz>884$64f6n+*#gI^B=aM5Wp&MZ+Ck8< z10iA7NJrI@0%zP&-Qen+l)&iTCU!A1xZ%T5FeGi6Rd8%b7|nCSw--@RKD;r2kenD1*cCKJq+=tNwagNMOtwbdT>rvIegQI z*Ahf7A^-aiaWg=fS&tvKt?zmUpHM_|5ux;LT?e2K@>VB{Y6Eg1P>8DUP7FjAYG<9- z1N#PUNd-v^t(ck+LJxp~LnCwX8iSwo-__z?!hv>>jevMja^d#g?_%#nx=~0~k^=%% zL>ceA{#;OueQPq^>H2PW9e^v!`Kzz|dE)1$_THMG?DHra$}0eTK4p#uq4qKkM~ueh zRvk6cV$;VxN^S^zgcYM;`C@9{qvX|5EU2gm0^H+^M!Iy%h z#RVWB01=U1n$Ld&h=9w12%^TL;*`LrQ4{~S7GJ7W4ERKR_x^nj;91}((T6VH<40|!V{ApZp_T5mQFVFaj0&uAjK%7(@h6Gyg!pmAzJ@2yh5WUsv~MRjQ^l$dXqg%p2=|!rnx9@numvfWcSfXVD7p+ zjsQjZ@YmPPFRkOzC^(r@wO=;F_UnV0|x7Xn6C-{_~?Bjs>Yym(c|Fh zJA&^TWQ^<%P$AXQG}z2Y$cSZlkwcr_IurCkRg+0db_61p)3#xDtnxw7W_r(r^pEYD zS}!~rD=09ZiX*YUZ|;2O;=dhFj5GtO=JylgZ9a z?26StS=B;V8~tW5;#s+6EGBZ@K`1h9cF$yVVs?9)RAF#ClcLgyTs~^Qy6RIowgqV+ zdk_jd2@AVMA>UdyD97A`+;+k+>D%1m=wTYZHj9>PUD8`gMHqYFcP2S^f@s&o1GcSt zrFKoRM|qFdb9pG0!srJ30?UGExbW;zl=E8*g@y7lptRMY?(*A^3VMCgV>uy)j`LU* z)U2^3C(~vRs%B`Jx!Lx0n4>YZntad_nrT9Ka?UAFcJUG|Wi(|2GVGG;r$-pmgiGtys^nf)8J$s!Hn z&AwXCIX>jB=5IeG+4C`dTlI8C`;6ul7x}hm*K=`Py&4r=X6rIxv2!RD|{s z)DqtWIl9BG+S}Y@%JXb;U?jW|m(nWD#AcRYZ)i9C`9AU0t(d=>uVgF(6u|`&!&OO)fAbqVd zcPyyJ83(JmYiWW^!3!BUnjBm#zRdS79HHYub|7S^5H4zk&mkMpVQ@_V~5(fjErMF2T)2g#uujK70aB=i-rDcn@I>?|sl4csMfi2bOhr-Ns;Q9u?)0k-a zdVUmaSqsIr+RL}H!P(_SuyS^GGuEQPDIp@mjeUK}(~piH$#5;RyI_ndhh2S0zG8Xf zd%3R~af%!axYVah8MT)zyd)3R@{|My&-~=&1YMC;Mnm6Q`RdavE61=-R0?(^GW(q1i~^TWaqlr=MRYCi9^R@-9~UnmaA~*mfm9R;^*9 ze*tpRQi*7+=tdZl4XL8*L<6AtPif)X_8o5I=iyy3UcUVr4@C6NH*^bgA*0!2*t&}c zkqSHo!;*gibCY!N2Ch7qF8(W89Z#ARu|FlI$YRX>7tcZU+jgm}j8dCD;T4M!d&%mQ zO0eSBIYoT?OsZENme%SYSUZ2X35_is(H_TTCuJ9l?@WSLkj7KN3lyU~pWfc^c;&WH z+EPFh9r4;)M-OAoqQy7!ln2VBB;6B#^}3|RnZxoFY#IzH0SPXWbo7-&HGK(QRH2&e zt4r}Pev}{^X)r6-`vtsX%c|-Sg|yvlbdIIsnt{Y6Rt1RaEOpqp^E9Z2Ud2@qHs(BO z-^QLXiY*pQIv9Z)`mFbJ$4rq_@~wr%6Jy=o2Z6qJ6i?o_UFa%c8nGQm^N@}A#YFdS z_9e6192WgGcP(NvClgGRUiFij&<-8jfxQd2ryaqs-m{eT6D26MqTh|0&sAZAzT&cx zC$;l)N#xR_9(ee<+`O~wmvtBjHa8#*s=Gt)S!~Kp}6zV$-YTuAESGM{bmHQH&7??hA^86hUL6!(1Nz~m$(y<#vkjEl2Qdk(s1!> ziq&=Dl5!tK_3SvU50{+$7P7;y&)5DnaQ|sgd?$ilHz+#ssTr4~P-4;~y!ioB%I__a zG!#y`Y9dk0aDZuiCOsi z!KzOX_r$>R0&-Fsu^}D5VI&7|qGRnPxR)K{UAVi7RdA4j!T{ z;%mpZMsGDRPFucvBNyPn<-S;3)^|1=`Ze;|<$NT94D7$AjrCn57%m^}Vc5cQK6y@7 zv!inEnrhPEOk4K-HVo}t^x`Ee3fz}J^rD3RC#8SW!lj}Had3)DnEjj6KPm`x)I$wd zP>&8Ba@z#AsgV9|QQu8p;p34mP{>f6i3`~xxf!Jy9$00HQHUg#CX;ERhTMqtO(*gm zFRn)Qs}Lv;|B~V%d{66;5cE5!03)SM8oV3%)#;V_hLj$=oH1xaq)$i$9PAkJo6duO znT4d@aknEY_#-r>Jy8fh`+n;C3sMHq%h!L2e>v^HI_e)8^)IIl1SRI5zfjs8s{c!A zL8H^!JylW>F}o}LZFv~Hffc`{g^7i2N+Zz0JQb_bpe<1k8dUW6?Y@gF9Q2_+5}Ek{ z^Hbw8hSd_Jj3&Sz@vdk^aujCdey-q)QICfSjKo^XLA+C=6yMu8Q}qbGexEPm)QL?8 ze*uZ$FNBirS9tneeDUjU2&B(c^K+vntP=YIsA4J=uHHDcSaV-HnM+(5*xi8tQXmAuvb5PW$cu4Tk z6!?g?E3$kPT8HYx`{LDAiXq+w30i7KKbh6R4r1=g{%A6gzV?n~!Q^1Sb6VB z*94N)*%=qh8^ua#*v~j?ga~2|C-UbVtYa6elN8WbBJ}mgi;{3|_Dp5MYFQSMkmWr| zYNT_%`qOUWirKg;s-=aVmUaBP@J48|$dP||<&dF!yLjk~QSzs~u^mn7)U45$VH*vr zwO^n-{<@||1zd5cRQR;${7w(G=HvJ{FqEC)0o~Q(bjkC%&^$4jt9O*3Yx<)rp#fIQ zy6Tn$O&;%ed#BX{PbJd=Fe$|5v+>TyQK6RZS*IraV~hUmo>p=#fPS$i;~a$#f5!!( z?2cKA6uG7iBlq*rocpMu3=L|kzN9AKOwSEQK8lz0{hQvq@?N2Zlxw_T&yE_Q5ClW6 zHRK+_;-?aT&)ckr2}4s))J^kyi-lYbz98KwiZvAre#?HND>ZyofywP#obxw>%tf5` z@qd`SLo4o(Ix^*OB#dcO%%jX`4GErn1`7hKYKhNCiY%L#-XS)C$f9cOeyy=OYOZ98 zwKaoBipXg__K7o@ed)PG#LeQv+$+PlQ?GKpAjzxD z(!04P`4sM?v$$nr1RHr^I&RbTdYAyHWl^@Lz(UQhE{JCf^^8Q{itlRVJ$fbs^Mh$G zVvjKOJpgNk{mIFue*?N}vFXt+2Atk)6MdMZaSU+<`-;XeJI_7q7j*2iqc zBz(GaqN)DztyLm#@3@9gzHFJYti|5tNXItut)Pm)tduGnY0zdr)h?>?1t`{zR<9e_Fe}pEXR*P{kTYvD^Eh{pU`8Mf=af#f} z+a^LxBv0)_QICgGNjqlj83? ziGIgMl05#C<}ZLJNQ1zcj>)be#`qbhIKAl5dV_gt2Jx1wZ;llu>Mp*_d(b|O6QP>p zAVzBeUV^=2UfDQ_Svp~PnHG@>Q@9b$i>-Q5V4Qi5d3qkvr|+2;ixH9M!k=+<*FVN$ z9z)x!JhI5GF7Oyx590@mKQ-oa>7>+}aP`~7Z#B)eEovI`*`YgH?IXlt-62SkAouQTQk!V2W#JIJR}2fo-gl`jcOaOQ+7g6ZvRB^kFMIE4S%vH zbb9+MLP-;ep84Srcsoq}W7wLx(~1D=P<)=~*1r4@5 z*|bioaQRcSw`u$fg)Zt5FV{3itC5DPCn5}>Ik(aRO@H;Kt55b5_DIgjrtE9|AwDr~ zWX{>Kt3v_-#%0m{;ogMn@51I)24wcAyzSyd1kN}KK-+S zD~i0TOPRJsjhNvYf4s_w6ZQCvNmWWYyaVB)E9|s^FH+iyLo65E@&Y(c)a@^zA+r<6)=+yVp7Ite+pw;Vt!K0_dF)eW)aQUNCX+U#Ujd!5YN_uhg9Gdu zZ_Vq}T=;Kd`AG5OfAZ{KIfYM71)J^u^4qO)bd=HayL+ZbNoe)IMocE6uq35z!(#a< zUFls>N%wvBZy65oNYo_({coqH3O_B&4)-;e6@kN>Epr3z~p4l2ITV}HgF81tmt zGC6_VoT!@6Y1&5E#%A+fU|I-p8j?b|QB02{8hO8*F4k`h7J$4Q(>3IupB=}pXpLs391R6%wd=XChXR1NwseIuTw$F-`~b2SdQ05=H|KBJ3i;}Np!h_ zZ0$#$GPFnqT2P;&cu;Nl{+PK}g|4JM1m#o`Hv3&M1;cX=feL+HUAI8-!Vl&3Pm(Dj zBy9RxguC7I-IGiCe%+Vn0u)%K77A~f8PhHvHnn8R+AqbWC|ouc7MCsp10t4E8BaSF zyMU>U%j}69i~5A|N0X`enKNmGm-*-ueXXqyhW+o*Y#Km>+1FQUKx!21?-z_SCaVI9 z!rtkJKt{^L7|0LC1IwM|4khg7h%g)g&NSQ{U7xM4KPh>NzH-K;T8_7~t%&H=8>5Nqq|+A_x-V92 zOd&+rYwAb&*va#Pcxe5+TMU~huX1V+g0vg&vHTlRCIyKf#~qlp-tM65qO4MK)q=LP zrZ))F0RAp5gpQ>VslwGId++tNKXMAO4emv(w^-(XhthXDYbvM(`-Hj=n<)kLuf$tx z(0$0qEFHQyM5)j^`U^1EQcx`F^l`@>^u)xE?|cXsuD($A$;=Q}>`Ekkc%2tuE&|%+ z(0Gjac?gRTJDr4Y0?(PiA{n|z|z@j>Akz#JrO+dnMQMSS~degTXiqU_|J>_rwBGL4Vgtf;(9_2ETG$V{yp3{k(|1$tA`fAgXgCut@8#$xT`|6V z+Z9$?{&>M6$k;KHeyw%j)Tw7-lgEk__u&)XJU`F4-b24_1QFI3Sxk~Z5-x@K=SKV2 zc1{5fU}p-U5LHQpmEj9^6b-mlpYRo~^<)vC+c|uLoRc3>|4Kcyh`fuqmn7b4 zfMl0PT}7sLQWBvtQSN)YZTkm0r;ki0>4C7I=neg#W07AIp+S6d1Y}BqmPN{cu7EOj zmCZU5*e&f-@tk9WP+5_o1D5kOc0Gu`MJ&)Wc|I|sYf|lyT;n#>uEK*EM+XLWmII=8 zFy9jojh$X9RZFrsF%K39nAc9Cf%%eW)I$PGhAdU)k7Mp9n`+$EWIF8_*>#2#lzy;$ z@H7XgZOCoGE!H)rE{=gXyE5>HQY0K(JP50TK6oxMyz(iJwh0>Kx*mhTTpb$(b%6&yn5-@fx~xrtX5R3 zp~D$jOdt5Vxi+0V{oly+3cDCO)Ar?bOQn~Y!lK{1$xyd`v`!eX=Rf3ue~RFsR06Z4 zAw-V15fq%63Ld)kR|xFGv1tD6bOxF~coQ|-Xh3+pGVn<#PxaO_B-NC|{x6{MIiTlxc#>VF1>EklsT>3R*nc0$t`Je% zZ;;+#;2b>Dri?i%_@EFBF)u+Y&)FU7ZN}7{Ai;;BaV8l`^{upFBMqU<@pGemcevl%QrvrFeW9?hy9Ux?9>PbVAZj!b@Gs6ZrDe&A z;*xi4wZA}A6^s(GTD?;IM!VL;2(E(@*%LgI$(k_E*gD}jo`^reP~tx5s;J(BvQnp5 zdCDtjTOra0mPn&>p2UVK%pN955=*cxmLU#AAJ`=H3m3HedZt_REmf4c%|JiJF7V1w zK}nwPYe#G%t|sy2nUFsB0j5p9)s&BTB|wxA?6i}zDY?tQp#@isAZGY#HLyFVwJEF& zb#NrwUJKJ%)b4FC!51y;e)2`Ze}jBFe0(E#h8FwVE5%k2)6p|%mN*N#uq9zHE=aVJ z9?)z$=g`5;jK*{qP6cojOaJ9S7s^jSbaF_QrXT&=EaP)A2g+&}UeM}6(9KliW_Q6i zuKPd?tJT!AASUGbr@f^C+-yrQZjx~sz)5?4em(bN27L)p9jTdfOUr7TSV`h2p zy<0K!4z>Ga@LTHKRBgHy3T45Q;Jy7lCaYJw6uo5%5;m)v!>jZo+A66ZiqUMAWo2hf zaXuP}7iD-x>Ze9ew?G#4ftfDpW&-jy_DSUcvuMfA3tVdafiB##7x#MiU}``(=!jDM zw^Cb~NHd4+1PYr;1bO{mK>r9YR$q+I1aOfTkI$8b3zhNAlT`$48QeSFgLkCHuOpr3 z8i0&hnXbx!KE?4cgbET-;0(~Lbop{Ns;ORaD%BYu+1 z$X=pgzB)6tnaJMcS(?#j|M6tU!HQ;@s{78Y4UyAfuHBE996uvXOmP_Uq-bWeH~;_+_5j>20n`8l z_&@?6J^=xcfRK=Yhy+AJLQG6TLr!rAL{D?~ES4IEqoJbWM_5q6dV=il+)6!waPi=Dh(1l+;HJ_o`BVeecC!7c~W_4Uo+ z01|L4QV<*~Aox%$GDn*ZNJD2r#|<#hLh>aLl_n6OkOK)g8tLY68bBF#Ep2cQ6|P`~ zSR9{zqiR?s02poyAXYcy=1PAEk4O-R)NcfkXal%G*q17+7>*_gR`HQ4<81j`1zRR) zpC`MCc<|xV0YF4xd>wdQqlUJi&`IYbwyctY(>9h#wwbTn^D@ooWsIWed8l5LLv1zy z9}o@_t%uiHQo0IhE9#vk=brp@&aCZ@w>q;`W=B05l0G~Y_tZZDS zl1hgZfud|OeWkloj(+Ylc3X@GlRm%no4J2kDJ(#WJ0L(x)k~BiKo>@e`=%RwwLJho zx@+c3Qv27+m=aqorn_*ws}0Kdse%RR(Iv%*C{(B$K>`uxC2=*EllsKOwb?V$uThnVO? z)|u~3FS0L!ij3Z#1i!RC3py-!?V_k(V*XO{rFmxKqdUDs=5RuMy&Jh& zaK0X}{kh}i_m=D0rH1}#1tnf9-WO~o6Wzjz`Iz85N2urQuhY(3fYC{Lpci~_^?U#R zO${Eymz}%2^0Y0>_o_rbiCyko(HrSaOdJ-;TkKuPC|ziHHb!;fSm)Z0uhy<<>V3z!=jxC+aNeV+*?4N z;8K_Yiu$>H{@TkFV)?OGNjRYQhvMSAsA9OCn@3Sbo>aMPhBLK56sUoo&04>P-?($r zkr=fMI+^ewV}GVOSf6Psq^iyoB%M}JdUNIvDQfzxQdPPK(Icsg9oaOazUw!jpDyKF zQBZz&Z<^JK<`3-1PtsATsUv!WyoE0LOi6sk)@~(nMFgYcD|QQT^XCa4+T3E-{!(zZ zGg==@1wF&(s#*d@pNN^RKdx{D>y+^5UbRy@lN)}TyDv%Ao$wkR-`4!pmuRo?VsMUb z2%*+j=L98xAYl1$vle>Z{0LfRa~(=LGY1>z{&oFAi7lxsNwm|zKi`nN){%lz8xquW2%ln+PrUD6{Xp{hw z$4uW;gmKjG(MjcOY?Vw7q|p%Xq3>9`)6VP~Iw~zHZDw}f0Mnl^?2x$8`>BIceX49k z!I>i6oPKVxlyz-R%QIS`+o{HMv(;tqEg^T3&Q_ybD3^^|iY_CioR6x#<}lmJ{@Y!6^{ z;Xjtg!KI|a!{-38Lqt`m4Q%cH!9P|alyLskyltGB*_c^$RvZ5i9hjenfl?|3{Fatj zaXHNLkherqmKtfzURWFdNM&4oQ1N8BTOrdX19i0;cTsCi%H}R~b+;WsL&-O#-kDJC zkXHPFwznnKJ%uJw7dseUGBd6uS4}&@ zme`&0-D0Dkm5@$BHb@DZ0QjE-@Ua^9U;NlU#wGxQh*Gn2D68216F%-g;adbA$C3G? z^DN8;l8Syn;>vvVvP>+vCKkv|t247p)C0F(2s?J(1o9!1THYZ?bQ7!VucS3rpHSZj zqR@h4!$x9@wSF{%_)TNO!)RwwxMb&5S2CA|TquEgQ2awy^}hv``72j=Kzu?1g8!-L zUxB6MpaP4k7=R#R%J|gcs&-x}?3{-7h;SONh}8OC@37+kAsGTCEXi1MCu9g$u0YHC z*C$}>zNEjc@9WBbHe+=a=OL*8Itw!j6M&!H`4Qou^Rh~+#c}-ORn=pdnW=e71~o@J zF0Vu%b;pjNZvHD}&u8Q%^ct1W=+_zKc23J$aIOfguV`j= zF-7Sz;t-Ce>r2-vIs*SnYTTbDUUQosY2#AkiBxW-_{KE6zQs1gvy#NeC=`5Af4%-| zW4-;J;mY9YEx;Ol{jXrSZ~Xm(q;Ld-;P2h@p99Qvu_eVbDhXGBeffNk2r`a*YF zlJYgOTXZ%k?+O_uYda=T_Aa8dfxy|S3S_QLq-G6jR@_f1C=>>jEM_cA>8 zp5Nyw+PcrUQ;yaWDom(~{O$WnYnck8X5izLYq5Zn>r!xE!0WZ?Jbs314m*(dSU^B_ zxIUemzV(ZbVZ>qeR7zKz%MWBnE^(Vd-H&(s>EGKp-qInbqMy~B@Yf)a1+}O;2!F$X zpg^wp7;?uWb^iepi++9(7VUot1s@mpU-;tyC^@jmw*x67!c&Ut*{2}AVMoXRX{r*( zE#Or=bj$}b%;r>}AHeN-t*Ch9O3isNGm#wQ`cS9f7VvPmCyDWDh$T*zuzujz#Z#Bx zgyQ#(g8B%`^2;ZJo?7Gj^%<2C*}iB1-U1dFh>t~wzqo^aP(xZzBnh1Yw!3Vruyh2Y zJ;6ghMoUPBNkuWO-dEp#f--U04mlelGkNEO9wQ^%7YV|DH9bP2 z1WUbH09GXhb$p!fDhV`bD+65ku{~wA*-vi3FG>@mK@Z5}hL~%B_v{?Z4&^h2(cy3_&omL9FAOGeLK60S53N)6s4_S4ArO@450Igj5F0{hBEU<{-IBVCsoM{hS|AG8~NkM|=WNn5dF3OHnD5bg@2G z)6%zF{UmS}9vXh<9)`l3JS%^QRX^sbC6dKI=ZtntQnBSs_UG!aa@M3=4AowD;s@oxI#g!4N`){lnVyk^F(Sv4b^@NXxyx-Dm$>jC%wO4J{6daZ z^qG@tVo>Pek<6o800F_F?9SET+l^*4dHsq@5bnM}zO^6$&&O zDnznw&NP;#t6y&D!tv?Km5CdXz;lI&k_IFi!r|DgVcNN<=3tmj?e!Ng1FqDWM zJ_2tKmrz4ssOoZA9?!>A8&)F)4>WCS$jWZutzo#BljlR!(+p3=p{ItM4l}JGr8q+0 zukwu-Eo&bMgS&Df@X=mE2M`)zB%!9*-m>I?B&+;`SdCNaX_bm+Zv3Jq8t;vs)Fi~R zr=C4?ui1iSkM}`VoCPsf{Q>YoZlPgU1^Vk@?X|ZX36s5ogh_7Cki?o?PsMHIgLDjy zw`?I6S}yeR%Njf^#0btXUThQpvkm;mI)FCImz}*&$3?FouulQUTJE83XpV;5hmL!> zd2BdjXBc1MOVQ=tlJ9yxUslZ)nhKsK&rz?~0omMe+pEhf|KP0v@u^|pl8L9lrIz#k zzSRKn+Qp85Eus59zPpJ#m)!FolwA^YOMR!UzN+oHqWsxGtq!su>0QJGUik_0-#Bd! zLVxgofXnTOv3*bq{V+k-g%qzE_3+64tpQUbqEaDvc`8@=*?>z-G`f3oii{854<jQWqmA#{li>;-4KWu7A)~Q zVjy0GC&XmEy0NqZp5+lT;N_GY(;5IX_F<=rK7sIlN7fIPxICgHv5PfN`sq#G0@k^pZ;AlV-kyZ5jWguWLwLQ^Ck5 zs^r>!pwgDh-yF+9CsHL(mg5Kt5-A{^1}vy()F7WI@f%B~q6jGI2q}hcBRan?s>6yX z6<$vLlRA*`Ya~}S6K67l0jdyvrY3Afl8nujlg}>AzgDo)7V_A^B^YK-cCS zAO0k=6s?Lg&W&-ps#25>X#ee2t73bSCX%qSmoz8m~Vvl{41L{v^3#+Wy$5=AQOkqXP3#d9|l@A_v|lk9&sprul*X z)3N7;KF|FU9m*UHO(Sc_C{%W8kDothe`XeQ3n1<2Hew;e^^GKQ4kVL3J7hEJ@L~6f zRAAZ(v@vR~Nc5YM>&fqPd&|gJSjZjNGMo7PJnsD>BlS>K&d@J67MO41y4ou;J*Zsw zx^aRck1vq-a-Ss+r2Gvw9tHi()jraYrl%NV zD*g(l2eIv+J|t;$U+*)*a8u*V;p@Zh`|X}b0CLTs#tz!D-% zXxV1GfsBHs3}Hxa#G#vj(W@BfB(UOT6gyBdTtgR1EP_r2e_Cgai2?BHmgKds_eOX5 zW1^q;oBFrEirXcg9;@i%=3WkgaXT6p2-Sa60xeoM3tP2p?z1lSA!HJS8GN?xpsYHP z=&@E$vz(;Olcg102hh{KWOW3?0b@Q1fEgbtgsFx(Ma~??o8fr39`z2idhJ@ZdTs93 zCqDhWiJsd;!_iqHAUT@V@C>rT;4M|5#`)iB%4W8JkMmq3S_^FkF+pch%Mr7_kA@nM z$8XSu(;u_SoIYCHk)3~n@90dv>3`OYaaXaQPRZ=)^9B2Du=~7{8nAMt^wiA7_?F)Z zewYpeorgQR>Gw0sT7fLP6%xtLcS>-|1{DYp&RS!_1&$^u0Pv5yRsxs{i0n?MP z_XH-MkK)@AznR+E#Mvqu!giPl?LELRds$6i=-w?j**Wa+ADNm|70OVls+o=euskN` zED&OLV+({@nq~$eZA$!S>{AMD(J|%6i%*MmGJ0g8I5f4*gud=qIjRos2->=_s?WAi zGcii*zy_&~MHB6s=5w(LYApJE2e<>(y1>3mBa2QCjfY{O(=7MSh$`U|sn6XKNSP zyl+!GIkTlh2ZC~?AhvO3+BPdAnMOk!NEo28&%i6$zH2yS?~`@BW1S@|ny@0c!)MS% z1#K(fKE2P~5Qm32y(1X1O7y4Xs1iEscKwl^mUeU8izRF-sc>OT`m~zF$C4I;f+O=HSOoE5UX!< z1(7noz@^jH-U7~USz##dkzE~@+naDsdD8@zVICW9zB`>i$xwnr)*Wmz9Yz!UQ8*x5W6bpZ@yHhQU?PfC)wSe2 zIXvqz5h?vPv!}8~31Huy)tf&acMf+PE!>s@qmRm?l@pO@3nBJs793YAd|6P6vefVB zLhb#`c(|v9UJ~JN#TNGqN*^j_6Lmj$iqYZWE?R=GfkMY=3SE>_nwfF z)LP%7*moQT!_8h*EoI(Zry`=)Qn=eQ1Vsq`g4&HZydu#PZqyu-LB~5vAS8F z-<(@kCQ~iHBYEzJI(;;Xsxvfo6_Q3UO*RO*^(Lrx7h9hOKjY8spO`EEt{ zEW;L?m-d2TE3Qmqg9xU611ay3D|Ip$XyBu*4A6ftgU>=m$Rrq znR!>bW7J=QwNbC{x<|v~p_~UrpzXl`CizuM*ja{l6ONQK|qAtjsoAq|r<}-6B&Eg_TLh8!t5iY|3@Me|Gb#3V4MM zNyaaZq^x<;5UyU{k*97<(k*Fk)k19oK7T*MsC(1j`AzefCMewlnCc4B3oQ ehnta=%+6Cb_Mr7w--OHh;+%?T#qb8)F8n`P8>is_ literal 0 HcmV?d00001 diff --git a/public/demo/quarterly-report.pdf b/public/demo/quarterly-report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e34b678f0d070a64f1c420968f7627411a9e5120 GIT binary patch literal 40644 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 he=7o>=$0b>kn+!wNBH5VI8eG-487 { + fs.writeFileSync(path.join(OUT, name), buf); + written.push(`${name} ${(buf.length / 1024).toFixed(0)} KB`); +}; + +// ── Shared look for the rendered documents ───────────────────────────── +const CSS = ` + @page { size: A4; margin: 0; } + * { box-sizing: border-box; } + body { margin: 0; font: 11pt/1.5 "Segoe UI", Inter, -apple-system, Helvetica, Arial, sans-serif; color: #18181b; } + .page { width: 210mm; min-height: 297mm; padding: 22mm 20mm; position: relative; } + h1 { font-size: 26pt; margin: 0 0 4mm; letter-spacing: -0.01em; } + h2 { font-size: 13pt; margin: 10mm 0 3mm; } + .muted { color: #71717a; } + .brand { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 14mm; } + .logo { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 14pt; } + .logo i { width: 20px; height: 20px; border-radius: 6px; display: inline-block; } + table { width: 100%; border-collapse: collapse; font-size: 10.5pt; } + th { text-align: left; font-weight: 600; color: #52525b; border-bottom: 1.5px solid #18181b; padding: 2.5mm 0; } + td { padding: 2.5mm 0; border-bottom: 1px solid #e4e4e7; vertical-align: top; } + td.r, th.r { text-align: right; font-variant-numeric: tabular-nums; } + .total td { border-bottom: 0; font-weight: 700; font-size: 12pt; padding-top: 4mm; } + .box { border: 1px solid #e4e4e7; border-radius: 8px; padding: 6mm; } + .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6mm; } + .tag { display: inline-block; font-size: 8.5pt; font-weight: 600; padding: 1px 8px; border-radius: 999px; background: #f4f4f5; color: #3f3f46; } + .foot { position: absolute; left: 20mm; right: 20mm; bottom: 14mm; font-size: 8.5pt; color: #a1a1aa; border-top: 1px solid #e4e4e7; padding-top: 3mm; display: flex; justify-content: space-between; } + .big { font-size: 30pt; font-weight: 700; letter-spacing: -0.02em; } + .mono { font-family: ui-monospace, Consolas, Menlo, monospace; } +`; +const page = (body) => `

`; +const logo = (name, color) => ``; + +// Dates in the documents are phrased relative to "this month" so they do not +// contradict the fixtures, which float with the clock. +const now = new Date(); +const month = now.toLocaleString('en-GB', { month: 'long' }); +const year = now.getFullYear(); +const nextMonth = new Date(now.getFullYear(), now.getMonth() + 1, 1).toLocaleString('en-GB', { month: 'long' }); +const fmt = (d) => d.toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }); +const plus = (days) => { const d = new Date(now); d.setDate(d.getDate() + days); return d; }; + +const DOCS = { + // DesignCo invoice, attached to Sarah Kim's mail. + 'invoice-designco-2026-089.pdf': page(` +
${logo('DesignCo', '#0f8578')}
DesignCo Studio GmbH
Torstraße 112, 10119 Berlin
hello@designco.example
+

Invoice 2026-089

+
+
Billed to
Meridian Labs GmbH
Attn. Nora Lindqvist
Rosenthaler Str. 40, 10178 Berlin
+
Details
Issued ${fmt(now)}
Due ${fmt(plus(14))}
Project: Website redesign
+
+ + + + + + +
DescriptionHoursRateAmount
Landing page prototype, v3 (hero option B, asymmetric grid)24€110.00€2,640.00
Design system tokens and component audit12€110.00€1,320.00
Two review calls and revisions4€110.00€440.00
Subtotal€4,400.00
VAT 19%€836.00
Total due€5,236.00
+

Payment

Bank transfer to DesignCo Studio GmbH, IBAN DE02 1203 0000 0000 2020 51, reference 2026-089. The ${nextMonth} pre-payment has been backed out as agreed.

+
DesignCo Studio GmbH · HRB 98765 B · VAT DE 812 345 678Page 1 of 1
`), + + // Hotel voucher for the Lisbon trip. + 'hotel-voucher-lisbon.pdf': page(` +
${logo('Booking.com', '#003580')}Confirmed
+

Hotel Tejo Vista, Lisbon

+

Rua do Alecrim 48, 1200-018 Lisboa, Portugal · +351 21 555 0170

+
+
Check-in
${plus(9).getDate()}
${plus(9).toLocaleDateString('en-GB', { weekday: 'long', month: 'long' })}
from 15:00
+
Check-out
${plus(12).getDate()}
${plus(12).toLocaleDateString('en-GB', { weekday: 'long', month: 'long' })}
until 11:00
+
+ + + +
RoomNightsPrice
Superior double, river view, breakfast included3€486.00
City tax (paid at the property)€12.00
Paid€486.00
+

Confirmation

Number 4892.771.433 · PIN 2047. Show this voucher at reception. Free cancellation ended ${fmt(plus(2))}.

+
Guest: Nora Lindqvist · 1 adultBooking.com B.V.
`), + + // Boarding pass BER → LIS. + 'boarding-pass-ber-lis.pdf': page(` +
${logo('Lufthansa', '#05164d')}Boarding pass
+
+
+
Berlin
BER
+
→
+
Lisbon
LIS
+
+
+
Flight
LH 1796
+
Date
${fmt(plus(9))}
+
Boarding
07:55
+
Departure
08:35
+
Passenger
LINDQVIST / NORA
+
Seat
14A
+
Gate
B21
+
Class
Economy
+
+
+
M1LINDQVIST/NORA E7KQ2R BERLISLH 1796 ${String(plus(9).getDate()).padStart(2, '0')}Y014A0031 100
+
+

Be at the gate 30 minutes before departure. Hand baggage: 1 piece up to 8 kg.

+
Booking reference E7KQ2R · Miles & More 992 004 118 221Deutsche Lufthansa AG
`), + + // Conference ticket. + 'infra-summit-ticket.pdf': page(` +
${logo('Infra Summit Lisbon', '#db2d54')}Speaker
+

Nora Lindqvist

+

Meridian Labs · Talk: "Rolling back without rolling over: safe launches for event platforms"

+
+
When
${fmt(plus(10))} to ${fmt(plus(11))}
Doors 08:30, talks from 09:30
+
Where
Centro de Congressos de Lisboa
Praça das Indústrias 1, Lisboa
+
+
+
+
Ticket
IS26-SPK-01827
Includes the speakers' dinner on day one and the workshop day.
+
+
Issued by Infra Summit Lda. via TitoNon-transferable
`), + + // Beacon launch plan (the PDF in the Projects folder). + 'beacon-launch-plan-v3.pdf': page(` +
${logo('Meridian Labs', '#db2d54')}Internal · v3
+

Beacon launch plan

+

Owner: Michael Torres · Engineering: Alice Johnson, Nora Lindqvist · Launch ${fmt(plus(8))}

+

What ships

+

Beacon replaces the polling notification API with a push platform: webhooks with signed deliveries, server-sent events for browsers, and a retry queue with per-tenant budgets. Customers on the current API keep working until ${nextMonth} ${year + 1}.

+

Timeline

+ + + + + +
DayMilestoneOwnerState
${fmt(plus(-6))}Load test at 3× peak, 48 h soakAhmeddone
${fmt(plus(1))}Go / no-go reviewAlicescheduled
${fmt(plus(3))}Rollback runbook signed offNorain review
${fmt(plus(6))}Canary: 5% of tenants, 24 hAhmed, Priyaplanned
${fmt(plus(8))}General availability, blog post, changelogRachelplanned
+

Risks

+

Webhook retries during a partial outage can double delivery volume; the budget caps that at 2× per tenant. The old API's long-poll clients see one reconnect at cutover. Both are covered in the runbook.

+
Meridian Labs GmbH · ConfidentialPage 1 of 1
`), + + // Hetzner invoice in Receipts. + 'hetzner-invoice.pdf': page(` +
${logo('Hetzner', '#d50c2d')}
Hetzner Online GmbH
Industriestr. 25, 91710 Gunzenhausen
+

Invoice R0012345678

+

Customer K0987654 · Meridian Labs GmbH · Period ${month} ${year}

+ + + + + + +
ProductLocationAmount
Cloud server CAX31 (beacon-eu-1)Falkenstein€14.69
Cloud server CAX31 (beacon-eu-2)Helsinki€14.69
Load balancer LB11Falkenstein€5.83
Object storage, 412 GBFalkenstein€8.24
VAT 19%€8.26
Total (paid by SEPA direct debit)€51.71
+
Hetzner Online GmbH · VAT DE 812 871 812Page 1 of 1
`), + + // Quarterly report in Files. + 'quarterly-report.pdf': page(` +
${logo('Meridian Labs', '#db2d54')}Board update
+

Quarterly report

+

Engineering and product · prepared by Nora Lindqvist and Michael Torres

+
+
Uptime
99.97%
+
p95 latency
184 ms
+
Active tenants
1,284
+
+

Highlights

+

Beacon reached feature-complete and passed the 48-hour soak at three times peak traffic. The website redesign goes live with the launch. Support volume fell 18% after the status page and the new error pages shipped.

+

Next quarter

+

Beacon general availability, migration tooling for long-poll customers, and the first external audit of the delivery signing scheme.

+
Meridian Labs GmbH · ConfidentialPage 1 of 1
`), + + // Internal purchase order attached to the support thread. + 'po-lumen-logistics.pdf': page(` +
${logo('Lumen Logistics', '#1d4ed8')}Purchase order
+

PO 2026-0412

+

Lumen Logistics S.A. · Av. da Liberdade 110, Lisboa · to Meridian Labs GmbH

+ + + +
ItemQtyAmount
Meridian Platform, Business plan, annual1€11,880.00
Beacon add-on, 50 tenants1€3,600.00
Total excl. VAT€15,480.00
+

Please invoice to accounts@lumenlogistics.example and quote the PO number. Payment terms 30 days.

+
Approved: Tomás Ferreira, Head of OperationsPage 1 of 1
`), +}; + +// PNGs rendered from HTML at 2x. +const IMAGES = { + // Screenshot of the Beacon metrics dashboard, attached to Ahmed's soak-test mail. + 'beacon-soak-dashboard.png': { + width: 1200, height: 720, html: ` +
Beacon · soak test, 48 h at 3× peakeu-1, eu-2 · last 48 hours
+
+
Deliveries / s42,380
+
p95 delivery latency184 ms
+
Retry budget used11%
+
Errors0.02%
+
+
Deliveries per second + + + ${[0.25, 0.5, 0.75].map((f) => ``).join('')} + + +
+ `, + }, + // Illustration draft from Daniel Cooper (the commission thread). + 'book-cover-draft.png': { + width: 900, height: 1200, html: ` +
+
+

The Lemon
Tree Year

Sofia Russo

+
draft 2 — bolder sun?
+ `, + }, +}; + +// Plain-text files in the Files app. +const TEXT = { + 'meeting-notes.md': `# Beacon weekly · ${fmt(plus(-1))} + +Attendees: Alice, Bob, Priya, Ahmed, Lisa, Nora + +## Decisions +- Canary stays at 5% for a full 24 h, not 12. Priya wants one night of traffic. +- Webhook signing keys rotate every 90 days; the old key stays valid for 48 h. +- Rachel gets the changelog draft by ${fmt(plus(4))}. + +## Open +- [ ] Rollback runbook: Nora, review by Bob and Ahmed +- [ ] Long-poll reconnect test on the staging tenant: Lisa +- [ ] Status page component for Beacon: Ahmed + +## Notes +Load test held at 3× peak for 48 h without a retry-budget breach. p95 184 ms. +`, + 'todo.txt': `(A) Rollback runbook, send to Bob and Ahmed @beacon due:${plus(3).toISOString().slice(0, 10)} +(A) RSVP go/no-go review @beacon +(B) Book airport train for ${fmt(plus(9))} @travel +(B) Reply to Mom about the weekend @family +(C) Pick up suit from the cleaner @errands +x Sign DesignCo invoice 2026-089 @finance +`, +}; + +// ── Office documents ───────────────────────────────────────────────────── +async function xlsxLaunchMetrics() { + const wb = new ExcelJS.Workbook(); + wb.creator = 'Nora Lindqvist'; + const ws = wb.addWorksheet('Soak test'); + ws.columns = [ + { header: 'Hour', key: 'h', width: 8 }, + { header: 'Deliveries/s', key: 'd', width: 14 }, + { header: 'p95 ms', key: 'p', width: 10 }, + { header: 'Errors %', key: 'e', width: 10 }, + { header: 'Retry budget %', key: 'r', width: 16 }, + ]; + for (let h = 1; h <= 48; h++) { + ws.addRow({ h, d: 40000 + Math.round(Math.sin(h / 3) * 2500 + (h % 7) * 300), p: 170 + (h % 5) * 4 + (h > 30 ? 6 : 0), e: Number((0.01 + (h % 4) * 0.005).toFixed(3)), r: Math.min(14, 4 + Math.round(h / 5)) }); + } + ws.getRow(1).font = { bold: true }; + ws.views = [{ state: 'frozen', ySplit: 1 }]; + const sum = wb.addWorksheet('Summary'); + sum.addRows([ + ['Metric', 'Value', 'Target'], + ['Peak deliveries/s', 42380, 36000], + ['p95 latency (ms)', 184, 250], + ['Error rate', '0.02%', '< 0.1%'], + ['Retry budget used', '11%', '< 50%'], + ['Verdict', 'Pass', ''], + ]); + sum.getRow(1).font = { bold: true }; + sum.columns = [{ width: 22 }, { width: 12 }, { width: 12 }]; + return Buffer.from(await wb.xlsx.writeBuffer()); +} + +async function xlsxBudget() { + const wb = new ExcelJS.Workbook(); + const ws = wb.addWorksheet('Budget'); + ws.addRow(['Category', 'Planned', 'Actual', 'Delta']); + const rows = [['Cloud', 7200, 6840], ['Tooling', 2400, 2510], ['Design (DesignCo)', 5000, 5236], ['Conferences', 3000, 1870], ['Hardware', 1500, 0]]; + rows.forEach(([c, p, a], i) => { + const r = i + 2; + ws.addRow([c, p, a, { formula: `C${r}-B${r}` }]); + }); + ws.addRow(['Total', { formula: 'SUM(B2:B6)' }, { formula: 'SUM(C2:C6)' }, { formula: 'SUM(D2:D6)' }]); + ws.getRow(1).font = { bold: true }; + ws.getRow(7).font = { bold: true }; + ws.columns = [{ width: 22 }, { width: 12 }, { width: 12 }, { width: 12 }]; + for (const col of ['B', 'C', 'D']) ws.getColumn(col).numFmt = '€#,##0'; + return Buffer.from(await wb.xlsx.writeBuffer()); +} + +async function docxRunbook() { + const { Document, Packer, Paragraph, TextRun, HeadingLevel, Table, TableRow, TableCell, WidthType } = docx; + const p = (text, opts = {}) => new Paragraph({ children: [new TextRun({ text, ...opts })], spacing: { after: 120 } }); + const h = (text, level = HeadingLevel.HEADING_1) => new Paragraph({ text, heading: level, spacing: { before: 240, after: 120 } }); + const cell = (text, bold = false) => new TableCell({ children: [new Paragraph({ children: [new TextRun({ text, bold })] })] }); + const steps = [ + ['1', 'Freeze deploys; announce in #beacon-launch', 'On-call'], + ['2', 'Flip the tenant router back to the polling API (feature flag beacon.route)', 'Nora'], + ['3', 'Drain the webhook queue; retries pause automatically once the flag is off', 'Ahmed'], + ['4', 'Confirm long-poll clients reconnected (dashboard: reconnects < 1%)', 'Lisa'], + ['5', 'Post the status page update and the customer note', 'Rachel'], + ]; + const doc = new Document({ + creator: 'Nora Lindqvist', + title: 'Beacon rollback runbook', + sections: [{ + children: [ + new Paragraph({ text: 'Beacon rollback runbook', heading: HeadingLevel.TITLE }), + p('Meridian Labs · draft 2 · owner Nora Lindqvist · reviewers Bob Chen, Ahmed Hassan', { italics: true, color: '666666' }), + h('When to roll back'), + p('Error rate above 0.5% for ten minutes, p95 delivery latency above 1 s, or any retry budget breach on more than three tenants. The on-call engineer decides; nobody needs to be asked first.'), + h('Steps'), + new Table({ width: { size: 100, type: WidthType.PERCENTAGE }, rows: [ + new TableRow({ children: [cell('#', true), cell('Action', true), cell('Owner', true)] }), + ...steps.map(([n, a, o]) => new TableRow({ children: [cell(n), cell(a), cell(o)] })), + ] }), + h('Expected impact'), + p('Customers on the new API see deliveries pause for the drain window, at most two minutes. Nothing is lost: the queue is replayed after the fix. Long-poll clients see one reconnect.'), + h('Open questions'), + p('Do we keep the signing keys rotated during the rollback window? Bob to confirm with the auditor.'), + ], + }], + }); + return Buffer.from(await Packer.toBuffer(doc)); +} + +async function docxContract() { + const { Document, Packer, Paragraph, TextRun, HeadingLevel } = docx; + const p = (text) => new Paragraph({ children: [new TextRun(text)], spacing: { after: 160 } }); + const doc = new Document({ + title: 'Service agreement draft', + sections: [{ children: [ + new Paragraph({ text: 'Service agreement', heading: HeadingLevel.TITLE }), + p('between Meridian Labs GmbH ("Provider") and Lumen Logistics S.A. ("Customer"). Draft for review, not for signature.'), + new Paragraph({ text: '1. Scope', heading: HeadingLevel.HEADING_1 }), + p('The Provider operates the Meridian Platform and the Beacon notification service for the Customer under the Business plan, as described in Purchase Order 2026-0412.'), + new Paragraph({ text: '2. Service levels', heading: HeadingLevel.HEADING_1 }), + p('Monthly availability of 99.9%, measured at the API edge. Credits of 10% of the monthly fee per 0.1% below target, capped at 50%.'), + new Paragraph({ text: '3. Term', heading: HeadingLevel.HEADING_1 }), + p('Twelve months from the effective date, renewing yearly unless either party gives sixty days notice.'), + ] }], + }); + return Buffer.from(await Packer.toBuffer(doc)); +} + +async function pptxLaunchDeck() { + const pres = new PptxGenJS(); + pres.layout = 'LAYOUT_16x9'; + pres.author = 'Rachel Green'; + pres.title = 'Beacon launch'; + const rasp = 'DB2D54'; + const cover = pres.addSlide(); + cover.background = { color: '0F1117' }; + cover.addText('Beacon', { x: 0.6, y: 1.6, w: 8, h: 1.2, fontSize: 54, bold: true, color: 'FFFFFF', fontFace: 'Segoe UI' }); + cover.addText('Real-time notifications for every Meridian tenant', { x: 0.6, y: 2.8, w: 8, h: 0.6, fontSize: 20, color: 'C7C9D1', fontFace: 'Segoe UI' }); + cover.addShape(pres.ShapeType.rect, { x: 0.6, y: 3.6, w: 1.4, h: 0.08, fill: { color: rasp }, line: { color: rasp } }); + cover.addText(`Launch ${fmt(plus(8))} · Meridian Labs`, { x: 0.6, y: 4.6, w: 8, h: 0.4, fontSize: 12, color: '8B8E98', fontFace: 'Segoe UI' }); + + const what = pres.addSlide(); + what.addText('What customers get', { x: 0.6, y: 0.4, w: 8, h: 0.7, fontSize: 30, bold: true, color: '18181B', fontFace: 'Segoe UI' }); + what.addText([ + { text: 'Webhooks with signed deliveries', options: { bullet: true, breakLine: true } }, + { text: 'Server-sent events for browsers, no polling', options: { bullet: true, breakLine: true } }, + { text: 'Retry queue with per-tenant budgets', options: { bullet: true, breakLine: true } }, + { text: 'Delivery log with replay, 30 days', options: { bullet: true } }, + ], { x: 0.8, y: 1.4, w: 8, h: 3, fontSize: 20, color: '3F3F46', fontFace: 'Segoe UI', paraSpaceAfter: 10 }); + + const num = pres.addSlide(); + num.addText('Soak test, 48 hours at 3× peak', { x: 0.6, y: 0.4, w: 8.5, h: 0.7, fontSize: 30, bold: true, color: '18181B', fontFace: 'Segoe UI' }); + const tiles = [['42,380', 'deliveries / s'], ['184 ms', 'p95 latency'], ['0.02%', 'errors'], ['11%', 'retry budget']]; + tiles.forEach(([v, l], i) => { + const x = 0.6 + i * 2.25; + num.addShape(pres.ShapeType.roundRect, { x, y: 1.6, w: 2.05, h: 1.6, fill: { color: 'F4F4F5' }, line: { color: 'E4E4E7' }, rectRadius: 0.1 }); + num.addText(v, { x, y: 1.75, w: 2.05, h: 0.8, fontSize: 28, bold: true, color: rasp, align: 'center', fontFace: 'Segoe UI' }); + num.addText(l, { x, y: 2.5, w: 2.05, h: 0.5, fontSize: 13, color: '71717A', align: 'center', fontFace: 'Segoe UI' }); + }); + num.addText('Verdict: pass. Canary at 5% of tenants for 24 h, then general availability.', { x: 0.6, y: 3.7, w: 8.5, h: 0.6, fontSize: 16, color: '3F3F46', fontFace: 'Segoe UI' }); + + const plan = pres.addSlide(); + plan.addText('Rollout', { x: 0.6, y: 0.4, w: 8, h: 0.7, fontSize: 30, bold: true, color: '18181B', fontFace: 'Segoe UI' }); + plan.addTable([ + [{ text: 'Day', options: { bold: true } }, { text: 'Milestone', options: { bold: true } }, { text: 'Owner', options: { bold: true } }], + [fmt(plus(1)), 'Go / no-go review', 'Alice'], + [fmt(plus(3)), 'Rollback runbook signed off', 'Nora'], + [fmt(plus(6)), 'Canary, 5% of tenants', 'Ahmed, Priya'], + [fmt(plus(8)), 'General availability', 'Rachel'], + ], { x: 0.6, y: 1.4, w: 8.8, fontSize: 14, fontFace: 'Segoe UI', color: '3F3F46', border: { type: 'solid', color: 'E4E4E7', pt: 1 }, fill: { color: 'FFFFFF' } }); + + return Buffer.from(await pres.write({ outputType: 'nodebuffer' })); +} + +// ── Run ────────────────────────────────────────────────────────────────── +const browser = await chromium.launch(); +const ctx = await browser.newContext({ deviceScaleFactor: 2 }); +const pg = await ctx.newPage(); +for (const [name, html] of Object.entries(DOCS)) { + await pg.setContent(html, { waitUntil: 'load' }); + write(name, await pg.pdf({ format: 'A4', printBackground: true, preferCSSPageSize: true })); +} +for (const [name, { width, height, html }] of Object.entries(IMAGES)) { + await pg.setViewportSize({ width, height }); + await pg.setContent(html, { waitUntil: 'load' }); + write(name, await pg.screenshot({ type: 'png', clip: { x: 0, y: 0, width, height } })); +} +await browser.close(); + +for (const [name, text] of Object.entries(TEXT)) write(name, Buffer.from(text, 'utf8')); +write('beacon-soak-metrics.xlsx', await xlsxLaunchMetrics()); +write('budget-2026.xlsx', await xlsxBudget()); +if (docx) { + write('beacon-rollback-runbook.docx', await docxRunbook()); + write('service-agreement-draft.docx', await docxContract()); +} else console.log('docx not available: Word files kept as they are'); +if (PptxGenJS) write('beacon-launch-deck.pptx', await pptxLaunchDeck()); +else console.log('pptxgenjs not available: deck kept as it is'); + +for (const w of written) console.log(' +', w); +console.log(`output: ${OUT}`); diff --git a/stores/auth-store.ts b/stores/auth-store.ts index 9d6723174..b111eaaa0 100644 --- a/stores/auth-store.ts +++ b/stores/auth-store.ts @@ -1003,6 +1003,9 @@ let refreshPromise: Promise | null = null; // Multi-account state: per-account JMAP clients and refresh timers const clients = new Map(); +/** Server URL recorded on the demo accounts; nothing is ever sent to it. */ +const DEMO_SERVER_URL = 'https://demo.example.com'; + /** * Account switches can overlap (click B, then C before B lands). Each switch * takes a generation and gives up at its next await once a newer one has @@ -1685,30 +1688,46 @@ export const useAuthStore = create()( clearAllStores(); const { DemoJMAPClient } = await import('@/lib/demo/demo-client'); - const client = new DemoJMAPClient(); - await client.connect(); + const { seedDemoPreferences } = await import('@/lib/demo/demo-preferences'); + // Two logins: the work account (primary, with the shared Support + // mailbox) and a mail-only personal account, so the account + // switcher and the merged inbox have more than one source. + const client = new DemoJMAPClient('work'); + const personal = new DemoJMAPClient('personal'); + await Promise.all([client.connect(), personal.connect()]); const username = client.getUsername(); const { identities, primaryIdentity } = loadIdentities(await client.getIdentities(), username); initializeFeatureStores(client); - // Register a demo account entry so the account-switcher shows - // proper avatar/name instead of a "?" placeholder. + // Register the account entries so the account switcher shows + // names and avatars, and the unified views find both clients. const accountStore = useAccountStore.getState(); - const demoAccountId = accountStore.addAccount({ - label: primaryIdentity?.name || 'Demo User', - serverUrl: 'https://demo.example.com', - username, - authMode: 'basic', - rememberMe: false, - displayName: primaryIdentity?.name || 'Demo User', - email: primaryIdentity?.email || username, - lastLoginAt: Date.now(), - isConnected: true, - hasError: false, - isDefault: true, - }); + const displayName = primaryIdentity?.name || 'Nora Lindqvist'; + const register = (demoClient: InstanceType, label: string, isDefault: boolean) => { + const email = demoClient.getUsername(); + const id = accountStore.addAccount({ + label, + serverUrl: DEMO_SERVER_URL, + username: email, + authMode: 'basic', + rememberMe: false, + displayName, + email, + lastLoginAt: Date.now(), + isConnected: true, + hasError: false, + isDefault, + }); + // The registry is typed for the real client; the unified views only + // use the IJMAPClient surface, which the demo client implements. + clients.set(id, demoClient as unknown as JMAPClient); + return id; + }; + const demoAccountId = register(client, 'Meridian Labs', true); + register(personal, 'Personal', false); accountStore.setActiveAccount(demoAccountId); + seedDemoPreferences(); set({ isAuthenticated: true, @@ -2563,9 +2582,9 @@ export const useAuthStore = create()( const accountStore = useAccountStore.getState(); let accounts = accountStore.accounts; - // If the only account is the demo account, re-initialize demo mode + // If every account is a demo account, re-initialize demo mode // instead of trying to restore a server session (which doesn't exist). - if (accounts.length === 1 && accounts[0].serverUrl === 'https://demo.example.com') { + if (accounts.length > 0 && accounts.every((a) => a.serverUrl === DEMO_SERVER_URL)) { await get().loginDemo(); return; } diff --git a/stores/policy-store.ts b/stores/policy-store.ts index 5d0003492..d0bfb3a04 100644 --- a/stores/policy-store.ts +++ b/stores/policy-store.ts @@ -13,6 +13,13 @@ interface PolicyState { * full policy is fetched again once a session exists. */ partial: boolean; + /** + * Gates the demo switches on regardless of the deployment's policy, so the + * demo's two accounts and shared mailbox can show the merged views. Set by + * the demo login only; empty everywhere else. + */ + demoFeatureOverrides: Partial; + setDemoFeatureOverrides: (overrides: Partial) => void; fetchPolicy: () => Promise; /** Fetch the full policy if only the public subset is loaded. */ refreshIfPartial: () => Promise; @@ -42,6 +49,9 @@ export const usePolicyStore = create()((set, get) => ({ policy: { ...DEFAULT_POLICY }, loaded: false, partial: false, + demoFeatureOverrides: {}, + + setDemoFeatureOverrides: (overrides) => set({ demoFeatureOverrides: overrides }), fetchPolicy: async () => { // A fetch started before signing in may answer after the one started @@ -86,6 +96,8 @@ export const usePolicyStore = create()((set, get) => ({ }, isFeatureEnabled: (feature) => { + const override = get().demoFeatureOverrides[feature]; + if (override !== undefined) return override; return get().policy.features[feature] ?? true; },