Recurring event editing (rrule) with this/all occurrence scope, web push subscriptions (VAPID) with a cached config layer for notification settings, and email delivery via nodemailer. Also fixes the calendar view never actually stacking on mobile: the Calendars filter column used flex:1 with minWidth:0 on its sibling, so flex-wrap never triggered regardless of viewport width, squeezing the grid and view switcher into a sliver next to a fixed 220px sidebar. Adds a proper mobile breakpoint that stacks the layout, scrolls the week grid horizontally instead of compressing it, and enlarges touch targets.
25 lines
580 B
JSON
25 lines
580 B
JSON
{
|
|
"name": "hnf-calendar-backend",
|
|
"version": "1.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"start": "node src/index.js",
|
|
"dev": "node --watch src/index.js"
|
|
},
|
|
"dependencies": {
|
|
"@fastify/cookie": "^9.4.0",
|
|
"@fastify/cors": "^9.0.1",
|
|
"@fastify/multipart": "^8.3.0",
|
|
"@fastify/static": "^7.0.4",
|
|
"@xmldom/xmldom": "^0.8.10",
|
|
"bcryptjs": "^2.4.3",
|
|
"fastify": "^4.28.1",
|
|
"ical.js": "^2.1.0",
|
|
"ics": "^3.8.1",
|
|
"jose": "^5.9.6",
|
|
"nodemailer": "^9.0.3",
|
|
"pg": "^8.13.1",
|
|
"rrule": "^2.8.1",
|
|
"web-push": "^3.6.7"
|
|
}
|
|
}
|