- Add comprehensive alarm scheduling and notification system - Support for VAlarm data structures from calendar events - Browser notification API integration with permission handling - localStorage persistence for alarms across sessions - Background service worker for alarm checking when app inactive - Real-time alarm detection with 30-second intervals - Debug logging for troubleshooting notification issues - Automatic permission requests when events with alarms are created - Support for Display action alarms with Duration and DateTime triggers - Clean alarm management (create, update, remove, expire) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
96 lines
2.1 KiB
TOML
96 lines
2.1 KiB
TOML
[package]
|
|
name = "runway"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
# Frontend binary only
|
|
|
|
[dependencies]
|
|
calendar-models = { workspace = true, features = ["wasm"] }
|
|
yew = { version = "0.21", features = ["csr"] }
|
|
web-sys = { version = "0.3", features = [
|
|
"console",
|
|
"HtmlSelectElement",
|
|
"HtmlInputElement",
|
|
"HtmlTextAreaElement",
|
|
"HtmlLinkElement",
|
|
"HtmlHeadElement",
|
|
"Event",
|
|
"MouseEvent",
|
|
"InputEvent",
|
|
"Element",
|
|
"Document",
|
|
"Window",
|
|
"Location",
|
|
"Navigator",
|
|
"DomTokenList",
|
|
"Headers",
|
|
"Request",
|
|
"RequestInit",
|
|
"RequestMode",
|
|
"Response",
|
|
"CssStyleDeclaration",
|
|
"MediaQueryList",
|
|
"MediaQueryListEvent",
|
|
# Notification API for browser notifications
|
|
"Notification",
|
|
"NotificationOptions",
|
|
"NotificationPermission",
|
|
# Service Worker API for background processing
|
|
"ServiceWorkerContainer",
|
|
"ServiceWorkerRegistration",
|
|
"MessageEvent",
|
|
# IndexedDB API for persistent alarm storage
|
|
"IdbDatabase",
|
|
"IdbObjectStore",
|
|
"IdbTransaction",
|
|
"IdbRequest",
|
|
"IdbKeyRange",
|
|
"IdbFactory",
|
|
"IdbOpenDbRequest",
|
|
"IdbVersionChangeEvent",
|
|
] }
|
|
wasm-bindgen = "0.2"
|
|
js-sys = "0.3"
|
|
|
|
# HTTP client for CalDAV requests
|
|
reqwest = { version = "0.11", features = ["json"] }
|
|
# Calendar and iCal parsing
|
|
ical = "0.7"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
serde-wasm-bindgen = "0.6"
|
|
|
|
# Date and time handling
|
|
chrono = { version = "0.4", features = ["serde", "wasm-bindgen"] }
|
|
chrono-tz = "0.8"
|
|
|
|
# Error handling
|
|
anyhow = "1.0"
|
|
thiserror = "1.0"
|
|
|
|
# Logging
|
|
log = "0.4"
|
|
console_log = "1.0"
|
|
|
|
# UUID generation for calendar events
|
|
uuid = { version = "1.0", features = ["v4", "wasm-bindgen", "serde"] }
|
|
getrandom = { version = "0.2", features = ["js"] }
|
|
|
|
# Environment variable handling
|
|
dotenvy = "0.15"
|
|
base64 = "0.21"
|
|
|
|
# XML/Regex parsing
|
|
regex = "1.0"
|
|
|
|
# Yew routing and local storage (WASM only)
|
|
yew-router = "0.18"
|
|
gloo-storage = "0.3"
|
|
gloo-timers = "0.3"
|
|
wasm-bindgen-futures = "0.4"
|
|
|
|
# IndexedDB for persistent alarm storage
|
|
indexed_db_futures = "0.4"
|
|
|