Ein Lauf wird vorbereitet, abgearbeitet, abgeschlossen und archiviert. Der Archiv-Schreibschutz sitzt in genau einer Funktion und wird vor jeder Aenderung an Kopfdaten, Schrittergebnis und Kommentar gerufen; abgeschlossen bleibt aenderbar, archiviert nicht. Die Abarbeitungsansicht speichert jeden Schritt einzeln, frischt sich alle zehn Sekunden auf und pausiert im Hintergrund. Sie traegt in der Polling-Antwort keine Befehle und laedt sich auch nicht von selbst neu, solange ein generiertes Passwort auf der Seite steht: beides tauschte es dem Techniker zwischen Lesen und Einfuegen aus. Der unabhaengige Review fand zwei Blocker: ein Befehl konnte zwei verschiedene Passwoerter tragen (Konto bekommt A, Benutzer erfaehrt B), und „nicht zutreffend“ liess sich nicht zuruecknehmen, waehrend die Oberflaeche behauptete, nichts sei gewaehlt. Beides behoben und in Tests festgehalten. Closes #13 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
104 lines
3.0 KiB
JSON
104 lines
3.0 KiB
JSON
{
|
|
"name": "laufzettel",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"description": "Checklisten fuer wiederkehrende IT-Arbeiten: versionierte Vorlagen, Laeufe, Archiv, QR-Tags",
|
|
"packageManager": "pnpm@12.6.0",
|
|
"engines": {
|
|
"node": ">=24"
|
|
},
|
|
"scripts": {
|
|
"beispiel:stammdaten": "tsx scripts/beispiel-stammdaten.ts",
|
|
"beispiel:vorlage": "tsx scripts/beispiel-vorlage.ts",
|
|
"beispiel:lauf": "tsx scripts/beispiel-lauf.ts",
|
|
"build": "next build",
|
|
"db:down": "docker compose -f docker-compose.dev.yml down",
|
|
"db:generate": "prisma generate",
|
|
"db:migrate": "prisma migrate dev",
|
|
"db:seed": "prisma db seed",
|
|
"db:studio": "prisma studio",
|
|
"db:up": "docker compose -f docker-compose.dev.yml up -d",
|
|
"dev": "next dev",
|
|
"docs:pdf": "tsx scripts/anleitung-pdf.ts",
|
|
"docs:screenshots": "tsx scripts/screenshots.ts",
|
|
"format": "prettier --write .",
|
|
"format:pruefen": "prettier --check .",
|
|
"issues:sync": "tsx scripts/gitea-issues.ts",
|
|
"lint": "eslint",
|
|
"postinstall": "prisma generate",
|
|
"prepare": "husky",
|
|
"pruefe:doku": "node scripts/pruefe-doku.mjs",
|
|
"start": "next start",
|
|
"test": "vitest run",
|
|
"test:e2e": "playwright test",
|
|
"test:watch": "vitest",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@fontsource-variable/jetbrains-mono": "^5.3.0",
|
|
"@fontsource-variable/manrope": "^5.3.0",
|
|
"@fontsource-variable/space-grotesk": "^5.3.0",
|
|
"@hookform/resolvers": "^5.9.1",
|
|
"@node-rs/argon2": "^2.2.1",
|
|
"@prisma/adapter-pg": "7.10.0",
|
|
"@prisma/client": "7.10.0",
|
|
"barcode-detector": "^3.2.2",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cn": "^0.4.0",
|
|
"jose": "^6.2.12",
|
|
"ldapts": "^9.2.0",
|
|
"lucide-react": "1.47.0",
|
|
"next": "16.3.6",
|
|
"node-cron": "^4.6.0",
|
|
"openid-client": "^6.8.8",
|
|
"pg": "^8.23.0",
|
|
"qrcode": "^1.5.4",
|
|
"radix-ui": "^1.6.7",
|
|
"react": "19.3.0",
|
|
"react-dom": "19.3.0",
|
|
"react-hook-form": "^7.88.0",
|
|
"react-markdown": "^10.1.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"tailwind-merge": "^3.7.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.13.6",
|
|
"@types/pg": "^8.23.1",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@types/react": "^19.3.0",
|
|
"@types/react-dom": "^19.3.0",
|
|
"dotenv": "^17.4.2",
|
|
"eslint": "^9.39.5",
|
|
"eslint-config-next": "16.3.6",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"husky": "^9.1.7",
|
|
"lint-staged": "^17.5.1",
|
|
"prettier": "^3.9.9",
|
|
"prisma": "7.10.0",
|
|
"tailwindcss": "^4.3.3",
|
|
"tsx": "^4.23.13",
|
|
"typescript": "~6.0.3",
|
|
"vite": "8.3.0",
|
|
"vitest": "5.0.1",
|
|
"yaml": "^2.9.1"
|
|
},
|
|
"lint-staged": {
|
|
"*.{ts,tsx,mts,mjs}": [
|
|
"eslint --fix",
|
|
"prettier --write"
|
|
],
|
|
"*.{json,css,md,yml,yaml}": [
|
|
"prettier --write"
|
|
]
|
|
}
|
|
}
|