package.json
{
"name": "dfweb-v4",
"version": "1.0.7",
"private": true,
"engines": {
"node": ">=20.16.0"
},
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"format": "prettier --write \"**/*.{ts,tsx,json}\"",
"test": "jest --coverage --collectCoverageFrom='src/components/**/*.{js,jsx,ts,tsx}' --collectCoverageFrom='!src/components/Animations/Matrix.component.{js,jsx,ts,tsx}'",
"test:watch": "jest --watch",
"cypress:open": "cypress open",
"cypress:headless": "cypress run",
"e2e": "start-test dev 3000 cypress:headless",
"refresh": "pnpm i && rm -rf node_modules && rm pnpm-lock.yaml && pnpm store prune && pnpm i && pnpm format"
},
"dependencies": {
"@emailjs/browser": "^4.4.1",
"@hookform/resolvers": "^3.9.0",
"@portabletext/react": "^3.1.0",
"@sanity/client": "^6.22.2",
"@sanity/image-url": "^1.0.2",
"autoprefixer": "^10.4.20",
"clsx": "^2.1.1",
"cookie": ">=1.0.1",
"framer-motion": "^11.11.9",
"jest": "^29.7.0",
"next": "15.0.1",
"next-sanity": "^9.7.0",
"path-to-regexp": "^8.2.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-error-boundary": "^4.1.0",
"react-hook-form": "^7.53.1",
"react-icons": "^5.3.0",
"react-use": "^17.5.1",
"sanity": "^3.62.0",
"sitemap": "^8.0.0",
"ts-node": "^10.9.2",
"zod": "^3.23.8"
},
"devDependencies": {
"@ladle/react": "^4.1.2",
"@playwright/test": "^1.48.1",
"@testing-library/jest-dom": "^6.6.2",
"@testing-library/react": "^16.0.1",
"@testing-library/user-event": "^14.5.2",
"@types/node": "^22.7.9",
"@types/react": "^18.3.11",
"@types/react-dom": "^18.3.1",
"axe-core": "^4.10.1",
"cypress": "13.15.0",
"cypress-axe": "^1.5.0",
"eslint": "9.13.0",
"eslint-config-next": "15.0.1",
"jest-environment-jsdom": "^29.7.0",
"jsdom-testing-mocks": "^1.13.1",
"postcss": "^8.4.47",
"prettier": "3.3.3",
"tailwindcss": "^3.4.14",
"ts-jest": "^29.2.5",
"typescript": "^5.6.3",
"wait-on": "^8.0.1"
}
}