Mobile fixes: - Add viewport meta tag (was missing, causing broken mobile rendering) - Make header nav controls visible on mobile (opacity-0 group-hover was invisible on touch) - Add touch swipe gestures for day navigation on mobile - Fix viewDays responsive override after profile load Bug fixes: - Fix goal save (WeeklyView used POST but route only had GET/PUT; fix to use PUT, add POST alias) - Fix body key mismatch (goal → text) in goal save request Auth & identity (Task 1): - Add accountNumber (auto-increment) to User model for stable identity - Fix OAuth flows: pass user CUID in state instead of email - Google/Outlook callbacks now look up users by ID, not email - Non-Gmail users can now connect Google Calendar/Tasks CalDAV performance (Task 5): - Embed CalDAV object URL in Apple event IDs (caldav::<url>::<uid> format) - Delete/update now use O(1) direct URL access instead of O(n) full calendar scan - Optimistic UI removal on delete (no blocking force-refresh) - Legacy fallback for old-format IDs during transition Apple Calendar data (Task 2): - Pass URL, location, recurringEventId, isRecurring through full pipeline - Add url, recurringEventId, isRecurring to CachedCalendarEvent schema - Calendar cache now reads/writes all new fields Projects (Task 6): - New Project model (name, icon, color, description, order) - CRUD API at /api/tasks/projects - Tasks now support optional projectId with cascading nullify Quotes (Task 4): - Curated local quote database (50 quotes, DE+EN) with tag filtering - Preset quote source APIs (ZenQuotes, Quotable, Forismatic, Type.fit) Fonts (Task 7): - FontPicker component with searchable dropdown and live preview - /api/fonts endpoint (Google Fonts API proxy with 24h cache, fallback to 40 popular fonts) Quick Settings (Task 8): - QuickSettingsSidebar component (font size, spacing, show completed, start day, show lines) - New user preferences: showCompletedTasks, showLines, startDayOffset, quoteSourceUrls v1.9.0 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
61 lines
1.8 KiB
JSON
61 lines
1.8 KiB
JSON
{
|
|
"name": "my-weekly-todo-list",
|
|
"version": "1.9.0",
|
|
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
|
|
"main": "index.js",
|
|
"scripts": {
|
|
"dev": "echo \"\\n ✦ My Weekly ToDo List v$(node -p \"require('./package.json').version\") — dev mode\\n\" && next dev -H 0.0.0.0 -p 3002",
|
|
"build": "next build",
|
|
"start": "echo \"\\n ✦ My Weekly ToDo List v$(node -p \"require('./package.json').version\") — production\\n\" && next start",
|
|
"lint": "next lint",
|
|
"type-check": "tsc --noEmit",
|
|
"test": "jest"
|
|
},
|
|
"keywords": [
|
|
"nextjs",
|
|
"todo",
|
|
"calendar",
|
|
"weekly-view",
|
|
"task-management"
|
|
],
|
|
"author": "My Weekly To Do List Team",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@auth/prisma-adapter": "^2.11.1",
|
|
"@prisma/client": "^5.22.0",
|
|
"@types/bcryptjs": "^2.4.6",
|
|
"@types/nodemailer": "^7.0.11",
|
|
"bcryptjs": "^3.0.3",
|
|
"date-fns": "^2.30.0",
|
|
"googleapis": "^170.1.0",
|
|
"ical.js": "^2.2.1",
|
|
"lucide-react": "^0.563.0",
|
|
"next": "^14.0.0",
|
|
"next-auth": "^4.24.13",
|
|
"nodemailer": "^7.0.13",
|
|
"postcss-cli": "^11.0.1",
|
|
"prisma": "^5.0.0",
|
|
"react": "^18.2.0",
|
|
"react-dnd": "^16.0.1",
|
|
"react-dnd-html5-backend": "^16.0.1",
|
|
"react-dom": "^18.2.0",
|
|
"tsdav": "^2.1.8",
|
|
"undici": "^7.19.1",
|
|
"zustand": "^4.4.0"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.58.0",
|
|
"@types/jest": "^30.0.0",
|
|
"@types/node": "^20.0.0",
|
|
"@types/react": "^18.2.0",
|
|
"@types/react-dom": "^18.2.0",
|
|
"autoprefixer": "^10.4.19",
|
|
"eslint": "^8.0.0",
|
|
"eslint-config-next": "^14.0.0",
|
|
"jest": "^29.0.0",
|
|
"postcss": "^8.4.38",
|
|
"tailwindcss": "^3.4.1",
|
|
"ts-jest": "^29.0.0",
|
|
"typescript": "^5.0.0"
|
|
}
|
|
} |