My-Weekly-ToDo-List/package.json
mARTin-B78 f6c4a21215 feat: add rate limiting and harden auth/calendar endpoints
Add an in-memory sliding-window rate limiter and wire it into signup,
resend-verification, reset-password, and verify-email routes. Store
password reset tokens as SHA-256 hashes, raise bcrypt cost to 12, and
switch verification codes to a CSPRNG. Stop echoing calendar
access/refresh tokens back to API clients, bound the weather cache
size, return JSON 401s for unauthenticated API calls instead of an
HTML redirect, and drop the dead mock login route.

v1.113.0
2026-07-05 00:01:52 +02:00

76 lines
2.4 KiB
JSON

{
"name": "my-weekly-todo-list",
"version": "1.113.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 3000",
"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",
"@fortawesome/fontawesome-svg-core": "^7.2.0",
"@fortawesome/free-brands-svg-icons": "^7.2.0",
"@fortawesome/free-solid-svg-icons": "^7.2.0",
"@fortawesome/react-fontawesome": "^3.2.0",
"@mdi/js": "^7.4.47",
"@mdi/react": "^1.6.1",
"@next-auth/prisma-adapter": "^1.0.7",
"@notionhq/client": "^5.14.0",
"@prisma/client": "5.22.0",
"@react-pdf/renderer": "^4.4.0",
"@tiptap/extension-link": "^3.20.0",
"@tiptap/extension-placeholder": "^3.20.0",
"@tiptap/extension-underline": "^3.20.0",
"@tiptap/react": "^3.20.0",
"@tiptap/starter-kit": "^3.20.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.2.35",
"next-auth": "^4.24.13",
"nodemailer": "^7.0.13",
"postcss-cli": "^11.0.1",
"prisma": "5.22.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",
"web-push": "^3.6.7",
"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"
}
}