- manifest.webmanifest + apple/maskable PNG icons; relative paths so the app works both at dev root and under /weather - plain-JS service worker (sw.js) with notificationclick/push handlers and an SW-mediated showNotification() path for native Android notifications - src/lib/pwa.js bootstraps registration and routes alerts to the SW - Every alert kind (storm/precip/heat/cold/uv/wind) is now a per-type preference toggle in Settings; removed the old alertThresholds.thunderstorm boolean in favor of notificationTypes.storm - Store dedups native notifications per forecast day and fires best-effort native notifications for newly-appeared alerts - inline-assets keeps manifest/sw/icons in dist; deploy.yml uploads + verifies all PWA files via WebDAV
61 lines
1.5 KiB
JSON
61 lines
1.5 KiB
JSON
{
|
|
"name": "WeatherLens",
|
|
"short_name": "Weather",
|
|
"description": "Hyper-local weather forecasts, alerts, and radar for your saved locations.",
|
|
"start_url": "./",
|
|
"scope": "./",
|
|
"display": "standalone",
|
|
"display_override": "standalone",
|
|
"orientation": "any",
|
|
"background_color": "#132744",
|
|
"theme_color": "#0ea5e9",
|
|
"categories": ["weather", "utilities", "productivity"],
|
|
"lang": "en",
|
|
"icons": [
|
|
{
|
|
"src": "./icons/icon-192.png",
|
|
"sizes": "192x192",
|
|
"type": "image/png",
|
|
"purpose": "any"
|
|
},
|
|
{
|
|
"src": "./icons/icon-512.png",
|
|
"sizes": "512x512",
|
|
"type": "image/png",
|
|
"purpose": "any"
|
|
},
|
|
{
|
|
"src": "./icons/icon-maskable-512.png",
|
|
"sizes": "512x512",
|
|
"type": "image/png",
|
|
"purpose": "maskable"
|
|
}
|
|
],
|
|
"shortcuts": [
|
|
{
|
|
"name": "Now",
|
|
"short_name": "Now",
|
|
"url": "./#/current",
|
|
"icons": [{ "src": "./icons/icon-192.png", "sizes": "192x192", "type": "image/png" }]
|
|
},
|
|
{
|
|
"name": "Hourly",
|
|
"short_name": "Hourly",
|
|
"url": "./#/hourly",
|
|
"icons": [{ "src": "./icons/icon-192.png", "sizes": "192x192", "type": "image/png" }]
|
|
},
|
|
{
|
|
"name": "7-Day Forecast",
|
|
"short_name": "Forecast",
|
|
"url": "./#/daily",
|
|
"icons": [{ "src": "./icons/icon-192.png", "sizes": "192x192", "type": "image/png" }]
|
|
},
|
|
{
|
|
"name": "Radar",
|
|
"short_name": "Radar",
|
|
"url": "./#/radar",
|
|
"icons": [{ "src": "./icons/icon-192.png", "sizes": "192x192", "type": "image/png" }]
|
|
}
|
|
]
|
|
}
|