mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-07 04:12:04 +00:00
The breaking changes in 18 do not reach this repository: nothing preloads dotenv with -r, nothing reads a .env.vault, and both entry points in use (the default export in prisma.config.ts and the side-effect dotenv/config import in the one-shot scripts) keep their behaviour. dotenv/config stays quiet by default. What does change is the load message, which now goes to stderr. Prisma reads prisma.config.ts on every migrate deploy at container start, so both loads there pass quiet: true rather than adding two stderr lines to each boot. The image's /opt/prisma-cli install, which the config resolves dotenv from, moves to the same 18.0.6.
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": "^18.0.6",
|
|
"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.2.0",
|
|
"@types/node": "26.6.4",
|
|
"@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.2",
|
|
"@vitest/coverage-v8": "^4.1.5",
|
|
"ajv": "^8.20.0",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "16.3.8",
|
|
"knip": "^6.40.0",
|
|
"lefthook": "^2.1.17",
|
|
"pdf-parse": "^2.4.5",
|
|
"pdfjs-dist": "6.4.299",
|
|
"prettier": "^3.9.9",
|
|
"prettier-plugin-tailwindcss": "^0.8.1",
|
|
"shadcn": "^4.21.3",
|
|
"tailwindcss": "^4",
|
|
"testcontainers": "^12.2.0",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "^6",
|
|
"vitest": "^4.1.11"
|
|
}
|
|
}
|