{ "name": "klz-cables-nextjs", "type": "module", "private": true, "dependencies": { "@directus/sdk": "^21.0.0", "@mintel/mail": "1.8.3", "@mintel/next-config": "1.8.3", "@mintel/next-feedback": "1.8.10", "@mintel/next-utils": "^1.7.15", "@react-email/components": "^1.0.7", "@react-pdf/renderer": "^4.3.2", "@sentry/nextjs": "^10.39.0", "@types/recharts": "^2.0.1", "axios": "^1.13.5", "clsx": "^2.1.1", "framer-motion": "^12.34.0", "gray-matter": "^4.0.3", "i18next": "^25.7.3", "import-in-the-middle": "^1.11.0", "jsdom": "^27.4.0", "leaflet": "^1.9.4", "next": "16.1.6", "next-i18next": "^15.4.3", "next-intl": "^4.8.2", "next-mdx-remote": "^5.0.0", "nodemailer": "^7.0.12", "pdf-lib": "^1.17.1", "pino": "^10.3.0", "pino-pretty": "^13.1.3", "react": "^19.2.4", "react-dom": "^19.2.4", "react-email": "^5.2.5", "react-leaflet": "^4.2.1", "recharts": "^3.7.0", "require-in-the-middle": "^8.0.1", "resend": "^3.5.0", "schema-dts": "^1.1.5", "sharp": "^0.34.5", "svg-to-pdfkit": "^0.1.8", "tailwind-merge": "^3.4.0", "xlsx": "^0.18.5", "zod": "3.25.76" }, "devDependencies": { "@commitlint/cli": "^20.4.0", "@commitlint/config-conventional": "^20.4.0", "@cspell/dict-de-de": "^4.1.2", "@lhci/cli": "^0.15.1", "@mintel/eslint-config": "1.8.3", "@mintel/tsconfig": "1.8.3", "@next/bundle-analyzer": "^16.1.6", "@tailwindcss/cli": "^4.1.18", "@tailwindcss/postcss": "^4.1.18", "@types/geojson": "^7946.0.16", "@types/leaflet": "^1.9.21", "@types/node": "^22.19.3", "@types/nodemailer": "^7.0.5", "@types/react": "^19.2.7", "@types/react-dom": "^19.2.3", "@types/sharp": "^0.31.1", "@vitejs/plugin-react": "^5.1.4", "@vitest/ui": "^4.0.16", "autoprefixer": "^10.4.23", "backstopjs": "^6.3.25", "cheerio": "^1.2.0", "critters": "^0.0.25", "cspell": "^9.6.4", "eslint": "^9.18.0", "happy-dom": "^20.6.1", "html-validate": "^10.8.0", "husky": "^9.1.7", "lint-staged": "^16.2.7", "lucide-react": "^0.563.0", "pa11y-ci": "^4.0.1", "postcss": "^8.5.6", "prettier": "^3.8.1", "puppeteer": "^24.37.3", "sass": "^1.97.1", "start-server-and-test": "^2.1.3", "tailwindcss": "^4.1.18", "tsx": "^4.21.0", "typescript": "^5.7.2", "vitest": "^4.0.16" }, "scripts": { "dev": "docker network create infra 2>/dev/null || true && echo '\\nšŸš€ Development Environment Starting...\\n\\nšŸ“± App (Next.js): http://localhost:3000\\nšŸ“± App (Traefik): http://klz.localhost\\nšŸ—„ļø CMS: http://cms.klz.localhost/admin\\n🚦 Traefik: http://localhost:8080\\n\\n(Press Ctrl+C to stop)\\n' && docker-compose down --remove-orphans && docker-compose up --build klz-app klz-cms klz-db klz-gatekeeper", "dev:infra": "docker network create infra 2>/dev/null || true && docker-compose up -d klz-cms klz-db klz-gatekeeper", "dev:local": "next dev", "build": "next build", "start": "next start", "lint": "eslint .", "typecheck": "tsc --noEmit", "test": "vitest run --passWithNoTests", "test:og": "vitest run tests/og-image.test.ts", "check:og": "tsx scripts/check-og-images.ts", "check:mdx": "node scripts/validate-mdx.mjs", "check:a11y": "pa11y-ci", "check:wcag": "tsx ./scripts/wcag-sitemap.ts", "check:html": "tsx ./scripts/check-html.ts", "check:spell": "cspell \"content/**/*.{md,mdx}\" \"app/**/*.tsx\" \"components/**/*.tsx\"", "check:security": "tsx ./scripts/check-security.ts", "check:links": "bash ./scripts/check-links.sh", "backstop:reference": "backstop reference --config=backstop.config.cjs --docker", "backstop:test": "backstop test --config=backstop.config.cjs --docker", "backstop:approve": "backstop approve --config=backstop.config.cjs --docker", "backstop:ci": "backstop test --config=backstop.config.cjs", "cms:branding:local": "DIRECTUS_URL=${DIRECTUS_URL:-http://cms.klz.localhost} npx tsx --env-file=.env scripts/setup-directus-branding.ts", "cms:branding:testing": "DIRECTUS_URL=https://cms.testing.klz-cables.com npx tsx --env-file=.env scripts/setup-directus-branding.ts", "cms:branding:staging": "DIRECTUS_URL=https://cms.staging.klz-cables.com npx tsx --env-file=.env scripts/setup-directus-branding.ts", "cms:branding:prod": "DIRECTUS_URL=https://cms.klz-cables.com npx tsx --env-file=.env scripts/setup-directus-branding.ts", "cms:bootstrap": "pnpm run cms:branding:local", "pdf:datasheets": "tsx ./scripts/generate-pdf-datasheets.ts", "pdf:datasheets:legacy": "tsx ./scripts/generate-pdf-datasheets-pdf-lib.ts", "cms:schema:snapshot": "./scripts/cms-snapshot.sh", "cms:schema:apply": "./scripts/cms-apply.sh local", "cms:schema:apply:testing": "./scripts/cms-apply.sh testing", "cms:schema:apply:staging": "./scripts/cms-apply.sh staging", "cms:schema:apply:prod": "./scripts/cms-apply.sh production", "cms:pull:testing": "./scripts/sync-directus.sh pull testing", "cms:pull:staging": "./scripts/sync-directus.sh pull staging", "cms:pull:prod": "./scripts/sync-directus.sh pull production", "cms:push:staging:DANGER": "./scripts/sync-directus.sh push staging", "cms:push:testing:DANGER": "./scripts/sync-directus.sh push testing", "cms:push:prod:DANGER": "./scripts/sync-directus.sh push production", "pagespeed:test": "tsx ./scripts/pagespeed-sitemap.ts", "pagespeed:audit": "./scripts/audit-local.sh", "pagespeed:urls": "tsx -e \"import sitemap from './app/sitemap'; sitemap().then(urls => console.log(urls.map(u => u.url).join('\\n')))\"", "prepare": "husky", "preinstall": "npx only-allow pnpm" }, "version": "1.0.0", "pnpm": { "overrides": { "next": "16.1.6" } }, "browserslist": [ "last 3 versions", "not dead", "not ie 11" ], "peerDependencies": { "lucide-react": "^0.563.0" } }