Files
ita-ito-horaires/package.json
T
vliaudatandClaude Opus 5 ebc69dc109 chore: add a command-line translation check
Mirrors the button on the settings page, for verifying a deployment from
the host before anyone signs in, and for watching the cache work.

Measured against the live service, which settles a question the spec had
guessed at: a short phrase takes between 4.6 and 10.7 seconds, because
the endpoint really does start a Claude Code process. The ten-second
timeout the spec assumed would have failed intermittently on exactly the
kind of message this shop writes. Thirty seconds stands.

Cached answers come back in 3 milliseconds, so the cache is worth
roughly three thousand times its complexity.

Quality checked on real phrasing: times and dates survive unchanged
("Ouverture retardée à 14:00" to "Delayed opening at 14:00 today"),
which is what the prompt asks for and what the screen needs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012cSY9pVhZmJUKNN7wf1Myd
2026-09-20 22:08:39 +02:00

67 lines
1.8 KiB
JSON

{
"name": "ita-ito-trmnl-admin",
"version": "0.1.0",
"private": true,
"license": "UNLICENSED",
"engines": {
"node": ">=20.9"
},
"scripts": {
"dev": "next dev --port 3010",
"build": "next build",
"start": "next start --port ${PORT:-3010}",
"lint": "eslint . --max-warnings 0",
"typecheck": "tsc --noEmit",
"test": "vitest run",
"test:watch": "vitest",
"coverage": "vitest run --coverage",
"seed": "tsx prisma/seed.ts",
"screen:preview": "tsx scripts/preview.ts",
"brand": "tsx scripts/brand.ts",
"e2e": "playwright test",
"holidays:sync": "tsx scripts/sync-holidays.ts",
"translate:test": "tsx scripts/test-translation.ts"
},
"dependencies": {
"@fontsource-variable/inter": "^5.3.0",
"@fontsource-variable/source-serif-4": "^5.3.0",
"@prisma/adapter-pg": "^7.10.0",
"@prisma/client": "^7.10.0",
"@resvg/resvg-js": "^2.6.2",
"date-fns": "^4.4.0",
"date-fns-tz": "^3.2.0",
"dotenv": "^18.0.1",
"next": "^16.3.5",
"next-auth": "^5.0.0-beta.32",
"node-cron": "^4.6.0",
"pg": "^8.23.0",
"react": "^19.3.0",
"react-dom": "^19.3.0",
"satori": "^0.33.4",
"zod": "^4.6.5"
},
"devDependencies": {
"@eslint/js": "^9.39.5",
"@fontsource/inter": "^5.3.0",
"@fontsource/source-serif-4": "^5.3.0",
"@tailwindcss/postcss": "^4.3.3",
"@types/node": "^26.6.2",
"@types/node-cron": "^3.0.11",
"@types/pg": "^8.23.1",
"@types/react": "^19.3.0",
"@types/react-dom": "^19.3.0",
"@vitest/coverage-v8": "^4.1.11",
"eslint": "^9.39.5",
"eslint-config-next": "^16.3.5",
"msw": "^2.15.0",
"postcss": "^8.5.28",
"prisma": "^7.10.0",
"sharp": "^0.35.4",
"tailwindcss": "^4.3.3",
"tsx": "^4.23.15",
"typescript": "^6.0.3",
"typescript-eslint": "^8.70.0",
"vitest": "^4.1.11"
}
}