{ "name": "healthlog", "version": "1.47.1", "description": "Self-hosted personal-health-tracking PWA with Withings integration, AI insights, and doctor-report PDF export.", "license": "PolyForm-Noncommercial-1.0.0", "homepage": "https://healthlog.dev", "repository": { "type": "git", "url": "git+https://github.com/MBombeck/HealthLog.git" }, "bugs": { "url": "https://github.com/MBombeck/HealthLog/issues" }, "keywords": [ "health-tracking", "self-hosted", "pwa", "blood-pressure", "withings", "next.js", "prisma", "passkey" ], "private": true, "packageManager": "pnpm@11.15.1", "scripts": { "prepare": "node scripts/prepare.mjs", "dev": "next dev", "predev": "node scripts/generate-i18n-boot.mjs && node scripts/stage-tesseract-assets.mjs", "prebuild": "node scripts/generate-sw-version.mjs && node scripts/generate-i18n-boot.mjs && node scripts/stage-tesseract-assets.mjs", "build": "NODE_OPTIONS=--max-old-space-size=8192 next build", "analyze": "ANALYZE=1 next build", "bundle-report": "node scripts/check-bundle-budget.mjs", "bundle-check": "node scripts/check-bundle-budget.mjs --check", "start": "next start", "lint": "eslint", "db:generate": "prisma generate", "db:push": "prisma db push", "db:migrate": "prisma migrate dev", "db:migrate:deploy": "prisma migrate deploy", "db:studio": "prisma studio", "format": "prettier --write .", "format:check": "prettier --check .", "typecheck": "NODE_OPTIONS=--max-old-space-size=8192 tsc --noEmit", "test": "vitest run", "test:watch": "vitest", "test:integration": "vitest run --config vitest.integration.config.mts", "e2e": "playwright test", "e2e:critical": "playwright test --grep @critical", "e2e:ui": "playwright test --ui", "openapi:generate": "npx tsx scripts/generate-openapi.ts", "openapi:check": "npx tsx scripts/check-openapi.ts", "check-env": "npx tsx scripts/check-env.ts", "mcp:stdio": "npx tsx src/cli/mcp-stdio.ts" }, "dependencies": { "@aws-sdk/client-s3": "^3.1161.0", "@aws-sdk/lib-storage": "3.1161.0", "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@modelcontextprotocol/sdk": "^1.32.2", "@napi-rs/canvas": "1.1.0", "@node-rs/argon2": "^2.2.2", "@parse/node-apn": "^8.2.0", "@prisma/adapter-pg": "^7.10.1", "@prisma/client": "^7.10.1", "@simplewebauthn/browser": "^14.0.0", "@simplewebauthn/server": "^14.0.3", "@tanstack/react-query": "5.105.3", "@tanstack/react-virtual": "^3.14.26", "@types/sax": "^1.2.7", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "date-fns": "^4.4.0", "dotenv": "^18.0.9", "fflate": "^0.8.3", "jose": "^6.2.15", "jspdf": "^4.2.1", "jspdf-autotable": "^5.0.9", "lucide-react": "^1.67.0", "mmdb-lib": "^3.0.4", "next": "16.4.5", "nodemailer": "10.3.1", "otpauth": "^9.6.0", "p-limit": "^7.3.3", "pg": "^8.23.1", "pg-boss": "^12.38.0", "prisma": "^7.10.1", "qrcode": "^1.5.4", "radix-ui": "^1.8.1", "react": "19.3.1", "react-day-picker": "^10.0.2", "react-dom": "19.3.1", "recharts": "^3.10.1", "rrule": "^2.8.1", "sax": "^1.6.1", "sonner": "^2.0.8", "tailwind-merge": "^3.7.0", "tesseract.js": "^7.0.0", "undici": "^8.12.2", "web-push": "^3.6.7", "yaml": "^2.9.1", "zod": "^4.6.7", "zod-openapi": "^6.0.2", "zxcvbn-typescript": "^5.0.1" }, "devDependencies": { "@axe-core/playwright": "^4.14.0", "@next/bundle-analyzer": "16.4.5", "@playwright/test": "^1.64.1", "@stryker-mutator/core": "10.1.1", "@stryker-mutator/vitest-runner": "10.0.0", "@tailwindcss/postcss": "^4", "@tesseract.js-data/deu": "1.0.0", "@tesseract.js-data/eng": "1.0.0", "@testcontainers/postgresql": "^12.2.1", "@types/node": "26.6.6", "@types/pg": "^8.23.1", "@types/qrcode": "^1.5.6", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "@types/web-push": "^3.6.4", "@vitest/browser-playwright": "^5.0.5", "@vitest/coverage-v8": "^5.0.5", "ajv": "^8.20.0", "eslint": "^9", "eslint-config-next": "16.4.5", "fast-check": "4.10.2", "knip": "^6.44.1", "lefthook": "^2.2.2", "pdfjs-dist": "6.4.299", "prettier": "^3.9.10", "prettier-plugin-tailwindcss": "^0.8.1", "shadcn": "^4.23.0", "tailwindcss": "^4", "testcontainers": "^12.2.1", "tw-animate-css": "^1.4.0", "typescript": "^6", "vitest": "^5.0.5", "vitest-browser-react": "^2.3.0" } }