2026-10-08 02:01:58 +02:00
|
|
|
{
|
|
|
|
|
"$schema": "https://getcomposer.org/schema.json",
|
|
|
|
|
"name": "laravel/laravel",
|
|
|
|
|
"type": "project",
|
|
|
|
|
"description": "The skeleton application for the Laravel framework.",
|
|
|
|
|
"keywords": ["laravel", "framework"],
|
|
|
|
|
"license": "MIT",
|
|
|
|
|
"require": {
|
|
|
|
|
"php": "^8.3",
|
|
|
|
|
"bacon/bacon-qr-code": "^3.1",
|
2026-10-14 09:52:15 +02:00
|
|
|
"doctrine/dbal": "^4.5",
|
2026-10-08 02:01:58 +02:00
|
|
|
"laravel/framework": "^13.17",
|
ajoute le stock chaud, la correction automatique et les nouveaux essais de création de stack
Stock de stacks prêtes par lab dans Redis (prise atomique en Lua, ménage
par comparaison avec Heat, disjoncteur), files gérées par Horizon, séances
planifiables. Correcteur Go sur l'hyperviseur : socket Unix, commandes lues
dans le lab.yaml uniquement, exécution par l'agent invité QEMU. Une création
de stack ratée est supprimée et réessayée deux fois, puis la session passe
en échec, visible du prof.
Corrige aussi trois défauts des étapes précédentes : la console se coupait
à la première frappe d'un navigateur (trames texte), l'élève ne pouvait pas
rejoindre une séance, la déconnexion n'avait pas de jeton CSRF.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 21:52:16 +02:00
|
|
|
"laravel/horizon": "^5.50",
|
2026-10-14 01:23:23 +02:00
|
|
|
"laravel/sanctum": "^4.3",
|
2026-10-08 10:14:24 +02:00
|
|
|
"laravel/tinker": "^3.0",
|
2026-10-14 09:52:15 +02:00
|
|
|
"league/flysystem-aws-s3-v3": "^3.0",
|
ajoute Moodle LTI 1.3 (V2), une 6e façon de rejoindre une classe
LTI authentifie l'élève et le fait rejoindre sa classe (même code que
le code/QR existant), pas lancer un lab précis - relecture du
CLAUDE.md qui liste LTI avec les autres façons d'ajouter des élèves.
packbackbooks/lti-1p3-tool (Apache-2.0, recommandé par le CLAUDE.md),
trois ponts vers Redis/cookies/MariaDB, élève retrouvé par identité
Moodle stable pour ne jamais créer de doublon. Enregistrement d'une
plateforme/d'un déploiement par commande Artisan (opération rare,
faite à la main par Adam), jamais une page d'administration.
Corrige au passage un vrai bug préexistant trouvé en vérifiant en réel
sur le serveur : withoutMiddleware(ValidateCsrfToken::class) sur une
route ne retire jamais le vrai middleware CSRF (ValidateCsrfToken est
un alias déprécié de PreventRequestForgery, pas la classe réellement
enregistrée) - /csp-rapport avait le même défaut depuis l'étape 14,
invisible faute de surveillance. Corrigé pour les deux par la bonne
méthode (validateCsrfTokens except, dans bootstrap/app.php).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-14 13:51:47 +02:00
|
|
|
"packbackbooks/lti-1p3-tool": "^6.4",
|
2026-10-08 10:14:24 +02:00
|
|
|
"symfony/yaml": "^7.4"
|
2026-10-08 02:01:58 +02:00
|
|
|
},
|
|
|
|
|
"require-dev": {
|
|
|
|
|
"fakerphp/faker": "^1.23",
|
2026-10-12 21:32:52 +02:00
|
|
|
"larastan/larastan": "^3.0",
|
2026-10-08 02:01:58 +02:00
|
|
|
"laravel/pail": "^1.2.5",
|
|
|
|
|
"laravel/pao": "^1.0.6",
|
|
|
|
|
"laravel/pint": "^1.27",
|
|
|
|
|
"mockery/mockery": "^1.6",
|
|
|
|
|
"nunomaduro/collision": "^8.6",
|
|
|
|
|
"pestphp/pest": "^4.0",
|
|
|
|
|
"pestphp/pest-plugin-laravel": "^4.0",
|
|
|
|
|
"phpunit/phpunit": "^12.5.12"
|
|
|
|
|
},
|
|
|
|
|
"autoload": {
|
|
|
|
|
"psr-4": {
|
|
|
|
|
"App\\": "app/",
|
|
|
|
|
"Database\\Factories\\": "database/factories/",
|
|
|
|
|
"Database\\Seeders\\": "database/seeders/"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"autoload-dev": {
|
|
|
|
|
"psr-4": {
|
|
|
|
|
"Tests\\": "tests/"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"scripts": {
|
|
|
|
|
"setup": [
|
|
|
|
|
"composer install",
|
|
|
|
|
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\"",
|
|
|
|
|
"@php artisan key:generate",
|
|
|
|
|
"@php artisan migrate --force",
|
|
|
|
|
"npm install --ignore-scripts",
|
|
|
|
|
"npm run build"
|
|
|
|
|
],
|
|
|
|
|
"dev": [
|
|
|
|
|
"Composer\\Config::disableProcessTimeout",
|
|
|
|
|
"@php artisan dev"
|
|
|
|
|
],
|
|
|
|
|
"test": [
|
|
|
|
|
"@php artisan config:clear --ansi @no_additional_args",
|
|
|
|
|
"@php artisan test"
|
|
|
|
|
],
|
|
|
|
|
"post-autoload-dump": [
|
|
|
|
|
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
|
|
|
|
"@php artisan package:discover --ansi"
|
|
|
|
|
],
|
|
|
|
|
"post-update-cmd": [
|
|
|
|
|
"@php artisan vendor:publish --tag=laravel-assets --ansi --force"
|
|
|
|
|
],
|
|
|
|
|
"post-root-package-install": [
|
|
|
|
|
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
|
|
|
|
],
|
|
|
|
|
"post-create-project-cmd": [
|
|
|
|
|
"@php artisan key:generate --ansi",
|
|
|
|
|
"@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
|
|
|
|
|
"@php artisan migrate --graceful --ansi"
|
|
|
|
|
],
|
|
|
|
|
"pre-package-uninstall": [
|
|
|
|
|
"Illuminate\\Foundation\\ComposerScripts::prePackageUninstall"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"extra": {
|
|
|
|
|
"laravel": {
|
|
|
|
|
"dont-discover": []
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"config": {
|
|
|
|
|
"optimize-autoloader": true,
|
|
|
|
|
"preferred-install": "dist",
|
|
|
|
|
"sort-packages": true,
|
|
|
|
|
"allow-plugins": {
|
|
|
|
|
"pestphp/pest-plugin": true,
|
|
|
|
|
"php-http/discovery": true
|
|
|
|
|
},
|
|
|
|
|
"platform": {
|
|
|
|
|
"php": "8.3.0"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"minimum-stability": "stable",
|
|
|
|
|
"prefer-stable": true
|
|
|
|
|
}
|