{ "name": "sshkv", "version": "0.4.0", "private": true, "type": "module", "description": "SSHKeyVault – zentrale Verwaltung von SSH-Schluesseln mit Weboberflaeche", "packageManager": "pnpm@12.6.0", "engines": { "node": ">=24" }, "scripts": { "dev": "next dev -p 3400", "build": "next build", "build:worker": "esbuild src/worker/index.ts --bundle --platform=node --target=node24 --format=esm --outfile=dist/worker.mjs --banner:js=\"$(cat deploy/worker-banner.js)\" --external:@node-rs/argon2 --external:pg-native --external:cpu-features --external:*.node", "start": "next start -p 3400", "worker": "tsx src/worker/index.ts", "lint": "eslint", "typecheck": "tsc --noEmit", "format": "prettier --write .", "format:pruefen": "prettier --check .", "test": "vitest run", "test:watch": "vitest", "test:integration": "vitest run --config vitest.integration.config.mts", "test:ziele:up": "docker compose -f docker-compose.test.yml up -d --build --wait", "test:ziele:down": "docker compose -f docker-compose.test.yml down", "db:up": "docker compose -f docker-compose.dev.yml up -d --wait", "db:down": "docker compose -f docker-compose.dev.yml down", "db:migrate": "prisma migrate dev", "db:seed": "prisma db seed", "db:generate": "prisma generate", "issues:sync": "tsx scripts/gitea-issues.ts", "icons": "node scripts/icons.mjs", "postinstall": "prisma generate", "prepare": "husky", "build:all": "pnpm build && pnpm build:worker", "test:e2e": "playwright test" }, "lint-staged": { "*.{ts,tsx,mts,mjs}": [ "eslint --fix", "prettier --write" ], "*.{json,css,yml,yaml}": [ "prettier --write" ] }, "dependencies": { "@fontsource/ibm-plex-sans": "^5.3.0", "@fontsource/jetbrains-mono": "^5.3.0", "@fontsource/space-grotesk": "^5.3.0", "@node-rs/argon2": "^2.2.2", "@prisma/adapter-pg": "7.10.0", "@prisma/client": "7.10.0", "bcrypt-pbkdf": "^1.0.2", "clsx": "^2.1.1", "jose": "^6.2.12", "lucide-react": "1.47.0", "next": "16.3.6", "nodemailer": "10.0.10", "openid-client": "^6.8.8", "pg": "^8.23.1", "pg-boss": "^12.37.1", "qrcode": "^1.5.4", "react": "19.3.0", "react-dom": "19.3.0", "ssh2": "^1.17.0", "zod": "^4.6.5" }, "devDependencies": { "@commitlint/cli": "^21.2.3", "@commitlint/config-conventional": "^21.2.3", "@playwright/test": "1.63.0", "@tailwindcss/postcss": "^4.3.3", "@types/node": "^24.19.2", "@types/nodemailer": "8.0.2", "@types/pg": "^8.23.1", "@types/qrcode": "^1.5.6", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "@types/ssh2": "^1.15.6", "dotenv": "^18.0.7", "esbuild": "^0.28.2", "eslint": "^9.39.5", "eslint-config-next": "16.3.6", "eslint-config-prettier": "^10.1.8", "husky": "^9.1.7", "lint-staged": "^17.6.0", "prettier": "^3.9.10", "prisma": "7.10.0", "sharp": "^0.35.5", "tailwindcss": "^4.3.3", "tsx": "^4.23.15", "typescript": "~6.0.3", "vite": "8.3.0", "vitest": "5.0.1" } }