shumiland-web/package.json
Vadym Samoilenko 9d4333cf92 fix: bug fixes + Phase 3 middleware/UTM
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>
2026-04-04 17:09:36 +01:00

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"
}
}