{
  "name": "next-app",
  "version": "0.0.1",
  "type": "module",
  "private": true,
  "engines": {
    "node": ">=20.9.0",
    "npm": ">=10.0.0"
  },
  "packageManager": "npm@10.9.7",
  "scripts": {
    "predev": "bash scripts/sync-bmw-fonts.sh",
    "dev": "next dev --turbopack",
    "prebuild": "bash scripts/sync-bmw-fonts.sh",
    "build": "node scripts/inject-sw-version.cjs && next build",
    "start": "next start",
    "lint": "eslint",
    "format": "prettier --write \"**/*.{ts,tsx}\"",
    "typecheck": "tsc --noEmit",
    "test": "vitest run",
    "test:watch": "vitest",
    "test:coverage": "vitest run --coverage",
    "check:lint-baseline": "node scripts/check-lint-baseline.mjs",
    "check:forbidden": "node scripts/check-forbidden-strings.mjs",
    "check:profiles": "node scripts/check-profiles.mjs",
    "check:boundaries": "node scripts/check-boundaries.mjs",
    "check:openapi": "node scripts/check-openapi.mjs",
    "check:csp": "node scripts/check-csp.mjs",
    "check:secrets": "node scripts/check-secrets.mjs",
    "check:hardcoded-colors": "node scripts/check-hardcoded-colors.mjs",
    "check:design-tokens": "node scripts/check-design-tokens.mjs",
    "check:bmw-fonts": "node scripts/check-bmw-fonts.mjs",
    "preflight:rotation": "node scripts/preflight-rotation.mjs",
    "check:portability": "npm run check:profiles && npm run check:forbidden && npm run check:boundaries && npm run check:qaf-core-portability && npm run check:openapi && npm run check:csp && npm run check:secrets && npm run check:hardcoded-colors && npm run check:design-tokens && npm run check:bmw-fonts",
    "new:module": "node scripts/new-module.mjs",
    "check:golden-manifest": "python3 scripts/qaf-v2/anonymise/build_manifest.py",
    "check:qaf-core-portability": "node scripts/check-qaf-core-portability.mjs"
  },
  "dependencies": {
    "@dnd-kit/core": "^6.3.1",
    "@dnd-kit/sortable": "^10.0.0",
    "@dnd-kit/utilities": "^3.2.2",
    "@opentelemetry/api": "^1.9.1",
    "@opentelemetry/sdk-trace-base": "^2.7.1",
    "@sentry/nextjs": "^10.52.0",
    "@supabase/ssr": "^0.9.0",
    "@supabase/supabase-js": "^2.106.2",
    "@t3-oss/env-nextjs": "^0.13.11",
    "@types/file-saver": "^2.0.7",
    "@upstash/ratelimit": "^2.0.8",
    "@upstash/redis": "^1.38.0",
    "@vercel/otel": "^2.1.2",
    "@vercel/speed-insights": "^2.0.0",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "dexie": "^4.4.1",
    "dexie-react-hooks": "^4.4.0",
    "docx": "^9.7.1",
    "exceljs": "^4.4.0",
    "file-saver": "^2.0.5",
    "isomorphic-dompurify": "^3.14.0",
    "jspdf": "^4.2.1",
    "lucide-react": "^1.7.0",
    "next": "16.2.7",
    "next-themes": "^0.4.6",
    "perfect-freehand": "^1.2.3",
    "pptxgenjs": "^4.0.1",
    "radix-ui": "^1.4.3",
    "react": "^19.2.4",
    "react-dom": "^19.2.4",
    "recharts": "^3.8.1",
    "tailwind-merge": "^3.5.0",
    "tw-animate-css": "^1.4.0",
    "xlsx": "file:vendor/xlsx-0.20.3.tgz",
    "zod": "^4.3.6"
  },
  "devDependencies": {
    "@eslint/eslintrc": "^3",
    "@playwright/experimental-ct-react": "^1.62.0",
    "@playwright/test": "^1.62.0",
    "@tailwindcss/postcss": "^4.2.1",
    "@tailwindcss/vite": "^4.3.3",
    "@testing-library/dom": "^10.4.1",
    "@testing-library/react": "^16.3.2",
    "@types/node": "^25.5.0",
    "@types/react": "^19.2.14",
    "@types/react-dom": "^19.2.3",
    "@vitejs/plugin-react": "^6.0.4",
    "@vitest/coverage-v8": "^4.1.2",
    "ajv": "^8.20.0",
    "ajv-formats": "^3.0.1",
    "embedded-postgres": "^17.10.0-beta.17",
    "eslint": "^9.39.4",
    "eslint-config-next": "16.2.7",
    "eslint-plugin-boundaries": "^6.0.2",
    "eslint-plugin-security": "^4.0.0",
    "jszip": "^3.10.1",
    "pg": "^8.22.0",
    "postcss": "^8",
    "prettier": "^3.8.1",
    "prettier-plugin-tailwindcss": "^0.7.2",
    "shadcn": "^4.1.1",
    "tailwindcss": "^4.2.1",
    "typescript": "^5.9.3",
    "vitest": "^4.1.2"
  }
}
