Kostra prezentace s vlastní administrací pro Martina Reinera. Obsah: - kolekce Products (obrázky, volné parametry, cena, dostupnost, skrytí), Media se zmenšeninami, Pages, Users bez veřejné registrace - veřejná část: výpis nabídky, detail položky, statické stránky - /api/health pro Docker HEALTHCHECK Provoz: - Dockerfile, docker-compose.yml (vývoj) a docker-compose.prod.yml (nasazení z Gitea registry) - CI v Gitea Actions: lint -> testy -> build -> push image - úvodní migrace databáze Stránky jsou force-dynamic, aby se úprava položky projevila hned; schéma se za běhu nedomýšlí (push: false), migrace se commitují. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
56 lines
1.8 KiB
JSON
56 lines
1.8 KiB
JSON
{
|
|
"name": "zbrane-reiner-web",
|
|
"version": "0.1.0",
|
|
"description": "Web Martina Reinera — zbraně a střelivo",
|
|
"license": "UNLICENSED",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "cross-env NODE_OPTIONS=\"--no-deprecation --max-old-space-size=8000\" next build",
|
|
"dev": "cross-env NODE_OPTIONS=--no-deprecation next dev",
|
|
"devsafe": "rm -rf .next && cross-env NODE_OPTIONS=--no-deprecation next dev",
|
|
"generate:importmap": "cross-env NODE_OPTIONS=--no-deprecation payload generate:importmap",
|
|
"generate:types": "cross-env NODE_OPTIONS=--no-deprecation payload generate:types",
|
|
"lint": "cross-env NODE_OPTIONS=--no-deprecation eslint src tests",
|
|
"payload": "cross-env NODE_OPTIONS=--no-deprecation payload",
|
|
"start": "cross-env NODE_OPTIONS=--no-deprecation next start",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "pnpm run test:int",
|
|
"test:int": "cross-env NODE_OPTIONS=--no-deprecation vitest run --config ./vitest.config.mts"
|
|
},
|
|
"dependencies": {
|
|
"@payloadcms/db-sqlite": "3.86.0",
|
|
"@payloadcms/next": "3.86.0",
|
|
"@payloadcms/richtext-lexical": "3.86.0",
|
|
"@payloadcms/ui": "3.86.0",
|
|
"cross-env": "^7.0.3",
|
|
"dotenv": "16.4.7",
|
|
"graphql": "^16.8.1",
|
|
"next": "16.2.6",
|
|
"payload": "3.86.0",
|
|
"react": "19.2.6",
|
|
"react-dom": "19.2.6",
|
|
"sharp": "0.34.2"
|
|
},
|
|
"devDependencies": {
|
|
"@testing-library/react": "16.3.0",
|
|
"@types/node": "22.19.9",
|
|
"@types/react": "19.2.14",
|
|
"@types/react-dom": "19.2.3",
|
|
"@vitejs/plugin-react": "4.5.2",
|
|
"eslint": "^9.16.0",
|
|
"eslint-config-next": "16.2.6",
|
|
"jsdom": "28.0.0",
|
|
"prettier": "^3.4.2",
|
|
"tsx": "4.22.4",
|
|
"typescript": "5.7.3",
|
|
"vite-tsconfig-paths": "6.0.5",
|
|
"vitest": "4.0.18"
|
|
},
|
|
"packageManager": "pnpm@11.18.0",
|
|
"engines": {
|
|
"node": ">=22.12.0",
|
|
"pnpm": "^11"
|
|
}
|
|
}
|