Le bouton menait au registre de paramétrage juridique — un autre document, qui ne répond à aucune demande d'inspection. Le registre unique du personnel n'existait pas. Il se tient par établissement : celui-ci est demandé avant l'édition plutôt que déduit, car en tirer un au hasard pour une entreprise qui compte trente sites ne répondrait à rien. Une ligne par contrat et non par personne : un salarié réembauché a deux entrées et deux sorties, et les fondre effacerait l'interruption. Les partis y figurent aussi — c'est l'historique que l'inspection vient chercher. Les mentions manquantes sont annoncées avant le téléchargement, et comptées par salarié parce que la contravention l'est aussi. Découvrir un registre incomplet en l'ouvrant, c'est le découvrir devant l'inspection. L'édition est journalisée : le document rassemble l'identité, la nationalité et le parcours de tout le personnel d'un site. Une réserve, portée par le code et par le document : PlanFlow ne collecte pas le sexe, mention pourtant exigée. La colonne reste vide et alimente le décompte des dossiers incomplets, en attendant le champ. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
72 lines
1.7 KiB
JSON
72 lines
1.7 KiB
JSON
{
|
|
"name": "planflow",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"packageManager": "pnpm@10.33.0",
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "eslint .",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:e2e": "playwright test",
|
|
"db:generate": "prisma generate",
|
|
"db:migrate": "prisma migrate dev",
|
|
"db:deploy": "prisma migrate deploy",
|
|
"db:seed": "tsx prisma/seed.ts",
|
|
"db:studio": "prisma studio",
|
|
"mfa:reset": "tsx scripts/mfa-reset.ts",
|
|
"retention:purge": "tsx scripts/retention-purge.ts",
|
|
"verify": "pnpm typecheck && pnpm lint && pnpm test"
|
|
},
|
|
"prisma": {
|
|
"seed": "tsx prisma/seed.ts"
|
|
},
|
|
"dependencies": {
|
|
"@node-rs/argon2": "2.0.2",
|
|
"@prisma/adapter-pg": "7.9.1",
|
|
"@prisma/client": "7.9.1",
|
|
"next": "16.3.0",
|
|
"nodemailer": "^9.0.5",
|
|
"pdf-lib": "^1.17.1",
|
|
"pg": "8.22.0",
|
|
"qrcode": "^1.5.4",
|
|
"react": "19.2.8",
|
|
"react-dom": "19.2.8",
|
|
"zod": "4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "1.62.1",
|
|
"@tailwindcss/postcss": "4.3.3",
|
|
"@types/node": "22.19.4",
|
|
"@types/nodemailer": "^8.0.1",
|
|
"@types/pg": "8.20.4",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@types/react": "19.2.18",
|
|
"@types/react-dom": "19.2.4",
|
|
"dotenv": "^17.4.2",
|
|
"eslint": "9.39.1",
|
|
"eslint-config-next": "16.3.0",
|
|
"prisma": "7.9.1",
|
|
"tailwindcss": "4.3.3",
|
|
"tsx": "4.20.6",
|
|
"typescript": "5.9.3",
|
|
"vitest": "4.1.10"
|
|
},
|
|
"pnpm": {
|
|
"onlyBuiltDependencies": [
|
|
"@prisma/client",
|
|
"@prisma/engines",
|
|
"esbuild",
|
|
"prisma",
|
|
"unrs-resolver"
|
|
]
|
|
}
|
|
}
|