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
76 lines
2.4 KiB
JSON
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"
|
|
}
|
|
}
|