mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 12:32:43 +00:00
With 16.4.0 a document sheet opened through ?doc= stays open after Back, and the [ / ] day keys sometimes leave ?day= where it was. Three end-to-end journeys fail 3 of 40 repeated runs on 16.4.0 and 0 of 80 on 16.3.8 with every other update in place, and CI hit the same journeys on both viewports. 16.3.8 already carries every published security fix, so Dependabot skips 16.4.0 for next and the two packages that move with it.
143 lines
4.5 KiB
JSON
143 lines
4.5 KiB
JSON
{
|
|
"name": "healthlog",
|
|
"version": "1.42.0",
|
|
"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: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.1146.0",
|
|
"@aws-sdk/lib-storage": "3.1146.0",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@hookform/resolvers": "^5.9.1",
|
|
"@modelcontextprotocol/sdk": "^1.32.1",
|
|
"@napi-rs/canvas": "1.0.10",
|
|
"@node-rs/argon2": "^2.2.2",
|
|
"@parse/node-apn": "^8.1.0",
|
|
"@prisma/adapter-pg": "^7.10.0",
|
|
"@prisma/client": "^7.10.0",
|
|
"@simplewebauthn/browser": "^14.0.0",
|
|
"@simplewebauthn/server": "^14.0.3",
|
|
"@tanstack/react-query": "5.104.1",
|
|
"@tanstack/react-virtual": "^3.14.13",
|
|
"@types/sax": "^1.2.7",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"date-fns": "^4.4.0",
|
|
"dotenv": "^17.4.2",
|
|
"fflate": "^0.8.3",
|
|
"jose": "^6.2.12",
|
|
"jspdf": "^4.2.1",
|
|
"jspdf-autotable": "^5.0.8",
|
|
"lucide-react": "^1.52.0",
|
|
"mmdb-lib": "^3.0.3",
|
|
"next": "16.3.8",
|
|
"next-themes": "^0.4.6",
|
|
"nodemailer": "10.0.15",
|
|
"otpauth": "^9.5.2",
|
|
"p-limit": "^7.3.3",
|
|
"pg": "^8.23.1",
|
|
"pg-boss": "^12.37.1",
|
|
"prisma": "^7.10.0",
|
|
"qrcode": "^1.5.4",
|
|
"radix-ui": "^1.7.0",
|
|
"react": "19.3.0",
|
|
"react-day-picker": "^10.0.2",
|
|
"react-dom": "19.3.0",
|
|
"react-hook-form": "7.89.0",
|
|
"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.11.2",
|
|
"web-push": "^3.6.7",
|
|
"yaml": "^2.9.1",
|
|
"zod": "^4.4.3",
|
|
"zod-openapi": "^6.0.2",
|
|
"zxcvbn-typescript": "^5.0.1"
|
|
},
|
|
"devDependencies": {
|
|
"@axe-core/playwright": "^4.13.0",
|
|
"@next/bundle-analyzer": "^16.3.3",
|
|
"@playwright/test": "^1.63.0",
|
|
"@tailwindcss/postcss": "^4",
|
|
"@tesseract.js-data/deu": "1.0.0",
|
|
"@tesseract.js-data/eng": "1.0.0",
|
|
"@testcontainers/postgresql": "^12.1.0",
|
|
"@types/node": "26.6.2",
|
|
"@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",
|
|
"@vitejs/plugin-react": "^6.1.1",
|
|
"@vitest/coverage-v8": "^4.1.5",
|
|
"ajv": "^8.20.0",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "16.3.8",
|
|
"knip": "^6.32.3",
|
|
"lefthook": "^2.1.12",
|
|
"pdf-parse": "^2.4.5",
|
|
"pdfjs-dist": "6.3.289",
|
|
"prettier": "^3.9.9",
|
|
"prettier-plugin-tailwindcss": "^0.8.1",
|
|
"shadcn": "^4.16.1",
|
|
"tailwindcss": "^4",
|
|
"testcontainers": "^12.2.0",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "^6",
|
|
"vitest": "^4.1.11"
|
|
}
|
|
}
|