{
  "name": "{{PROJECT_NAME}}",
  "private": true,
  "version": "0.0.1",
  "type": "module",
  "engines": {
    "node": ">=22.13.0",
    "bun": ">=1.3.3"
  },
  "trustedDependencies": [
    "@prisma/client",
    "prisma",
    "sharp"
  ],
  "scripts": {
    "client": "vite --host 0.0.0.0",
    "client:port": "vite --host 0.0.0.0 --port",
    "server": "luckystack-dev",
    "server:once": "tsx --tsconfig tsconfig.server.json server/server.ts",
    "build": "npm run generateArtifacts && vite build && node scripts/bundleServer.mjs",
    "prod": "node dist/server.js",
    "lint": "node scripts/withThreads.mjs --mb-per-thread 2048 --max-threads 3 eslint \"src/**/*.{ts,tsx}\" \"server/**/*.ts\" --cache --cache-location .eslintcache --ignore-pattern \"**/*.generated.*\" --ignore-pattern \"server/prod/**\" --concurrency {threads}",
    "typecheck": "npm run generateArtifacts && node node_modules/@typescript/native/bin/tsc --noEmit",
    "verify": "npm run generateArtifacts && node scripts/runParallel.mjs \"4:npm run lint\" \"2:node node_modules/@typescript/native/bin/tsc --noEmit\" \"vite build && node scripts/bundleServer.mjs\"",
    "ai:capabilities": "node scripts/generateAiCapabilities.mjs",
    "ai:project-index": "node scripts/generateProjectIndex.mjs",
    "ai:decisions": "node scripts/generateDecisionsIndex.mjs",
    "ai:lessons": "node scripts/generateLessonsIndex.mjs",
    "ai:product": "node scripts/generateProductOverview.mjs",
    "ai:graph": "node scripts/generateGraph.mjs",
    "ai:lint": "node scripts/lintInvariants.mjs",
    "ai:doc-staleness": "node scripts/checkDocStaleness.mjs",
    "ai:eval": "node eval/scoreEval.mjs",
    "ai:refresh": "node scripts/aiRefresh.mjs",
    "ai:check-ids": "node scripts/checkRecordIds.mjs",
    "generateArtifacts": "node scripts/runParallel.mjs \"tsx --tsconfig tsconfig.server.json scripts/generateTypeMaps.ts\" \"tsx --tsconfig tsconfig.server.json scripts/generateServerRequests.ts\"",
    "test": "npm run generateArtifacts && tsx --tsconfig tsconfig.server.json scripts/testAll.ts",
    "scaffold:test": "node scripts/scaffoldRouteTest.mjs",
    "scaffold:page": "node scripts/scaffoldPage.mjs",
    "test:e2e": "playwright test",
    "docker:up": "docker compose up --build -d",
    "docker:down": "docker compose down",
    "docker:check": "luckystack docker check",
    "prisma:generate": "tsx --tsconfig tsconfig.server.json scripts/prismaWithSecrets.ts generate",
    "prisma:db:push": "tsx --tsconfig tsconfig.server.json scripts/prismaWithSecrets.ts db push",
    "prisma:migrate:dev": "tsx --tsconfig tsconfig.server.json scripts/prismaWithSecrets.ts migrate dev",
    "help": "node scripts/help.mjs",
    "postinstall": "node scripts/aiRefresh.mjs --if-missing"
  },
  "dependencies": {
    "@luckystack/api": "^{{LUCKYSTACK_VERSION}}",
    "@luckystack/core": "^{{LUCKYSTACK_VERSION}}",
    "@luckystack/login": "^{{LUCKYSTACK_VERSION}}",
    "@luckystack/presence": "^{{LUCKYSTACK_VERSION}}",
    "@luckystack/error-tracking": "^{{LUCKYSTACK_VERSION}}",
    "@luckystack/server": "^{{LUCKYSTACK_VERSION}}",
    "@luckystack/sync": "^{{LUCKYSTACK_VERSION}}",
    "@fortawesome/fontawesome-svg-core": "^7.2.0",
    "@fortawesome/free-brands-svg-icons": "^7.2.0",
    "@fortawesome/free-regular-svg-icons": "^7.2.0",
    "@fortawesome/free-solid-svg-icons": "^7.2.0",
    "@fortawesome/react-fontawesome": "^3.3.0",
    "@prisma/client": "^6.19.3",
    "bcryptjs": "^3.0.0",
    "dotenv": "^16.6.1",
    "ioredis": "^5.10.1",
    "react": "^19.2.5",
    "react-dom": "^19.2.5",
    "react-router-dom": "^7.18.1",
    "sharp": "^0.35.3",
    "socket.io": "^4.8.3",
    "socket.io-client": "^4.8.3",
    "sonner": "^2.0.7",
    "uuid": "^14.0.0",
    "validator": "^13.15.35",
    "zod": "^4.0.0"
  },
  "devDependencies": {
    "@luckystack/cli": "^{{LUCKYSTACK_VERSION}}",
    "@luckystack/devkit": "^{{LUCKYSTACK_VERSION}}",
    "@luckystack/test-runner": "^{{LUCKYSTACK_VERSION}}",
    "@eslint/js": "^10.0.1",
    "@tailwindcss/postcss": "^4.2.2",
    "@types/node": "^22.0.0",
    "@types/react": "^19.2.14",
    "@types/react-dom": "^19.2.3",
    "@types/validator": "^13.15.10",
    "@typescript/native": "npm:typescript@^7.0.2",
    "@vitejs/plugin-react-swc": "^3.11.0",
    "eslint": "^10.12.0",
    "eslint-import-resolver-typescript": "^4.4.5",
    "eslint-plugin-i18next": "^6.1.5",
    "eslint-plugin-import-x": "^4.17.1",
    "eslint-plugin-jsx-a11y-x": "^0.2.0",
    "eslint-plugin-react-hooks": "^7.1.1",
    "eslint-plugin-react-refresh": "^0.5.7",
    "eslint-plugin-react-x": "^5.27.1",
    "eslint-plugin-unicorn": "^78.0.0",
    "globals": "^17.13.0",
    "postcss": "^8.5.23",
    "prettier": "^3.9.10",
    "prisma": "^6.19.3",
    "tailwindcss": "^4.2.2",
    "tsx": "^4.23.1",
    "typescript": "npm:@typescript/typescript6@^6.0.2",
    "typescript-eslint": "^8.58.2",
    "vite": "^6.4.2",
    "vite-tsconfig-paths": "^5.1.4"
  }
}
