package.json
{
"name": "portfolio",
"version": "1.0.0",
"private": true,
"scripts": {
"article": "node lib/scripts/generate-article-template.js",
"build": "prisma generate && next build",
"dev": "next dev",
"lint": "next lint",
"lint:fix": "next lint --fix",
"postbuild": "next-sitemap",
"postinstall": "prisma generate",
"pre-commit": "",
"pre-push": "pnpm run lint",
"prepare": "git config core.hooksPath .git-hooks",
"start": "next start",
"test": "jest --watch",
"test:ci": "jest --ci",
"test:coverage": "jest --coverage"
},
"engines": {
"node": ">=20"
},
"dependencies": {
"@prisma/client": "5.21.1",
"@sentry/nextjs": "8.34.0",
"@tailwindcss/typography": "0.5.15",
"@vercel/analytics": "1.3.1",
"clsx": "2.1.1",
"next": "14.2.15",
"next-themes": "0.3.0",
"react": "18.3.1",
"react-dom": "18.3.1",
"swr": "2.2.5"
},
"devDependencies": {
"@commitlint/cli": "19.5.0",
"@commitlint/config-conventional": "19.5.0",
"@testing-library/jest-dom": "6.6.2",
"@testing-library/react": "16.0.1",
"@testing-library/user-event": "14.5.2",
"@types/gtag.js": "0.0.20",
"@types/node": "22.7.6",
"@types/react": "18.3.11",
"@types/react-dom": "18.3.1",
"@typescript-eslint/eslint-plugin": "7.18.0",
"@typescript-eslint/parser": "7.18.0",
"autoprefixer": "10.4.20",
"eslint": "8.57.1",
"eslint-config-airbnb": "19.0.4",
"eslint-config-airbnb-typescript": "18.0.0",
"eslint-config-next": "13.5.7",
"eslint-plugin-import": "2.31.0",
"eslint-plugin-jsx-a11y": "6.10.0",
"eslint-plugin-react": "7.37.1",
"eslint-plugin-react-hooks": "4.6.2",
"gray-matter": "4.0.3",
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"next-mdx-remote": "5.0.0",
"next-sitemap": "4.2.3",
"postcss": "8.4.47",
"prettier": "3.3.3",
"prisma": "5.21.1",
"reading-time": "1.5.0",
"rehype": "13.0.2",
"rehype-autolink-headings": "7.1.0",
"rehype-code-titles": "1.2.0",
"rehype-prism-plus": "2.0.0",
"rehype-slug": "6.0.0",
"remark-gfm": "4.0.0",
"tailwindcss": "3.4.14",
"typescript": "5.6.3"
}
}