Bug fixes: - Add beforeValidate slug hooks to Blog, Events, Pages, LandingPages (slugify) - Add auto-generation hooks for orderNumber (Orders) and ticketCode (Tickets) - Restrict Tickets.create to isAuthenticated (was publicly accessible) - Rename isAdminOrPublished → isAuthenticatedOrPublished for clarity - Remove redundant brand CSS utilities (Tailwind v4 generates them from @theme) - Remove autoprefixer (redundant with @tailwindcss/postcss) - Replace real API keys/IDs with placeholders in .env.example Phase 3: - src/middleware.ts — UTM first-touch cookies + maintenance mode redirect - src/lib/utm.ts — getUtmFromCookies(), getGoogleClientId() - src/app/(frontend)/maintenance/page.tsx — maintenance page Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
66 lines
1.9 KiB
JSON
66 lines
1.9 KiB
JSON
{
|
|
"name": "shumiland-web",
|
|
"version": "1.0.0",
|
|
"description": "Shumiland — сімейний тематичний парк",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "next dev --turbopack",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"payload": "payload",
|
|
"generate:types": "payload generate:types",
|
|
"generate:importmap": "payload generate:importmap",
|
|
"seed": "tsx src/seed.ts",
|
|
"lint": "next lint"
|
|
},
|
|
"dependencies": {
|
|
"next": "15.4.11",
|
|
"react": "^19.1.0",
|
|
"react-dom": "^19.1.0",
|
|
"payload": "^3.38.0",
|
|
"@payloadcms/next": "^3.38.0",
|
|
"@payloadcms/db-postgres": "^3.38.0",
|
|
"@payloadcms/richtext-lexical": "^3.38.0",
|
|
"@payloadcms/ui": "^3.38.0",
|
|
"graphql": "^16.10.0",
|
|
"sharp": "^0.33.5",
|
|
"@hookform/resolvers": "^3.9.0",
|
|
"react-hook-form": "^7.54.0",
|
|
"zod": "^3.24.0",
|
|
"framer-motion": "^11.18.0",
|
|
"nodemailer": "^6.9.16",
|
|
"qrcode": "^1.5.4",
|
|
"qrcode.react": "^4.2.0",
|
|
"@react-pdf/renderer": "^4.3.0",
|
|
"recharts": "^2.15.0",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"tailwind-merge": "^2.6.0",
|
|
"lucide-react": "^0.475.0",
|
|
"@radix-ui/react-accordion": "^1.2.2",
|
|
"@radix-ui/react-dialog": "^1.1.4",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.4",
|
|
"@radix-ui/react-label": "^2.1.1",
|
|
"@radix-ui/react-select": "^2.1.4",
|
|
"@radix-ui/react-separator": "^1.1.1",
|
|
"@radix-ui/react-slot": "^1.1.1",
|
|
"@radix-ui/react-tabs": "^1.1.2",
|
|
"@radix-ui/react-toast": "^1.2.4",
|
|
"@radix-ui/react-tooltip": "^1.1.6",
|
|
"date-fns": "^4.1.0",
|
|
"slugify": "^1.6.6"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^22.13.0",
|
|
"@types/nodemailer": "^6.4.17",
|
|
"@types/qrcode": "^1.5.5",
|
|
"@types/react": "^19.1.0",
|
|
"@types/react-dom": "^19.1.0",
|
|
"typescript": "^5.7.3",
|
|
"tsx": "^4.19.2",
|
|
"tailwindcss": "^4.1.4",
|
|
"@tailwindcss/postcss": "^4.1.4",
|
|
"postcss": "^8.5.1"
|
|
}
|
|
}
|