SvelteKit 2 + Svelte 5 runes + TS strict, adapter-static en prérendu intégral, trailingSlash always, paths.relative false. Mesures de la porte de sortie - 56 pages HTML prérendues (13 fiches × 3 langues + pages de service) - 59 Ko de JS gzip (budget : 170) · build total 1,4 Mo (budget : 2 Mo) - 0 chargement tiers, vérifié par grep du build - fiche lisible sans JS : 1694 caractères de texte rendu - npm run check : 248 fichiers, 0 erreur, 0 warning - 0 erreur console au chargement Lighthouse non exécuté : porte encore ouverte, à vérifier avant la S6. Charte OKI Tokens partagés, thème sombre par défaut, Archivo et Inter self-hébergées (124 Ko de woff2), flag-bar à segments francs, bouton à balayage or, gate prefers-reduced-motion unique. CSP stricte en .htaccess et _headers, 404 statique autonome, PWA avec registerSW à chemin absolu (playbook 2.9). L'interface kréyòl n'est pas écrite par l'agent Le catalogue gcf ne contient que les termes venant des documents du porteur — 10 chaînes sur 132. Le reste vaut null et se replie sur le français ; check:i18n produit la liste des 122 phrases à traduire, par écran. <html lang> annonce la langue réellement écrite : fr tant que la couverture reste sous 60 %, avec les fragments kréyòl marqués un par un. Des tournures kréyòl que j'avais inventées ont été retirées. Corrections en cours de build - vite-plugin-pwa/sveltekit n'existe pas sans @vite-pwa/sveltekit : VitePWA en direct, comme le prescrivait déjà le playbook. - @sveltejs/vite-plugin-svelte v7 n'exporte plus sveltekit : import depuis @sveltejs/kit/vite, vérifié sur les exports réels. - Le sélecteur de langue fabriquait /fr/offline/, page inexistante. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
41 lines
1.4 KiB
JSON
41 lines
1.4 KiB
JSON
{
|
|
"name": "ki-fwi",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"description": "KI FWI SA YÉ ? — jeu éducatif libre : reconnaître les fruits, les arbres et les plantes des Antilles.",
|
|
"license": "AGPL-3.0-or-later",
|
|
"type": "module",
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"scripts": {
|
|
"verify:taxa": "node tools/data/verify-taxa.mjs",
|
|
"ingest:commons": "node tools/data/ingest-commons.mjs",
|
|
"build:dataset": "node tools/data/build-dataset.mjs",
|
|
"check:audio": "node tools/data/check-audio.mjs",
|
|
"validate:data": "node tools/data/validate.mjs",
|
|
"build:credits": "node tools/data/build-credits.mjs",
|
|
"test:porte": "node tools/data/test-porte.mjs",
|
|
"rapport:manques": "node tools/data/rapport-manques.mjs",
|
|
"dev": "vite dev",
|
|
"build": "vite build && node tools/build/sitemap.mjs",
|
|
"preview": "vite preview",
|
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
"check:i18n": "node tools/data/check-i18n.mjs"
|
|
},
|
|
"devDependencies": {
|
|
"@fontsource/archivo": "^5.3.0",
|
|
"@fontsource/inter": "^5.3.0",
|
|
"@sveltejs/adapter-static": "^3.0.10",
|
|
"@sveltejs/kit": "^2.70.1",
|
|
"@sveltejs/vite-plugin-svelte": "^7.2.0",
|
|
"ajv": "^8.17.1",
|
|
"ajv-formats": "^3.0.1",
|
|
"svelte": "^5.56.8",
|
|
"svelte-check": "^4.7.4",
|
|
"typescript": "^5.9.3",
|
|
"vite": "^8.1.5",
|
|
"vite-plugin-pwa": "^1.3.0"
|
|
}
|
|
}
|