From 0e9ea8acdd68151843f68e96a51c7cab26bb1e3d Mon Sep 17 00:00:00 2001 From: Stephen Gesityan Date: Wed, 16 Apr 2025 15:13:54 +0700 Subject: [PATCH] Tes --- .editorconfig | 18 + .env.example | 59 + .gitattributes | 11 + .gitignore | 19 + app/Console/Kernel.php | 27 + app/Exceptions/Handler.php | 30 + app/Http/Controllers/Controller.php | 12 + app/Http/Controllers/pages/HomeController.php | 13 + .../Controllers/pages/VenueController.php | 69 + app/Http/Kernel.php | 68 + app/Http/Middleware/Authenticate.php | 17 + app/Http/Middleware/EncryptCookies.php | 17 + .../PreventRequestsDuringMaintenance.php | 17 + .../Middleware/RedirectIfAuthenticated.php | 30 + app/Http/Middleware/TrimStrings.php | 19 + app/Http/Middleware/TrustHosts.php | 20 + app/Http/Middleware/TrustProxies.php | 28 + app/Http/Middleware/ValidateSignature.php | 22 + app/Http/Middleware/VerifyCsrfToken.php | 17 + app/Models/User.php | 45 + app/Providers/AppServiceProvider.php | 24 + app/Providers/AuthServiceProvider.php | 26 + app/Providers/BroadcastServiceProvider.php | 19 + app/Providers/EventServiceProvider.php | 38 + app/Providers/RouteServiceProvider.php | 40 + artisan | 53 + bootstrap/app.php | 55 + bootstrap/cache/.gitignore | 2 + composer.json | 66 + composer.lock | 8129 +++++++++++++++++ config/app.php | 188 + config/auth.php | 115 + config/broadcasting.php | 71 + config/cache.php | 111 + config/cors.php | 34 + config/database.php | 151 + config/filesystems.php | 76 + config/hashing.php | 54 + config/logging.php | 131 + config/mail.php | 134 + config/queue.php | 109 + config/sanctum.php | 83 + config/services.php | 34 + config/session.php | 214 + config/view.php | 36 + database/.gitignore | 1 + database/factories/UserFactory.php | 44 + .../2014_10_12_000000_create_users_table.php | 32 + ...000_create_password_reset_tokens_table.php | 28 + ..._08_19_000000_create_failed_jobs_table.php | 32 + ...01_create_personal_access_tokens_table.php | 33 + database/seeders/DatabaseSeeder.php | 22 + package-lock.json | 2395 +++++ package.json | 16 + phpunit.xml | 32 + postcss.config.js | 6 + public/.htaccess | 21 + public/favicon.ico | 0 public/images/ayo.png | Bin 0 -> 7921 bytes public/images/billiard1.jpg | Bin 0 -> 31081 bytes public/images/billiard2.jpg | Bin 0 -> 44990 bytes public/images/billiard3.jpg | Bin 0 -> 39094 bytes public/images/billiard4.jpg | Bin 0 -> 43273 bytes public/images/map.jpg | Bin 0 -> 9102 bytes public/images/meja.jpg | Bin 0 -> 3907 bytes public/index.php | 55 + public/robots.txt | 2 + resources/css/app.css | 3 + resources/js/app.js | 1 + resources/js/bootstrap.js | 32 + resources/views/layouts/main.blade.php | 116 + resources/views/pages/home.blade.php | 105 + resources/views/pages/venue.blade.php | 83 + routes/api.php | 19 + routes/channels.php | 18 + routes/console.php | 19 + routes/web.php | 8 + storage/app/.gitignore | 3 + storage/app/public/.gitignore | 2 + storage/framework/.gitignore | 9 + storage/framework/cache/.gitignore | 3 + storage/framework/cache/data/.gitignore | 2 + storage/framework/sessions/.gitignore | 2 + storage/framework/testing/.gitignore | 2 + storage/framework/views/.gitignore | 2 + storage/logs/.gitignore | 2 + tailwind.config.js | 19 + tests/CreatesApplication.php | 21 + tests/Feature/ExampleTest.php | 19 + tests/TestCase.php | 10 + tests/Unit/ExampleTest.php | 16 + vite.config.js | 11 + 92 files changed, 13797 insertions(+) create mode 100644 .editorconfig create mode 100644 .env.example create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 app/Console/Kernel.php create mode 100644 app/Exceptions/Handler.php create mode 100644 app/Http/Controllers/Controller.php create mode 100644 app/Http/Controllers/pages/HomeController.php create mode 100644 app/Http/Controllers/pages/VenueController.php create mode 100644 app/Http/Kernel.php create mode 100644 app/Http/Middleware/Authenticate.php create mode 100644 app/Http/Middleware/EncryptCookies.php create mode 100644 app/Http/Middleware/PreventRequestsDuringMaintenance.php create mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php create mode 100644 app/Http/Middleware/TrimStrings.php create mode 100644 app/Http/Middleware/TrustHosts.php create mode 100644 app/Http/Middleware/TrustProxies.php create mode 100644 app/Http/Middleware/ValidateSignature.php create mode 100644 app/Http/Middleware/VerifyCsrfToken.php create mode 100644 app/Models/User.php create mode 100644 app/Providers/AppServiceProvider.php create mode 100644 app/Providers/AuthServiceProvider.php create mode 100644 app/Providers/BroadcastServiceProvider.php create mode 100644 app/Providers/EventServiceProvider.php create mode 100644 app/Providers/RouteServiceProvider.php create mode 100644 artisan create mode 100644 bootstrap/app.php create mode 100644 bootstrap/cache/.gitignore create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/app.php create mode 100644 config/auth.php create mode 100644 config/broadcasting.php create mode 100644 config/cache.php create mode 100644 config/cors.php create mode 100644 config/database.php create mode 100644 config/filesystems.php create mode 100644 config/hashing.php create mode 100644 config/logging.php create mode 100644 config/mail.php create mode 100644 config/queue.php create mode 100644 config/sanctum.php create mode 100644 config/services.php create mode 100644 config/session.php create mode 100644 config/view.php create mode 100644 database/.gitignore create mode 100644 database/factories/UserFactory.php create mode 100644 database/migrations/2014_10_12_000000_create_users_table.php create mode 100644 database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php create mode 100644 database/migrations/2019_08_19_000000_create_failed_jobs_table.php create mode 100644 database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php create mode 100644 database/seeders/DatabaseSeeder.php create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 phpunit.xml create mode 100644 postcss.config.js create mode 100644 public/.htaccess create mode 100644 public/favicon.ico create mode 100644 public/images/ayo.png create mode 100644 public/images/billiard1.jpg create mode 100644 public/images/billiard2.jpg create mode 100644 public/images/billiard3.jpg create mode 100644 public/images/billiard4.jpg create mode 100644 public/images/map.jpg create mode 100644 public/images/meja.jpg create mode 100644 public/index.php create mode 100644 public/robots.txt create mode 100644 resources/css/app.css create mode 100644 resources/js/app.js create mode 100644 resources/js/bootstrap.js create mode 100644 resources/views/layouts/main.blade.php create mode 100644 resources/views/pages/home.blade.php create mode 100644 resources/views/pages/venue.blade.php create mode 100644 routes/api.php create mode 100644 routes/channels.php create mode 100644 routes/console.php create mode 100644 routes/web.php create mode 100644 storage/app/.gitignore create mode 100644 storage/app/public/.gitignore create mode 100644 storage/framework/.gitignore create mode 100644 storage/framework/cache/.gitignore create mode 100644 storage/framework/cache/data/.gitignore create mode 100644 storage/framework/sessions/.gitignore create mode 100644 storage/framework/testing/.gitignore create mode 100644 storage/framework/views/.gitignore create mode 100644 storage/logs/.gitignore create mode 100644 tailwind.config.js create mode 100644 tests/CreatesApplication.php create mode 100644 tests/Feature/ExampleTest.php create mode 100644 tests/TestCase.php create mode 100644 tests/Unit/ExampleTest.php create mode 100644 vite.config.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8f0de65 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..ea0665b --- /dev/null +++ b/.env.example @@ -0,0 +1,59 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +LOG_CHANNEL=stack +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=laravel +DB_USERNAME=root +DB_PASSWORD= + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +FILESYSTEM_DISK=local +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=120 + +MEMCACHED_HOST=127.0.0.1 + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=mailpit +MAIL_PORT=1025 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_HOST= +PUSHER_PORT=443 +PUSHER_SCHEME=https +PUSHER_APP_CLUSTER=mt1 + +VITE_APP_NAME="${APP_NAME}" +VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +VITE_PUSHER_HOST="${PUSHER_HOST}" +VITE_PUSHER_PORT="${PUSHER_PORT}" +VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" +VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fcb21d3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +* text=auto eol=lf + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +/.github export-ignore +CHANGELOG.md export-ignore +.styleci.yml export-ignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7fe978f --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +/.phpunit.cache +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/vendor +.env +.env.backup +.env.production +.phpunit.result.cache +Homestead.json +Homestead.yaml +auth.json +npm-debug.log +yarn-error.log +/.fleet +/.idea +/.vscode diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php new file mode 100644 index 0000000..e6b9960 --- /dev/null +++ b/app/Console/Kernel.php @@ -0,0 +1,27 @@ +command('inspire')->hourly(); + } + + /** + * Register the commands for the application. + */ + protected function commands(): void + { + $this->load(__DIR__.'/Commands'); + + require base_path('routes/console.php'); + } +} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php new file mode 100644 index 0000000..56af264 --- /dev/null +++ b/app/Exceptions/Handler.php @@ -0,0 +1,30 @@ + + */ + protected $dontFlash = [ + 'current_password', + 'password', + 'password_confirmation', + ]; + + /** + * Register the exception handling callbacks for the application. + */ + public function register(): void + { + $this->reportable(function (Throwable $e) { + // + }); + } +} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php new file mode 100644 index 0000000..77ec359 --- /dev/null +++ b/app/Http/Controllers/Controller.php @@ -0,0 +1,12 @@ + [ + 'name' => 'Capitano Billiard', + 'location' => 'Genteng', + 'address' => 'Jl. Hasanudin No.II, Dusun Krajan, Genteng Wetan, Kec. Genteng, Kabupaten Banyuwangi', + 'price' => 30000, + 'image' => 'images/billiard2.jpg', + 'tables' => [ + ['name' => 'Table 1', 'brand' => 'Cosmic', 'status' => 'Available'], + ['name' => 'Table 2', 'brand' => 'Cosmic', 'status' => 'Booked'], + ['name' => 'Table 3', 'brand' => 'Cosmic', 'status' => 'Available'], + ['name' => 'Table 4', 'brand' => 'Cosmic', 'status' => 'Available'], + ['name' => 'Table 5', 'brand' => 'A Plus Premier', 'status' => 'Booked'], + ['name' => 'Table 6', 'brand' => 'A Plus Premier', 'status' => 'Booked'], + ['name' => 'Table 7', 'brand' => 'A Plus Premier', 'status' => 'Available'], + ], + ], + 'osing' => [ + 'name' => 'Osing Billiard Center', + 'location' => 'Lidah', + 'address' => 'Dusun Krajan, Kalirejo, Kec. Kabat, Kabupaten Banyuwangi', + 'price' => 25000, + 'image' => 'images/billiard3.jpg', + 'tables' => [ + ['name' => 'Table 1', 'brand' => 'Xingjue', 'status' => 'Booked'], + ['name' => 'Table 2', 'brand' => 'Xingjue', 'status' => 'Booked'], + ['name' => 'Table 3', 'brand' => 'Xingjue', 'status' => 'Available'], + ['name' => 'Table 4', 'brand' => 'Xingjue', 'status' => 'Available'], + ['name' => 'Table 5', 'brand' => 'Xingjue', 'status' => 'Booked'], + ['name' => 'Table 6', 'brand' => 'Xingjue', 'status' => 'Available'], + ['name' => 'Table 7', 'brand' => 'Xingjue', 'status' => 'Available'], + ], + ], + 'das' => [ + 'name' => 'DAS Game & Billiard', + 'location' => 'Jalen', + 'address' => 'Jl. Samiran, Jalen Parungan, Setail, Kec. Genteng, Kabupaten Banyuwangi', + 'price' => 20000, + 'image' => 'images/billiard4.jpg', + 'tables' => [ + ['name' => 'Table 1', 'brand' => 'Cosmic', 'status' => 'Available'], + ['name' => 'Table 2', 'brand' => 'Cosmic', 'status' => 'Booked'], + ['name' => 'Table 3', 'brand' => 'Cosmic', 'status' => 'Available'], + ['name' => 'Table 4', 'brand' => 'Cosmic', 'status' => 'Booked'], + ['name' => 'Table 5', 'brand' => 'Cosmic', 'status' => 'Booked'], + ['name' => 'Table 6', 'brand' => 'Cosmic', 'status' => 'Available'], + ['name' => 'Table 7', 'brand' => 'Cosmic', 'status' => 'Available'], + ['name' => 'Table 8', 'brand' => 'Cosmic', 'status' => 'Booked'], + ], + ], + ]; + + if (!isset($venues[$venueName])) { + abort(404); + } + + return view('pages.venue', ['venue' => $venues[$venueName]]); + } +} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php new file mode 100644 index 0000000..494c050 --- /dev/null +++ b/app/Http/Kernel.php @@ -0,0 +1,68 @@ + + */ + protected $middleware = [ + // \App\Http\Middleware\TrustHosts::class, + \App\Http\Middleware\TrustProxies::class, + \Illuminate\Http\Middleware\HandleCors::class, + \App\Http\Middleware\PreventRequestsDuringMaintenance::class, + \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, + \App\Http\Middleware\TrimStrings::class, + \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, + ]; + + /** + * The application's route middleware groups. + * + * @var array> + */ + protected $middlewareGroups = [ + 'web' => [ + \App\Http\Middleware\EncryptCookies::class, + \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + \Illuminate\Session\Middleware\StartSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + + 'api' => [ + // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, + \Illuminate\Routing\Middleware\ThrottleRequests::class.':api', + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + ]; + + /** + * The application's middleware aliases. + * + * Aliases may be used instead of class names to conveniently assign middleware to routes and groups. + * + * @var array + */ + protected $middlewareAliases = [ + 'auth' => \App\Http\Middleware\Authenticate::class, + 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, + 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, + 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, + 'can' => \Illuminate\Auth\Middleware\Authorize::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'precognitive' => \Illuminate\Foundation\Http\Middleware\HandlePrecognitiveRequests::class, + 'signed' => \App\Http\Middleware\ValidateSignature::class, + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + ]; +} diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php new file mode 100644 index 0000000..d4ef644 --- /dev/null +++ b/app/Http/Middleware/Authenticate.php @@ -0,0 +1,17 @@ +expectsJson() ? null : route('login'); + } +} diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php new file mode 100644 index 0000000..867695b --- /dev/null +++ b/app/Http/Middleware/EncryptCookies.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/app/Http/Middleware/PreventRequestsDuringMaintenance.php new file mode 100644 index 0000000..74cbd9a --- /dev/null +++ b/app/Http/Middleware/PreventRequestsDuringMaintenance.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php new file mode 100644 index 0000000..afc78c4 --- /dev/null +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -0,0 +1,30 @@ +check()) { + return redirect(RouteServiceProvider::HOME); + } + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php new file mode 100644 index 0000000..88cadca --- /dev/null +++ b/app/Http/Middleware/TrimStrings.php @@ -0,0 +1,19 @@ + + */ + protected $except = [ + 'current_password', + 'password', + 'password_confirmation', + ]; +} diff --git a/app/Http/Middleware/TrustHosts.php b/app/Http/Middleware/TrustHosts.php new file mode 100644 index 0000000..c9c58bd --- /dev/null +++ b/app/Http/Middleware/TrustHosts.php @@ -0,0 +1,20 @@ + + */ + public function hosts(): array + { + return [ + $this->allSubdomainsOfApplicationUrl(), + ]; + } +} diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php new file mode 100644 index 0000000..3391630 --- /dev/null +++ b/app/Http/Middleware/TrustProxies.php @@ -0,0 +1,28 @@ +|string|null + */ + protected $proxies; + + /** + * The headers that should be used to detect proxies. + * + * @var int + */ + protected $headers = + Request::HEADER_X_FORWARDED_FOR | + Request::HEADER_X_FORWARDED_HOST | + Request::HEADER_X_FORWARDED_PORT | + Request::HEADER_X_FORWARDED_PROTO | + Request::HEADER_X_FORWARDED_AWS_ELB; +} diff --git a/app/Http/Middleware/ValidateSignature.php b/app/Http/Middleware/ValidateSignature.php new file mode 100644 index 0000000..093bf64 --- /dev/null +++ b/app/Http/Middleware/ValidateSignature.php @@ -0,0 +1,22 @@ + + */ + protected $except = [ + // 'fbclid', + // 'utm_campaign', + // 'utm_content', + // 'utm_medium', + // 'utm_source', + // 'utm_term', + ]; +} diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php new file mode 100644 index 0000000..9e86521 --- /dev/null +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Models/User.php b/app/Models/User.php new file mode 100644 index 0000000..4d7f70f --- /dev/null +++ b/app/Models/User.php @@ -0,0 +1,45 @@ + + */ + protected $fillable = [ + 'name', + 'email', + 'password', + ]; + + /** + * The attributes that should be hidden for serialization. + * + * @var array + */ + protected $hidden = [ + 'password', + 'remember_token', + ]; + + /** + * The attributes that should be cast. + * + * @var array + */ + protected $casts = [ + 'email_verified_at' => 'datetime', + 'password' => 'hashed', + ]; +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php new file mode 100644 index 0000000..452e6b6 --- /dev/null +++ b/app/Providers/AppServiceProvider.php @@ -0,0 +1,24 @@ + + */ + protected $policies = [ + // + ]; + + /** + * Register any authentication / authorization services. + */ + public function boot(): void + { + // + } +} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php new file mode 100644 index 0000000..2be04f5 --- /dev/null +++ b/app/Providers/BroadcastServiceProvider.php @@ -0,0 +1,19 @@ +> + */ + protected $listen = [ + Registered::class => [ + SendEmailVerificationNotification::class, + ], + ]; + + /** + * Register any events for your application. + */ + public function boot(): void + { + // + } + + /** + * Determine if events and listeners should be automatically discovered. + */ + public function shouldDiscoverEvents(): bool + { + return false; + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..1cf5f15 --- /dev/null +++ b/app/Providers/RouteServiceProvider.php @@ -0,0 +1,40 @@ +by($request->user()?->id ?: $request->ip()); + }); + + $this->routes(function () { + Route::middleware('api') + ->prefix('api') + ->group(base_path('routes/api.php')); + + Route::middleware('web') + ->group(base_path('routes/web.php')); + }); + } +} diff --git a/artisan b/artisan new file mode 100644 index 0000000..67a3329 --- /dev/null +++ b/artisan @@ -0,0 +1,53 @@ +#!/usr/bin/env php +make(Illuminate\Contracts\Console\Kernel::class); + +$status = $kernel->handle( + $input = new Symfony\Component\Console\Input\ArgvInput, + new Symfony\Component\Console\Output\ConsoleOutput +); + +/* +|-------------------------------------------------------------------------- +| Shutdown The Application +|-------------------------------------------------------------------------- +| +| Once Artisan has finished running, we will fire off the shutdown events +| so that any final work may be done by the application before we shut +| down the process. This is the last thing to happen to the request. +| +*/ + +$kernel->terminate($input, $status); + +exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php new file mode 100644 index 0000000..037e17d --- /dev/null +++ b/bootstrap/app.php @@ -0,0 +1,55 @@ +singleton( + Illuminate\Contracts\Http\Kernel::class, + App\Http\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Console\Kernel::class, + App\Console\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Debug\ExceptionHandler::class, + App\Exceptions\Handler::class +); + +/* +|-------------------------------------------------------------------------- +| Return The Application +|-------------------------------------------------------------------------- +| +| This script returns the application instance. The instance is given to +| the calling script so we can separate the building of the instances +| from the actual running of the application and sending responses. +| +*/ + +return $app; diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/bootstrap/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..8a3d72d --- /dev/null +++ b/composer.json @@ -0,0 +1,66 @@ +{ + "name": "laravel/laravel", + "type": "project", + "description": "The skeleton application for the Laravel framework.", + "keywords": ["laravel", "framework"], + "license": "MIT", + "require": { + "php": "^8.1", + "guzzlehttp/guzzle": "^7.2", + "laravel/framework": "^10.10", + "laravel/sanctum": "^3.3", + "laravel/tinker": "^2.8" + }, + "require-dev": { + "fakerphp/faker": "^1.9.1", + "laravel/pint": "^1.0", + "laravel/sail": "^1.18", + "mockery/mockery": "^1.4.4", + "nunomaduro/collision": "^7.0", + "phpunit/phpunit": "^10.1", + "spatie/laravel-ignition": "^2.0" + }, + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Factories\\": "database/factories/", + "Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "scripts": { + "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" + ] + }, + "extra": { + "laravel": { + "dont-discover": [] + } + }, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true, + "allow-plugins": { + "pestphp/pest-plugin": true, + "php-http/discovery": true + } + }, + "minimum-stability": "stable", + "prefer-stable": true +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..9fc7897 --- /dev/null +++ b/composer.lock @@ -0,0 +1,8129 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "9c491b8531eec05ba41a11d9276a5749", + "packages": [ + { + "name": "brick/math", + "version": "0.12.1", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "f510c0a40911935b77b86859eb5223d58d660df1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1", + "reference": "f510c0a40911935b77b86859eb5223d58d660df1", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^10.1", + "vimeo/psalm": "5.16.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "bignumber", + "brick", + "decimal", + "integer", + "math", + "mathematics", + "rational" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.12.1" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2023-11-29T23:19:16+00:00" + }, + { + "name": "carbonphp/carbon-doctrine-types", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "doctrine/dbal": "<3.7.0 || >=4.0.0" + }, + "require-dev": { + "doctrine/dbal": "^3.7.0", + "nesbot/carbon": "^2.71.0 || ^3.0.0", + "phpunit/phpunit": "^10.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "KyleKatarn", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Types to use Carbon in Doctrine", + "keywords": [ + "carbon", + "date", + "datetime", + "doctrine", + "time" + ], + "support": { + "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0" + }, + "funding": [ + { + "url": "https://github.com/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2023-12-11T17:09:12+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.3", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3" + }, + "time": "2024-07-08T12:26:09+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.10", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^11.0", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25 || ^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.10" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2024-02-18T20:23:39+00:00" + }, + { + "name": "doctrine/lexer", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/3.0.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2024-02-05T11:56:58+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.3.3", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "webmozart/assert": "^1.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-webmozart-assert": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "support": { + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" + }, + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2023-08-10T19:36:49+00:00" + }, + { + "name": "egulias/email-validator", + "version": "4.0.2", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" + }, + "require-dev": { + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2023-10-06T06:47:41+00:00" + }, + { + "name": "fruitcake/php-cors", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6|^7" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "Fruitcake\\Cors\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barryvdh", + "email": "barryvdh@gmail.com" + } + ], + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", + "keywords": [ + "cors", + "laravel", + "symfony" + ], + "support": { + "issues": "https://github.com/fruitcake/php-cors/issues", + "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2023-10-12T05:21:21+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.1.3", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.3" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + }, + "type": "library", + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2024-07-20T21:45:45+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.9.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "3.0.2", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.9.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2024-07-24T11:22:20+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2024-07-18T10:29:17+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.7.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2024-07-18T11:15:46+00:00" + }, + { + "name": "guzzlehttp/uri-template", + "version": "v1.0.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/uri-template.git", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "uri-template/tests": "1.0.0" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\UriTemplate\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + } + ], + "description": "A polyfill class for uri_template of PHP", + "keywords": [ + "guzzlehttp", + "uri-template" + ], + "support": { + "issues": "https://github.com/guzzle/uri-template/issues", + "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template", + "type": "tidelift" + } + ], + "time": "2023-12-03T19:50:20+00:00" + }, + { + "name": "laravel/framework", + "version": "v10.48.22", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "c4ea52bb044faef4a103d7dd81746c01b2ec860e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/c4ea52bb044faef4a103d7dd81746c01b2ec860e", + "reference": "c4ea52bb044faef4a103d7dd81746c01b2ec860e", + "shasum": "" + }, + "require": { + "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", + "composer-runtime-api": "^2.2", + "doctrine/inflector": "^2.0.5", + "dragonmantank/cron-expression": "^3.3.2", + "egulias/email-validator": "^3.2.1|^4.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-session": "*", + "ext-tokenizer": "*", + "fruitcake/php-cors": "^1.2", + "guzzlehttp/uri-template": "^1.0", + "laravel/prompts": "^0.1.9", + "laravel/serializable-closure": "^1.3", + "league/commonmark": "^2.2.1", + "league/flysystem": "^3.8.0", + "monolog/monolog": "^3.0", + "nesbot/carbon": "^2.67", + "nunomaduro/termwind": "^1.13", + "php": "^8.1", + "psr/container": "^1.1.1|^2.0.1", + "psr/log": "^1.0|^2.0|^3.0", + "psr/simple-cache": "^1.0|^2.0|^3.0", + "ramsey/uuid": "^4.7", + "symfony/console": "^6.2", + "symfony/error-handler": "^6.2", + "symfony/finder": "^6.2", + "symfony/http-foundation": "^6.4", + "symfony/http-kernel": "^6.2", + "symfony/mailer": "^6.2", + "symfony/mime": "^6.2", + "symfony/process": "^6.2", + "symfony/routing": "^6.2", + "symfony/uid": "^6.2", + "symfony/var-dumper": "^6.2", + "tijsverkoyen/css-to-inline-styles": "^2.2.5", + "vlucas/phpdotenv": "^5.4.1", + "voku/portable-ascii": "^2.0" + }, + "conflict": { + "carbonphp/carbon-doctrine-types": ">=3.0", + "doctrine/dbal": ">=4.0", + "mockery/mockery": "1.6.8", + "phpunit/phpunit": ">=11.0.0", + "tightenco/collect": "<5.5.33" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/collections": "self.version", + "illuminate/conditionable": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/log": "self.version", + "illuminate/macroable": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/process": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/testing": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version" + }, + "require-dev": { + "ably/ably-php": "^1.0", + "aws/aws-sdk-php": "^3.235.5", + "doctrine/dbal": "^3.5.1", + "ext-gmp": "*", + "fakerphp/faker": "^1.21", + "guzzlehttp/guzzle": "^7.5", + "league/flysystem-aws-s3-v3": "^3.0", + "league/flysystem-ftp": "^3.0", + "league/flysystem-path-prefixing": "^3.3", + "league/flysystem-read-only": "^3.3", + "league/flysystem-sftp-v3": "^3.0", + "mockery/mockery": "^1.5.1", + "nyholm/psr7": "^1.2", + "orchestra/testbench-core": "^8.23.4", + "pda/pheanstalk": "^4.0", + "phpstan/phpstan": "^1.4.7", + "phpunit/phpunit": "^10.0.7", + "predis/predis": "^2.0.2", + "symfony/cache": "^6.2", + "symfony/http-client": "^6.2.4", + "symfony/psr-http-message-bridge": "^2.0" + }, + "suggest": { + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", + "brianium/paratest": "Required to run tests in parallel (^6.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).", + "ext-apcu": "Required to use the APC cache driver.", + "ext-fileinfo": "Required to use the Filesystem class.", + "ext-ftp": "Required to use the Flysystem FTP driver.", + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", + "ext-memcached": "Required to use the memcache cache driver.", + "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", + "ext-pdo": "Required to use all database features.", + "ext-posix": "Required to use all features of the queue worker.", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", + "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", + "filp/whoops": "Required for friendly error pages in development (^2.14.3).", + "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).", + "laravel/tinker": "Required to use the tinker console command (^2.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).", + "league/flysystem-read-only": "Required to use read-only disks (^3.3)", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", + "mockery/mockery": "Required to use mocking (^1.5.1).", + "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8|^10.0.7).", + "predis/predis": "Required to use the predis connector (^2.0.2).", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^6.2).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.2).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.2).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.2).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "10.x-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", + "src/Illuminate/Filesystem/functions.php", + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", + "keywords": [ + "framework", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2024-09-12T15:00:09+00:00" + }, + { + "name": "laravel/prompts", + "version": "v0.1.25", + "source": { + "type": "git", + "url": "https://github.com/laravel/prompts.git", + "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/prompts/zipball/7b4029a84c37cb2725fc7f011586e2997040bc95", + "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "illuminate/collections": "^10.0|^11.0", + "php": "^8.1", + "symfony/console": "^6.2|^7.0" + }, + "conflict": { + "illuminate/console": ">=10.17.0 <10.25.0", + "laravel/framework": ">=10.17.0 <10.25.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "pestphp/pest": "^2.3", + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-mockery": "^1.1" + }, + "suggest": { + "ext-pcntl": "Required for the spinner to be animated." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.1.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Laravel\\Prompts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Add beautiful and user-friendly forms to your command-line applications.", + "support": { + "issues": "https://github.com/laravel/prompts/issues", + "source": "https://github.com/laravel/prompts/tree/v0.1.25" + }, + "time": "2024-08-12T22:06:33+00:00" + }, + { + "name": "laravel/sanctum", + "version": "v3.3.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/sanctum.git", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/console": "^9.21|^10.0", + "illuminate/contracts": "^9.21|^10.0", + "illuminate/database": "^9.21|^10.0", + "illuminate/support": "^9.21|^10.0", + "php": "^8.0.2" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^7.28.2|^8.8.3", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Sanctum\\SanctumServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sanctum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.", + "keywords": [ + "auth", + "laravel", + "sanctum" + ], + "support": { + "issues": "https://github.com/laravel/sanctum/issues", + "source": "https://github.com/laravel/sanctum" + }, + "time": "2023-12-19T18:44:48+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v1.3.4", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/61b87392d986dc49ad5ef64e75b1ff5fee24ef81", + "reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "nesbot/carbon": "^2.61|^3.0", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "support": { + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" + }, + "time": "2024-08-02T07:48:17+00:00" + }, + { + "name": "laravel/tinker", + "version": "v2.9.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/tinker.git", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "shasum": "" + }, + "require": { + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "php": "^7.2.5|^8.0", + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" + }, + "require-dev": { + "mockery/mockery": "~1.3.3|^1.4.2", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8.5.8|^9.3.3" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "support": { + "issues": "https://github.com/laravel/tinker/issues", + "source": "https://github.com/laravel/tinker/tree/v2.9.0" + }, + "time": "2024-01-04T16:10:04+00:00" + }, + { + "name": "league/commonmark", + "version": "2.5.3", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "b650144166dfa7703e62a22e493b853b58d874b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b650144166dfa7703e62a22e493b853b58d874b0", + "reference": "b650144166dfa7703e62a22e493b853b58d874b0", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.31.1", + "commonmark/commonmark.js": "0.31.1", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "^1.4 || ^2.0", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0 || ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0 || ^5.0.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.6-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], + "support": { + "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", + "issues": "https://github.com/thephpleague/commonmark/issues", + "rss": "https://github.com/thephpleague/commonmark/releases.atom", + "source": "https://github.com/thephpleague/commonmark" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/commonmark", + "type": "tidelift" + } + ], + "time": "2024-08-16T11:46:16+00:00" + }, + { + "name": "league/config", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2022-12-11T20:36:23+00:00" + }, + { + "name": "league/flysystem", + "version": "3.28.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c", + "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c", + "shasum": "" + }, + "require": { + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.295.10", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-mongodb": "^1.3", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "guzzlehttp/psr7": "^2.6", + "microsoft/azure-storage-blob": "^1.1", + "mongodb/mongodb": "^1.2", + "phpseclib/phpseclib": "^3.0.36", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "File storage abstraction for PHP", + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/3.28.0" + }, + "time": "2024-05-22T10:09:12+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.28.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/13f22ea8be526ea58c2ddff9e158ef7c296e4f40", + "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "support": { + "source": "https://github.com/thephpleague/flysystem-local/tree/3.28.0" + }, + "time": "2024-05-06T20:05:52+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.16.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9", + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2024-09-21T08:32:55+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.7.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8", + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "^10.5.17", + "predis/predis": "^1.1 || ^2", + "ruflin/elastica": "^7", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/3.7.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2024-06-28T09:40:51+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.72.5", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed", + "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed", + "shasum": "" + }, + "require": { + "carbonphp/carbon-doctrine-types": "*", + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "psr/clock": "^1.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "require-dev": { + "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0", + "doctrine/orm": "^2.7 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.0", + "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "squizlabs/php_codesniffer": "^3.4" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev", + "dev-2.x": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, + "funding": [ + { + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" + } + ], + "time": "2024-06-03T19:18:41+00:00" + }, + { + "name": "nette/schema", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "shasum": "" + }, + "require": { + "nette/utils": "^4.0", + "php": "8.1 - 8.3" + }, + "require-dev": { + "nette/tester": "^2.4", + "phpstan/phpstan-nette": "^1.0", + "tracy/tracy": "^2.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.3.0" + }, + "time": "2023-12-11T11:54:22+00:00" + }, + { + "name": "nette/utils", + "version": "v4.0.5", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", + "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", + "shasum": "" + }, + "require": { + "php": "8.0 - 8.4" + }, + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "dev-master", + "nette/tester": "^2.5", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.9" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v4.0.5" + }, + "time": "2024-08-07T15:39:19+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.2.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", + "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.2.0" + }, + "time": "2024-09-15T16:40:33+00:00" + }, + { + "name": "nunomaduro/termwind", + "version": "v1.15.1", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/termwind.git", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^8.0", + "symfony/console": "^5.3.0|^6.0.0" + }, + "require-dev": { + "ergebnis/phpstan-rules": "^1.0.", + "illuminate/console": "^8.0|^9.0", + "illuminate/support": "^8.0|^9.0", + "laravel/pint": "^1.0.0", + "pestphp/pest": "^1.21.0", + "pestphp/pest-plugin-mock": "^1.0", + "phpstan/phpstan": "^1.4.6", + "phpstan/phpstan-strict-rules": "^1.1.0", + "symfony/var-dumper": "^5.2.7|^6.0.0", + "thecodingmachine/phpstan-strict-rules": "^1.0.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/Functions.php" + ], + "psr-4": { + "Termwind\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Its like Tailwind CSS, but for the console.", + "keywords": [ + "cli", + "console", + "css", + "package", + "php", + "style" + ], + "support": { + "issues": "https://github.com/nunomaduro/termwind/issues", + "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/xiCO2k", + "type": "github" + } + ], + "time": "2023-02-08T01:06:31+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.9.3", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" + }, + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "support": { + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2024-07-20T21:41:07+00:00" + }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" + }, + "time": "2021-10-29T13:26:27+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.12.4", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "2fd717afa05341b4f8152547f142cd2f130f6818" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2fd717afa05341b4f8152547f142cd2f130f6818", + "reference": "2fd717afa05341b4f8152547f142cd2f130f6818", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.12.x-dev" + }, + "bamarni-bin": { + "bin-links": false, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.12.4" + }, + "time": "2024-06-10T01:18:23+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "ramsey/collection", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2022-12-31T21:50:55+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.7.6", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", + "ext-json": "*", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.7.6" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2024-04-27T21:32:50+00:00" + }, + { + "name": "symfony/console", + "version": "v6.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/72d080eb9edf80e36c19be61f72c98ed8273b765", + "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.4.12" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-20T08:15:52+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v7.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c7cee86c6f812896af54434f8ce29c8d94f9ff4", + "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v7.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:57:53+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v6.4.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "231f1b2ee80f72daa1972f7340297d67439224f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/231f1b2ee80f72daa1972f7340297d67439224f0", + "reference": "231f1b2ee80f72daa1972f7340297d67439224f0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v6.4.10" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-07-26T12:30:32+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v7.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", + "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:57:53+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453", + "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v6.4.11" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-08-13T14:27:37+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v6.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "133ac043875f59c26c55e79cf074562127cce4d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/133ac043875f59c26c55e79cf074562127cce4d2", + "reference": "133ac043875f59c26c55e79cf074562127cce4d2", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" + }, + "conflict": { + "symfony/cache": "<6.3" + }, + "require-dev": { + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.3|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/rate-limiter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v6.4.12" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-20T08:18:25+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v6.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "96df83d51b5f78804f70c093b97310794fd6257b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/96df83d51b5f78804f70c093b97310794fd6257b", + "reference": "96df83d51b5f78804f70c093b97310794fd6257b", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/cache": "<5.4", + "symfony/config": "<6.1", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.3", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^5.4|^6.0|^7.0", + "symfony/clock": "^6.2|^7.0", + "symfony/config": "^6.1|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4.5|^6.0.5|^7.0", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.4.4|^7.0.4", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^5.4|^6.4|^7.0", + "symfony/var-exporter": "^6.2|^7.0", + "twig/twig": "^2.13|^3.0.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v6.4.12" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-21T06:02:57+00:00" + }, + { + "name": "symfony/mailer", + "version": "v6.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "b6a25408c569ae2366b3f663a4edad19420a9c26" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/b6a25408c569ae2366b3f663a4edad19420a9c26", + "reference": "b6a25408c569ae2366b3f663a4edad19420a9c26", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.1", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/mime": "^6.2|^7.0", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/messenger": "<6.2", + "symfony/mime": "<6.2", + "symfony/twig-bridge": "<6.2.1" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/messenger": "^6.2|^7.0", + "symfony/twig-bridge": "^6.2|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v6.4.12" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-08T12:30:05+00:00" + }, + { + "name": "symfony/mime", + "version": "v6.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "abe16ee7790b16aa525877419deb0f113953f0e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/abe16ee7790b16aa525877419deb0f113953f0e1", + "reference": "abe16ee7790b16aa525877419deb0f113953f0e1", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<5.4", + "symfony/serializer": "<6.4.3|>7.0,<7.0.3" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.4|^7.0", + "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.4.3|^7.0.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v6.4.12" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-20T08:18:25+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773", + "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "symfony/polyfill-intl-normalizer": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "3833d7255cc303546435cb650316bff708a1c75c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-uuid", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Uuid\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for uuid functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/process", + "version": "v6.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/3f94e5f13ff58df371a7ead461b6e8068900fbb3", + "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.4.12" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-17T12:47:12+00:00" + }, + { + "name": "symfony/routing", + "version": "v6.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "a7c8036bd159486228dc9be3e846a00a0dda9f9f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/a7c8036bd159486228dc9be3e846a00a0dda9f9f", + "reference": "a7c8036bd159486228dc9be3e846a00a0dda9f9f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<6.2", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "psr/log": "^1|^2|^3", + "symfony/config": "^6.2|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v6.4.12" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-20T08:32:26+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/string", + "version": "v7.1.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/d66f9c343fa894ec2037cc928381df90a7ad4306", + "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/emoji": "^7.1", + "symfony/error-handler": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v7.1.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-20T08:28:38+00:00" + }, + { + "name": "symfony/translation", + "version": "v6.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "cf8360b8352b086be620fae8342c4d96e391a489" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/cf8360b8352b086be620fae8342c4d96e391a489", + "reference": "cf8360b8352b086be620fae8342c4d96e391a489", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5|^3.0" + }, + "conflict": { + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "nikic/php-parser": "^4.18|^5.0", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client-contracts": "^2.5|^3.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/intl": "^5.4|^6.0|^7.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v6.4.12" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-16T06:02:54+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/uid", + "version": "v6.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/uid.git", + "reference": "2f16054e0a9b194b8ca581d4a64eee3f7d4a9d4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/uid/zipball/2f16054e0a9b194b8ca581d4a64eee3f7d4a9d4d", + "reference": "2f16054e0a9b194b8ca581d4a64eee3f7d4a9d4d", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-uuid": "^1.15" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Uid\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to generate and represent UIDs", + "homepage": "https://symfony.com", + "keywords": [ + "UID", + "ulid", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/uid/tree/v6.4.12" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-20T08:32:26+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "ee14c8254a480913268b1e3b1cba8045ed122694" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694", + "reference": "ee14c8254a480913268b1e3b1cba8045ed122694", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^6.3|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/uid": "^5.4|^6.0|^7.0", + "twig/twig": "^2.13|^3.0.4" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v6.4.11" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-08-30T16:03:21+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "v2.2.7", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb", + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^5.5 || ^7.0 || ^8.0", + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "TijsVerkoyen\\CssToInlineStyles\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Tijs Verkoyen", + "email": "css_to_inline_styles@verkoyen.eu", + "role": "Developer" + } + ], + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", + "support": { + "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7" + }, + "time": "2023-12-08T13:03:43+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.6.1", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.1.3", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.3", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-filter": "*", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "5.6-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2024-07-20T21:52:34+00:00" + }, + { + "name": "voku/portable-ascii", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "b56450eed252f6801410d810c8e1727224ae0743" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", + "type": "tidelift" + } + ], + "time": "2022-03-08T17:03:00+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [ + { + "name": "fakerphp/faker", + "version": "v1.23.1", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", + "ext-intl": "*", + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" + }, + "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" + }, + "time": "2024-01-02T13:46:09+00:00" + }, + { + "name": "filp/whoops", + "version": "2.15.4", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^0.9 || ^1.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.15.4" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2023-11-03T12:00:00+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + }, + "time": "2020-07-09T08:09:16+00:00" + }, + { + "name": "laravel/pint", + "version": "v1.17.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/pint.git", + "reference": "9d77be916e145864f10788bb94531d03e1f7b482" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pint/zipball/9d77be916e145864f10788bb94531d03e1f7b482", + "reference": "9d77be916e145864f10788bb94531d03e1f7b482", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "ext-xml": "*", + "php": "^8.1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.64.0", + "illuminate/view": "^10.48.20", + "larastan/larastan": "^2.9.8", + "laravel-zero/framework": "^10.4.0", + "mockery/mockery": "^1.6.12", + "nunomaduro/termwind": "^1.15.1", + "pestphp/pest": "^2.35.1" + }, + "bin": [ + "builds/pint" + ], + "type": "project", + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Seeders\\": "database/seeders/", + "Database\\Factories\\": "database/factories/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "An opinionated code formatter for PHP.", + "homepage": "https://laravel.com", + "keywords": [ + "format", + "formatter", + "lint", + "linter", + "php" + ], + "support": { + "issues": "https://github.com/laravel/pint/issues", + "source": "https://github.com/laravel/pint" + }, + "time": "2024-09-03T15:00:28+00:00" + }, + { + "name": "laravel/sail", + "version": "v1.32.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/sail.git", + "reference": "4a7e41d280861ca7e35710cea011a07669b4003b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sail/zipball/4a7e41d280861ca7e35710cea011a07669b4003b", + "reference": "4a7e41d280861ca7e35710cea011a07669b4003b", + "shasum": "" + }, + "require": { + "illuminate/console": "^9.52.16|^10.0|^11.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0", + "illuminate/support": "^9.52.16|^10.0|^11.0", + "php": "^8.0", + "symfony/console": "^6.0|^7.0", + "symfony/yaml": "^6.0|^7.0" + }, + "require-dev": { + "orchestra/testbench": "^7.0|^8.0|^9.0", + "phpstan/phpstan": "^1.10" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Docker files for running a basic Laravel application.", + "keywords": [ + "docker", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/sail/issues", + "source": "https://github.com/laravel/sail" + }, + "time": "2024-09-11T20:14:29+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.6.12", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": ">=7.3" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" + }, + "type": "library", + "autoload": { + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "https://github.com/padraic", + "role": "Author" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "docs": "https://docs.mockery.io/", + "issues": "https://github.com/mockery/mockery/issues", + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" + }, + "time": "2024-05-16T03:13:13+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.12.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2024-06-12T14:39:25+00:00" + }, + { + "name": "nunomaduro/collision", + "version": "v7.10.0", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/collision.git", + "reference": "49ec67fa7b002712da8526678abd651c09f375b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2", + "reference": "49ec67fa7b002712da8526678abd651c09f375b2", + "shasum": "" + }, + "require": { + "filp/whoops": "^2.15.3", + "nunomaduro/termwind": "^1.15.1", + "php": "^8.1.0", + "symfony/console": "^6.3.4" + }, + "conflict": { + "laravel/framework": ">=11.0.0" + }, + "require-dev": { + "brianium/paratest": "^7.3.0", + "laravel/framework": "^10.28.0", + "laravel/pint": "^1.13.3", + "laravel/sail": "^1.25.0", + "laravel/sanctum": "^3.3.1", + "laravel/tinker": "^2.8.2", + "nunomaduro/larastan": "^2.6.4", + "orchestra/testbench-core": "^8.13.0", + "pestphp/pest": "^2.23.2", + "phpunit/phpunit": "^10.4.1", + "sebastian/environment": "^6.0.1", + "spatie/laravel-ignition": "^2.3.1" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "./src/Adapters/Phpunit/Autoload.php" + ], + "psr-4": { + "NunoMaduro\\Collision\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], + "support": { + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2023-10-11T15:45:01+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "10.1.16", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "7e308268858ed6baedc8704a304727d20bc07c77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", + "reference": "7e308268858ed6baedc8704a304727d20bc07c77", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.19.1 || ^5.1.0", + "php": ">=8.1", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-text-template": "^3.0.1", + "sebastian/code-unit-reverse-lookup": "^3.0.0", + "sebastian/complexity": "^3.2.0", + "sebastian/environment": "^6.1.0", + "sebastian/lines-of-code": "^2.0.2", + "sebastian/version": "^4.0.1", + "theseer/tokenizer": "^1.2.3" + }, + "require-dev": { + "phpunit/phpunit": "^10.1" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-08-22T04:31:57+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T06:24:48+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:56:09+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T14:07:24+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "6.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:57:52+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "10.5.35", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "7ac8b4e63f456046dcb4c9787da9382831a1874b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7ac8b4e63f456046dcb4c9787da9382831a1874b", + "reference": "7ac8b4e63f456046dcb4c9787da9382831a1874b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.12.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.1", + "phpunit/php-code-coverage": "^10.1.16", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-invoker": "^4.0.0", + "phpunit/php-text-template": "^3.0.1", + "phpunit/php-timer": "^6.0.0", + "sebastian/cli-parser": "^2.0.1", + "sebastian/code-unit": "^2.0.0", + "sebastian/comparator": "^5.0.2", + "sebastian/diff": "^5.1.1", + "sebastian/environment": "^6.1.0", + "sebastian/exporter": "^5.1.2", + "sebastian/global-state": "^6.0.2", + "sebastian/object-enumerator": "^5.0.0", + "sebastian/recursion-context": "^5.0.0", + "sebastian/type": "^4.0.0", + "sebastian/version": "^4.0.1" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.35" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2024-09-19T10:52:21+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:12:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:58:43+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:59:15+00:00" + }, + { + "name": "sebastian/comparator", + "version": "5.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53", + "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/diff": "^5.0", + "sebastian/exporter": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-08-12T06:03:08+00:00" + }, + { + "name": "sebastian/complexity", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "68ff824baeae169ec9f2137158ee529584553799" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-21T08:37:17+00:00" + }, + { + "name": "sebastian/diff", + "version": "5.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0", + "symfony/process": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:15:17+00:00" + }, + { + "name": "sebastian/environment", + "version": "6.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "https://github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-23T08:47:14+00:00" + }, + { + "name": "sebastian/exporter", + "version": "5.1.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:17:12+00:00" + }, + { + "name": "sebastian/global-state", + "version": "6.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:19:19+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-21T08:38:20+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:08:32+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:06:18+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:05:40+00:00" + }, + { + "name": "sebastian/type", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:10:45+00:00" + }, + { + "name": "sebastian/version", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-07T11:34:05+00:00" + }, + { + "name": "spatie/backtrace", + "version": "1.6.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/backtrace.git", + "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/1a9a145b044677ae3424693f7b06479fc8c137a9", + "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "ext-json": "*", + "laravel/serializable-closure": "^1.3", + "phpunit/phpunit": "^9.3", + "spatie/phpunit-snapshot-assertions": "^4.2", + "symfony/var-dumper": "^5.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Backtrace\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van de Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A better backtrace", + "homepage": "https://github.com/spatie/backtrace", + "keywords": [ + "Backtrace", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/backtrace/tree/1.6.2" + }, + "funding": [ + { + "url": "https://github.com/sponsors/spatie", + "type": "github" + }, + { + "url": "https://spatie.be/open-source/support-us", + "type": "other" + } + ], + "time": "2024-07-22T08:21:24+00:00" + }, + { + "name": "spatie/error-solutions", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/error-solutions.git", + "reference": "ae7393122eda72eed7cc4f176d1e96ea444f2d67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/error-solutions/zipball/ae7393122eda72eed7cc4f176d1e96ea444f2d67", + "reference": "ae7393122eda72eed7cc4f176d1e96ea444f2d67", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "illuminate/broadcasting": "^10.0|^11.0", + "illuminate/cache": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0", + "livewire/livewire": "^2.11|^3.3.5", + "openai-php/client": "^0.10.1", + "orchestra/testbench": "^7.0|8.22.3|^9.0", + "pestphp/pest": "^2.20", + "phpstan/phpstan": "^1.11", + "psr/simple-cache": "^3.0", + "psr/simple-cache-implementation": "^3.0", + "spatie/ray": "^1.28", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "vlucas/phpdotenv": "^5.5" + }, + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "simple-cache-implementation": "To cache solutions from OpenAI" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Ignition\\": "legacy/ignition", + "Spatie\\ErrorSolutions\\": "src", + "Spatie\\LaravelIgnition\\": "legacy/laravel-ignition" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ruben Van Assche", + "email": "ruben@spatie.be", + "role": "Developer" + } + ], + "description": "This is my package error-solutions", + "homepage": "https://github.com/spatie/error-solutions", + "keywords": [ + "error-solutions", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/error-solutions/issues", + "source": "https://github.com/spatie/error-solutions/tree/1.1.1" + }, + "funding": [ + { + "url": "https://github.com/Spatie", + "type": "github" + } + ], + "time": "2024-07-25T11:06:04+00:00" + }, + { + "name": "spatie/flare-client-php", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/flare-client-php.git", + "reference": "180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122", + "reference": "180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122", + "shasum": "" + }, + "require": { + "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", + "php": "^8.0", + "spatie/backtrace": "^1.6.1", + "symfony/http-foundation": "^5.2|^6.0|^7.0", + "symfony/mime": "^5.2|^6.0|^7.0", + "symfony/process": "^5.2|^6.0|^7.0", + "symfony/var-dumper": "^5.2|^6.0|^7.0" + }, + "require-dev": { + "dms/phpunit-arraysubset-asserts": "^0.5.0", + "pestphp/pest": "^1.20|^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/pest-plugin-snapshots": "^1.0|^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.3.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\FlareClient\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Send PHP errors to Flare", + "homepage": "https://github.com/spatie/flare-client-php", + "keywords": [ + "exception", + "flare", + "reporting", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/flare-client-php/issues", + "source": "https://github.com/spatie/flare-client-php/tree/1.8.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-08-01T08:27:26+00:00" + }, + { + "name": "spatie/ignition", + "version": "1.15.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/ignition.git", + "reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/ignition/zipball/e3a68e137371e1eb9edc7f78ffa733f3b98991d2", + "reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.0", + "spatie/error-solutions": "^1.0", + "spatie/flare-client-php": "^1.7", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "require-dev": { + "illuminate/cache": "^9.52|^10.0|^11.0", + "mockery/mockery": "^1.4", + "pestphp/pest": "^1.20|^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "psr/simple-cache-implementation": "*", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "vlucas/phpdotenv": "^5.5" + }, + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "simple-cache-implementation": "To cache solutions from OpenAI" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spatie\\Ignition\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for PHP applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "support": { + "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", + "forum": "https://twitter.com/flareappio", + "issues": "https://github.com/spatie/ignition/issues", + "source": "https://github.com/spatie/ignition" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-06-12T14:55:22+00:00" + }, + { + "name": "spatie/laravel-ignition", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-ignition.git", + "reference": "3c067b75bfb50574db8f7e2c3978c65eed71126c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/3c067b75bfb50574db8f7e2c3978c65eed71126c", + "reference": "3c067b75bfb50574db8f7e2c3978c65eed71126c", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "illuminate/support": "^10.0|^11.0", + "php": "^8.1", + "spatie/ignition": "^1.15", + "symfony/console": "^6.2.3|^7.0", + "symfony/var-dumper": "^6.2.3|^7.0" + }, + "require-dev": { + "livewire/livewire": "^2.11|^3.3.5", + "mockery/mockery": "^1.5.1", + "openai-php/client": "^0.8.1", + "orchestra/testbench": "8.22.3|^9.0", + "pestphp/pest": "^2.34", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan-deprecation-rules": "^1.1.1", + "phpstan/phpstan-phpunit": "^1.3.16", + "vlucas/phpdotenv": "^5.5" + }, + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "psr/simple-cache-implementation": "Needed to cache solutions from OpenAI" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ], + "aliases": { + "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" + } + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\LaravelIgnition\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for Laravel applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "support": { + "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", + "forum": "https://twitter.com/flareappio", + "issues": "https://github.com/spatie/laravel-ignition/issues", + "source": "https://github.com/spatie/laravel-ignition" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-06-12T15:01:18+00:00" + }, + { + "name": "symfony/yaml", + "version": "v7.1.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "4e561c316e135e053bd758bf3b3eb291d9919de4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4e561c316e135e053bd758bf3b3eb291d9919de4", + "reference": "4e561c316e135e053bd758bf3b3eb291d9919de4", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v7.1.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-17T12:49:58+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:36:25+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^8.1" + }, + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/config/app.php b/config/app.php new file mode 100644 index 0000000..9207160 --- /dev/null +++ b/config/app.php @@ -0,0 +1,188 @@ + env('APP_NAME', 'Laravel'), + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services the application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => (bool) env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | your application so that it is used when running Artisan tasks. + | + */ + + 'url' => env('APP_URL', 'http://localhost'), + + 'asset_url' => env('ASSET_URL'), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. We have gone + | ahead and set this to a sensible default for you out of the box. + | + */ + + 'timezone' => 'UTC', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by the translation service provider. You are free to set this value + | to any of the locales which will be supported by the application. + | + */ + + 'locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Application Fallback Locale + |-------------------------------------------------------------------------- + | + | The fallback locale determines the locale to use when the current one + | is not available. You may change the value to correspond to any of + | the language folders that are provided through your application. + | + */ + + 'fallback_locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Faker Locale + |-------------------------------------------------------------------------- + | + | This locale will be used by the Faker PHP library when generating fake + | data for your database seeds. For example, this will be used to get + | localized telephone numbers, street address information and more. + | + */ + + 'faker_locale' => 'en_US', + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is used by the Illuminate encrypter service and should be set + | to a random, 32 character string, otherwise these encrypted strings + | will not be safe. Please do this before deploying an application! + | + */ + + 'key' => env('APP_KEY'), + + 'cipher' => 'AES-256-CBC', + + /* + |-------------------------------------------------------------------------- + | Maintenance Mode Driver + |-------------------------------------------------------------------------- + | + | These configuration options determine the driver used to determine and + | manage Laravel's "maintenance mode" status. The "cache" driver will + | allow maintenance mode to be controlled across multiple machines. + | + | Supported drivers: "file", "cache" + | + */ + + 'maintenance' => [ + 'driver' => 'file', + // 'store' => 'redis', + ], + + /* + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | + */ + + 'providers' => ServiceProvider::defaultProviders()->merge([ + /* + * Package Service Providers... + */ + + /* + * Application Service Providers... + */ + App\Providers\AppServiceProvider::class, + App\Providers\AuthServiceProvider::class, + // App\Providers\BroadcastServiceProvider::class, + App\Providers\EventServiceProvider::class, + App\Providers\RouteServiceProvider::class, + ])->toArray(), + + /* + |-------------------------------------------------------------------------- + | Class Aliases + |-------------------------------------------------------------------------- + | + | This array of class aliases will be registered when this application + | is started. However, feel free to register as many as you wish as + | the aliases are "lazy" loaded so they don't hinder performance. + | + */ + + 'aliases' => Facade::defaultAliases()->merge([ + // 'Example' => App\Facades\Example::class, + ])->toArray(), + +]; diff --git a/config/auth.php b/config/auth.php new file mode 100644 index 0000000..9548c15 --- /dev/null +++ b/config/auth.php @@ -0,0 +1,115 @@ + [ + 'guard' => 'web', + 'passwords' => 'users', + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | here which uses session storage and the Eloquent user provider. + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | Supported: "session" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | If you have multiple user tables or models you may configure multiple + | sources which represent each model / table. These sources may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => App\Models\User::class, + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | You may specify multiple password reset configurations if you have more + | than one user table or model in the application and you want to have + | separate password reset settings based on the specific user types. + | + | The expiry time is the number of minutes that each reset token will be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + | The throttle setting is the number of seconds a user must wait before + | generating more password reset tokens. This prevents the user from + | quickly generating a very large amount of password reset tokens. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => 'password_reset_tokens', + 'expire' => 60, + 'throttle' => 60, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | times out and the user is prompted to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => 10800, + +]; diff --git a/config/broadcasting.php b/config/broadcasting.php new file mode 100644 index 0000000..2410485 --- /dev/null +++ b/config/broadcasting.php @@ -0,0 +1,71 @@ + env('BROADCAST_DRIVER', 'null'), + + /* + |-------------------------------------------------------------------------- + | Broadcast Connections + |-------------------------------------------------------------------------- + | + | Here you may define all of the broadcast connections that will be used + | to broadcast events to other systems or over websockets. Samples of + | each available type of connection are provided inside this array. + | + */ + + 'connections' => [ + + 'pusher' => [ + 'driver' => 'pusher', + 'key' => env('PUSHER_APP_KEY'), + 'secret' => env('PUSHER_APP_SECRET'), + 'app_id' => env('PUSHER_APP_ID'), + 'options' => [ + 'cluster' => env('PUSHER_APP_CLUSTER'), + 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com', + 'port' => env('PUSHER_PORT', 443), + 'scheme' => env('PUSHER_SCHEME', 'https'), + 'encrypted' => true, + 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https', + ], + 'client_options' => [ + // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html + ], + ], + + 'ably' => [ + 'driver' => 'ably', + 'key' => env('ABLY_KEY'), + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + 'log' => [ + 'driver' => 'log', + ], + + 'null' => [ + 'driver' => 'null', + ], + + ], + +]; diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 0000000..d4171e2 --- /dev/null +++ b/config/cache.php @@ -0,0 +1,111 @@ + env('CACHE_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + | Supported drivers: "apc", "array", "database", "file", + | "memcached", "redis", "dynamodb", "octane", "null" + | + */ + + 'stores' => [ + + 'apc' => [ + 'driver' => 'apc', + ], + + 'array' => [ + 'driver' => 'array', + 'serialize' => false, + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'cache', + 'connection' => null, + 'lock_connection' => null, + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + 'lock_path' => storage_path('framework/cache/data'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'cache', + 'lock_connection' => 'default', + ], + + 'dynamodb' => [ + 'driver' => 'dynamodb', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'endpoint' => env('DYNAMODB_ENDPOINT'), + ], + + 'octane' => [ + 'driver' => 'octane', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing the APC, database, memcached, Redis, or DynamoDB cache + | stores there might be other applications using the same cache. For + | that reason, you may prefix every cache key to avoid collisions. + | + */ + + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'), + +]; diff --git a/config/cors.php b/config/cors.php new file mode 100644 index 0000000..8a39e6d --- /dev/null +++ b/config/cors.php @@ -0,0 +1,34 @@ + ['api/*', 'sanctum/csrf-cookie'], + + 'allowed_methods' => ['*'], + + 'allowed_origins' => ['*'], + + 'allowed_origins_patterns' => [], + + 'allowed_headers' => ['*'], + + 'exposed_headers' => [], + + 'max_age' => 0, + + 'supports_credentials' => false, + +]; diff --git a/config/database.php b/config/database.php new file mode 100644 index 0000000..137ad18 --- /dev/null +++ b/config/database.php @@ -0,0 +1,151 @@ + env('DB_CONNECTION', 'mysql'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DATABASE_URL'), + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + // 'encrypt' => env('DB_ENCRYPT', 'yes'), + // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | + */ + + 'migrations' => 'migrations', + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as APC or Memcached. Laravel makes it easy to dig right in. + | + */ + + 'redis' => [ + + 'client' => env('REDIS_CLIENT', 'phpredis'), + + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + ], + + 'default' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + ], + + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + ], + + ], + +]; diff --git a/config/filesystems.php b/config/filesystems.php new file mode 100644 index 0000000..e9d9dbd --- /dev/null +++ b/config/filesystems.php @@ -0,0 +1,76 @@ + env('FILESYSTEM_DISK', 'local'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been set up for each driver as an example of the required values. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app'), + 'throw' => false, + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + 'throw' => false, + ], + + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION'), + 'bucket' => env('AWS_BUCKET'), + 'url' => env('AWS_URL'), + 'endpoint' => env('AWS_ENDPOINT'), + 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), + 'throw' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Symbolic Links + |-------------------------------------------------------------------------- + | + | Here you may configure the symbolic links that will be created when the + | `storage:link` Artisan command is executed. The array keys should be + | the locations of the links and the values should be their targets. + | + */ + + 'links' => [ + public_path('storage') => storage_path('app/public'), + ], + +]; diff --git a/config/hashing.php b/config/hashing.php new file mode 100644 index 0000000..0e8a0bb --- /dev/null +++ b/config/hashing.php @@ -0,0 +1,54 @@ + 'bcrypt', + + /* + |-------------------------------------------------------------------------- + | Bcrypt Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Bcrypt algorithm. This will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'bcrypt' => [ + 'rounds' => env('BCRYPT_ROUNDS', 12), + 'verify' => true, + ], + + /* + |-------------------------------------------------------------------------- + | Argon Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Argon algorithm. These will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'argon' => [ + 'memory' => 65536, + 'threads' => 1, + 'time' => 4, + 'verify' => true, + ], + +]; diff --git a/config/logging.php b/config/logging.php new file mode 100644 index 0000000..c44d276 --- /dev/null +++ b/config/logging.php @@ -0,0 +1,131 @@ + env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | + */ + + 'deprecations' => [ + 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + 'trace' => false, + ], + + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", + | "custom", "stack" + | + */ + + 'channels' => [ + 'stack' => [ + 'driver' => 'stack', + 'channels' => ['single'], + 'ignore_exceptions' => false, + ], + + 'single' => [ + 'driver' => 'single', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'days' => 14, + 'replace_placeholders' => true, + ], + + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => 'Laravel Log', + 'emoji' => ':boom:', + 'level' => env('LOG_LEVEL', 'critical'), + 'replace_placeholders' => true, + ], + + 'papertrail' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class), + 'handler_with' => [ + 'host' => env('PAPERTRAIL_URL'), + 'port' => env('PAPERTRAIL_PORT'), + 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'), + ], + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => StreamHandler::class, + 'formatter' => env('LOG_STDERR_FORMATTER'), + 'with' => [ + 'stream' => 'php://stderr', + ], + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'syslog' => [ + 'driver' => 'syslog', + 'level' => env('LOG_LEVEL', 'debug'), + 'facility' => LOG_USER, + 'replace_placeholders' => true, + ], + + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], + + 'emergency' => [ + 'path' => storage_path('logs/laravel.log'), + ], + ], + +]; diff --git a/config/mail.php b/config/mail.php new file mode 100644 index 0000000..e894b2e --- /dev/null +++ b/config/mail.php @@ -0,0 +1,134 @@ + env('MAIL_MAILER', 'smtp'), + + /* + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers to be used while + | sending an e-mail. You will specify which one you are using for your + | mailers below. You are free to add additional mailers as required. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2", + | "postmark", "log", "array", "failover", "roundrobin" + | + */ + + 'mailers' => [ + 'smtp' => [ + 'transport' => 'smtp', + 'url' => env('MAIL_URL'), + 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), + 'port' => env('MAIL_PORT', 587), + 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'username' => env('MAIL_USERNAME'), + 'password' => env('MAIL_PASSWORD'), + 'timeout' => null, + 'local_domain' => env('MAIL_EHLO_DOMAIN'), + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'postmark' => [ + 'transport' => 'postmark', + // 'message_stream_id' => null, + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'mailgun' => [ + 'transport' => 'mailgun', + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), + ], + + 'log' => [ + 'transport' => 'log', + 'channel' => env('MAIL_LOG_CHANNEL'), + ], + + 'array' => [ + 'transport' => 'array', + ], + + 'failover' => [ + 'transport' => 'failover', + 'mailers' => [ + 'smtp', + 'log', + ], + ], + + 'roundrobin' => [ + 'transport' => 'roundrobin', + 'mailers' => [ + 'ses', + 'postmark', + ], + ], + ], + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all e-mails sent by your application to be sent from + | the same address. Here, you may specify a name and address that is + | used globally for all e-mails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + + /* + |-------------------------------------------------------------------------- + | Markdown Mail Settings + |-------------------------------------------------------------------------- + | + | If you are using Markdown based email rendering, you may configure your + | theme and component paths here, allowing you to customize the design + | of the emails. Or, you may simply stick with the Laravel defaults! + | + */ + + 'markdown' => [ + 'theme' => 'default', + + 'paths' => [ + resource_path('views/vendor/mail'), + ], + ], + +]; diff --git a/config/queue.php b/config/queue.php new file mode 100644 index 0000000..01c6b05 --- /dev/null +++ b/config/queue.php @@ -0,0 +1,109 @@ + env('QUEUE_CONNECTION', 'sync'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection information for each server that + | is used by your application. A default configuration has been added + | for each back-end shipped with Laravel. You are free to add more. + | + | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'jobs', + 'queue' => 'default', + 'retry_after' => 90, + 'after_commit' => false, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => 'localhost', + 'queue' => 'default', + 'retry_after' => 90, + 'block_for' => 0, + 'after_commit' => false, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), + 'queue' => env('SQS_QUEUE', 'default'), + 'suffix' => env('SQS_SUFFIX'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'after_commit' => false, + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + 'queue' => env('REDIS_QUEUE', 'default'), + 'retry_after' => 90, + 'block_for' => null, + 'after_commit' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Job Batching + |-------------------------------------------------------------------------- + | + | The following options configure the database and table that store job + | batching information. These options can be updated to any database + | connection and table which has been defined by your application. + | + */ + + 'batching' => [ + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'job_batches', + ], + + /* + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control which database and table are used to store the jobs that + | have failed. You may change them to any database / table you wish. + | + */ + + 'failed' => [ + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/config/sanctum.php b/config/sanctum.php new file mode 100644 index 0000000..35d75b3 --- /dev/null +++ b/config/sanctum.php @@ -0,0 +1,83 @@ + explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( + '%s%s', + 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', + Sanctum::currentApplicationUrlWithPort() + ))), + + /* + |-------------------------------------------------------------------------- + | Sanctum Guards + |-------------------------------------------------------------------------- + | + | This array contains the authentication guards that will be checked when + | Sanctum is trying to authenticate a request. If none of these guards + | are able to authenticate the request, Sanctum will use the bearer + | token that's present on an incoming request for authentication. + | + */ + + 'guard' => ['web'], + + /* + |-------------------------------------------------------------------------- + | Expiration Minutes + |-------------------------------------------------------------------------- + | + | This value controls the number of minutes until an issued token will be + | considered expired. This will override any values set in the token's + | "expires_at" attribute, but first-party sessions are not affected. + | + */ + + 'expiration' => null, + + /* + |-------------------------------------------------------------------------- + | Token Prefix + |-------------------------------------------------------------------------- + | + | Sanctum can prefix new tokens in order to take advantage of numerous + | security scanning initiatives maintained by open source platforms + | that notify developers if they commit tokens into repositories. + | + | See: https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning + | + */ + + 'token_prefix' => env('SANCTUM_TOKEN_PREFIX', ''), + + /* + |-------------------------------------------------------------------------- + | Sanctum Middleware + |-------------------------------------------------------------------------- + | + | When authenticating your first-party SPA with Sanctum you may need to + | customize some of the middleware Sanctum uses while processing the + | request. You may change the middleware listed below as required. + | + */ + + 'middleware' => [ + 'authenticate_session' => Laravel\Sanctum\Http\Middleware\AuthenticateSession::class, + 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class, + 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, + ], + +]; diff --git a/config/services.php b/config/services.php new file mode 100644 index 0000000..0ace530 --- /dev/null +++ b/config/services.php @@ -0,0 +1,34 @@ + [ + 'domain' => env('MAILGUN_DOMAIN'), + 'secret' => env('MAILGUN_SECRET'), + 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), + 'scheme' => 'https', + ], + + 'postmark' => [ + 'token' => env('POSTMARK_TOKEN'), + ], + + 'ses' => [ + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], + +]; diff --git a/config/session.php b/config/session.php new file mode 100644 index 0000000..e738cb3 --- /dev/null +++ b/config/session.php @@ -0,0 +1,214 @@ + env('SESSION_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to immediately expire on the browser closing, set that option. + | + */ + + 'lifetime' => env('SESSION_LIFETIME', 120), + + 'expire_on_close' => false, + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it is stored. All encryption will be run + | automatically by Laravel and you can use the Session like normal. + | + */ + + 'encrypt' => false, + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When using the native session driver, we need a location where session + | files may be stored. A default has been set for you but a different + | location may be specified. This is only needed for file sessions. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => env('SESSION_CONNECTION'), + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table we + | should use to manage the sessions. Of course, a sensible default is + | provided for you; however, you are free to change this as needed. + | + */ + + 'table' => 'sessions', + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | While using one of the framework's cache driven session backends you may + | list a cache store that should be used for these sessions. This value + | must match with one of the application's configured cache "stores". + | + | Affects: "apc", "dynamodb", "memcached", "redis" + | + */ + + 'store' => env('SESSION_STORE'), + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the cookie used to identify a session + | instance by ID. The name specified here will get used every time a + | new session cookie is created by the framework for every driver. + | + */ + + 'cookie' => env( + 'SESSION_COOKIE', + Str::slug(env('APP_NAME', 'laravel'), '_').'_session' + ), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application but you are free to change this when necessary. + | + */ + + 'path' => '/', + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | Here you may change the domain of the cookie used to identify a session + | in your application. This will determine which domains the cookie is + | available to in your application. A sensible default has been set. + | + */ + + 'domain' => env('SESSION_DOMAIN'), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you when it can't be done securely. + | + */ + + 'secure' => env('SESSION_SECURE_COOKIE'), + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. You are free to modify this option if needed. + | + */ + + 'http_only' => true, + + /* + |-------------------------------------------------------------------------- + | Same-Site Cookies + |-------------------------------------------------------------------------- + | + | This option determines how your cookies behave when cross-site requests + | take place, and can be used to mitigate CSRF attacks. By default, we + | will set this value to "lax" since this is a secure default value. + | + | Supported: "lax", "strict", "none", null + | + */ + + 'same_site' => 'lax', + + /* + |-------------------------------------------------------------------------- + | Partitioned Cookies + |-------------------------------------------------------------------------- + | + | Setting this value to true will tie the cookie to the top-level site for + | a cross-site context. Partitioned cookies are accepted by the browser + | when flagged "secure" and the Same-Site attribute is set to "none". + | + */ + + 'partitioned' => false, + +]; diff --git a/config/view.php b/config/view.php new file mode 100644 index 0000000..22b8a18 --- /dev/null +++ b/config/view.php @@ -0,0 +1,36 @@ + [ + resource_path('views'), + ], + + /* + |-------------------------------------------------------------------------- + | Compiled View Path + |-------------------------------------------------------------------------- + | + | This option determines where all the compiled Blade templates will be + | stored for your application. Typically, this is within the storage + | directory. However, as usual, you are free to change this value. + | + */ + + 'compiled' => env( + 'VIEW_COMPILED_PATH', + realpath(storage_path('framework/views')) + ), + +]; diff --git a/database/.gitignore b/database/.gitignore new file mode 100644 index 0000000..9b19b93 --- /dev/null +++ b/database/.gitignore @@ -0,0 +1 @@ +*.sqlite* diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php new file mode 100644 index 0000000..584104c --- /dev/null +++ b/database/factories/UserFactory.php @@ -0,0 +1,44 @@ + + */ +class UserFactory extends Factory +{ + /** + * The current password being used by the factory. + */ + protected static ?string $password; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'name' => fake()->name(), + 'email' => fake()->unique()->safeEmail(), + 'email_verified_at' => now(), + 'password' => static::$password ??= Hash::make('password'), + 'remember_token' => Str::random(10), + ]; + } + + /** + * Indicate that the model's email address should be unverified. + */ + public function unverified(): static + { + return $this->state(fn (array $attributes) => [ + 'email_verified_at' => null, + ]); + } +} diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php new file mode 100644 index 0000000..444fafb --- /dev/null +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('name'); + $table->string('email')->unique(); + $table->timestamp('email_verified_at')->nullable(); + $table->string('password'); + $table->rememberToken(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('users'); + } +}; diff --git a/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php b/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php new file mode 100644 index 0000000..81a7229 --- /dev/null +++ b/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php @@ -0,0 +1,28 @@ +string('email')->primary(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('password_reset_tokens'); + } +}; diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php new file mode 100644 index 0000000..249da81 --- /dev/null +++ b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('uuid')->unique(); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('failed_jobs'); + } +}; diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php new file mode 100644 index 0000000..e828ad8 --- /dev/null +++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -0,0 +1,33 @@ +id(); + $table->morphs('tokenable'); + $table->string('name'); + $table->string('token', 64)->unique(); + $table->text('abilities')->nullable(); + $table->timestamp('last_used_at')->nullable(); + $table->timestamp('expires_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('personal_access_tokens'); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php new file mode 100644 index 0000000..a9f4519 --- /dev/null +++ b/database/seeders/DatabaseSeeder.php @@ -0,0 +1,22 @@ +create(); + + // \App\Models\User::factory()->create([ + // 'name' => 'Test User', + // 'email' => 'test@example.com', + // ]); + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e13d91e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2395 @@ +{ + "name": "billiards-app", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "autoprefixer": "^10.4.20", + "axios": "^1.6.4", + "laravel-vite-plugin": "^1.0.0", + "postcss": "^8.4.47", + "tailwindcss": "^3.4.13", + "vite": "^5.0.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001663", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz", + "integrity": "sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.27", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.27.tgz", + "integrity": "sha512-o37j1vZqCoEgBuWWXLHQgTN/KDKe7zwpiY5CPeq2RvUqOyJw9xnrULzZAEVQ5p4h+zjMk7hgtOoPdnLxr7m/jw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/laravel-vite-plugin": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.5.tgz", + "integrity": "sha512-Zv+to82YLBknDCZ6g3iwOv9wZ7f6EWStb9pjSm7MGe9Mfoy5ynT2ssZbGsMr1udU6rDg9HOoYEVGw5Qf+p9zbw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "vite-plugin-full-reload": "^1.1.0" + }, + "bin": { + "clean-orphaned-assets": "bin/clean.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", + "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "5.4.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.7.tgz", + "integrity": "sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-full-reload": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz", + "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "picomatch": "^2.3.1" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yaml": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..41ddc21 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "devDependencies": { + "autoprefixer": "^10.4.20", + "axios": "^1.6.4", + "laravel-vite-plugin": "^1.0.0", + "postcss": "^8.4.47", + "tailwindcss": "^3.4.13", + "vite": "^5.0.0" + } +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..bc86714 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,32 @@ + + + + + tests/Unit + + + tests/Feature + + + + + app + + + + + + + + + + + + + + + diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..3aec5e2 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,21 @@ + + + Options -MultiViews -Indexes + + + RewriteEngine On + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Send Requests To Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..e69de29 diff --git a/public/images/ayo.png b/public/images/ayo.png new file mode 100644 index 0000000000000000000000000000000000000000..f160c4620945fc6e36b4425b76ba320eb6dc8f95 GIT binary patch literal 7921 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 literal 0 HcmV?d00001 diff --git a/public/images/billiard2.jpg b/public/images/billiard2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5fc4273813526c742e85e113dab206e6d0d8710b GIT binary patch literal 44990 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 literal 0 HcmV?d00001 diff --git a/public/images/billiard3.jpg b/public/images/billiard3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..92f0503da1b79bc9e77653b92ce37cb1794c77b9 GIT binary patch literal 39094 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 literal 0 HcmV?d00001 diff --git a/public/index.php b/public/index.php new file mode 100644 index 0000000..1d69f3a --- /dev/null +++ b/public/index.php @@ -0,0 +1,55 @@ +make(Kernel::class); + +$response = $kernel->handle( + $request = Request::capture() +)->send(); + +$kernel->terminate($request, $response); diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..eb05362 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/resources/css/app.css b/resources/css/app.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/resources/css/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/resources/js/app.js b/resources/js/app.js new file mode 100644 index 0000000..e59d6a0 --- /dev/null +++ b/resources/js/app.js @@ -0,0 +1 @@ +import './bootstrap'; diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js new file mode 100644 index 0000000..846d350 --- /dev/null +++ b/resources/js/bootstrap.js @@ -0,0 +1,32 @@ +/** + * We'll load the axios HTTP library which allows us to easily issue requests + * to our Laravel back-end. This library automatically handles sending the + * CSRF token as a header based on the value of the "XSRF" token cookie. + */ + +import axios from 'axios'; +window.axios = axios; + +window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; + +/** + * Echo exposes an expressive API for subscribing to channels and listening + * for events that are broadcast by Laravel. Echo and event broadcasting + * allows your team to easily build robust real-time web applications. + */ + +// import Echo from 'laravel-echo'; + +// import Pusher from 'pusher-js'; +// window.Pusher = Pusher; + +// window.Echo = new Echo({ +// broadcaster: 'pusher', +// key: import.meta.env.VITE_PUSHER_APP_KEY, +// cluster: import.meta.env.VITE_PUSHER_APP_CLUSTER ?? 'mt1', +// wsHost: import.meta.env.VITE_PUSHER_HOST ? import.meta.env.VITE_PUSHER_HOST : `ws-${import.meta.env.VITE_PUSHER_APP_CLUSTER}.pusher.com`, +// wsPort: import.meta.env.VITE_PUSHER_PORT ?? 80, +// wssPort: import.meta.env.VITE_PUSHER_PORT ?? 443, +// forceTLS: (import.meta.env.VITE_PUSHER_SCHEME ?? 'https') === 'https', +// enabledTransports: ['ws', 'wss'], +// }); diff --git a/resources/views/layouts/main.blade.php b/resources/views/layouts/main.blade.php new file mode 100644 index 0000000..fdcdc8d --- /dev/null +++ b/resources/views/layouts/main.blade.php @@ -0,0 +1,116 @@ + + + + + + + + Document + @vite('resources/css/app.css') + {{-- Font | Google Fonts --}} + + + + {{-- Icon | Font Awesome --}} + + + + + + + + + +
+ @yield('content') +
+ + + + + \ No newline at end of file diff --git a/resources/views/pages/home.blade.php b/resources/views/pages/home.blade.php new file mode 100644 index 0000000..507db7b --- /dev/null +++ b/resources/views/pages/home.blade.php @@ -0,0 +1,105 @@ +@extends('layouts.main') + +@section('content') +
+
+
+

BOOKING LAPANGAN ONLINE + TERBAIK

+
+ +
+
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ +
+
+ +
+
+ +
+
+
Menampilkan:
+

6

+

venue tersedia

+
+
+
+

Urutkan berdasarkan: Harga + terendah

+
+
+ +
+@endsection \ No newline at end of file diff --git a/resources/views/pages/venue.blade.php b/resources/views/pages/venue.blade.php new file mode 100644 index 0000000..592420d --- /dev/null +++ b/resources/views/pages/venue.blade.php @@ -0,0 +1,83 @@ +@extends('layouts.main') +@section('content') +
+
+ {{ $venue['name'] }} +

{{ $venue['name'] }}

+

{{ $venue['location'] }}

+
+ +
+

Lokasi Venue

+

{{ $venue['address'] }}

+
+
+ +
+
+
+
+
+

Pilih Meja

+
+
+

+
+
+ @foreach ($venue['tables'] as $table) +
+
+
+ +
+

{{ $table['name'] }} ({{ $table['brand'] }})

+

+ + {{ $table['status'] }} + +

+
+
+
+ + +
+
+ +
+

Pilih Jam Booking:

+ + +
+
+ @endforeach + +
+
+ {{-- {{ dd($venue['location']) }} --}} + + + + + +@endsection \ No newline at end of file diff --git a/routes/api.php b/routes/api.php new file mode 100644 index 0000000..889937e --- /dev/null +++ b/routes/api.php @@ -0,0 +1,19 @@ +get('/user', function (Request $request) { + return $request->user(); +}); diff --git a/routes/channels.php b/routes/channels.php new file mode 100644 index 0000000..5d451e1 --- /dev/null +++ b/routes/channels.php @@ -0,0 +1,18 @@ +id === (int) $id; +}); diff --git a/routes/console.php b/routes/console.php new file mode 100644 index 0000000..e05f4c9 --- /dev/null +++ b/routes/console.php @@ -0,0 +1,19 @@ +comment(Inspiring::quote()); +})->purpose('Display an inspiring quote'); diff --git a/routes/web.php b/routes/web.php new file mode 100644 index 0000000..1c13877 --- /dev/null +++ b/routes/web.php @@ -0,0 +1,8 @@ +name('index'); +Route::get('/venue/{venueName}', [VenueController::class, "venue"])->name('venue'); diff --git a/storage/app/.gitignore b/storage/app/.gitignore new file mode 100644 index 0000000..8f4803c --- /dev/null +++ b/storage/app/.gitignore @@ -0,0 +1,3 @@ +* +!public/ +!.gitignore diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/app/public/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore new file mode 100644 index 0000000..05c4471 --- /dev/null +++ b/storage/framework/.gitignore @@ -0,0 +1,9 @@ +compiled.php +config.php +down +events.scanned.php +maintenance.php +routes.php +routes.scanned.php +schedule-* +services.json diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore new file mode 100644 index 0000000..01e4a6c --- /dev/null +++ b/storage/framework/cache/.gitignore @@ -0,0 +1,3 @@ +* +!data/ +!.gitignore diff --git a/storage/framework/cache/data/.gitignore b/storage/framework/cache/data/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/cache/data/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/sessions/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/testing/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/views/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/logs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..fd523ed --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,19 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./resources/**/*.blade.php", + "./resources/**/*.js", + "./resources/**/*.vue", + ], + theme: { + extend: { + fontFamily: { + poppins: ['Poppins', 'sans-serif'], + }, + colors: { + primary: '#9E0620', + }, + }, + }, + plugins: [], +} \ No newline at end of file diff --git a/tests/CreatesApplication.php b/tests/CreatesApplication.php new file mode 100644 index 0000000..cc68301 --- /dev/null +++ b/tests/CreatesApplication.php @@ -0,0 +1,21 @@ +make(Kernel::class)->bootstrap(); + + return $app; + } +} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php new file mode 100644 index 0000000..8364a84 --- /dev/null +++ b/tests/Feature/ExampleTest.php @@ -0,0 +1,19 @@ +get('/'); + + $response->assertStatus(200); + } +} diff --git a/tests/TestCase.php b/tests/TestCase.php new file mode 100644 index 0000000..2932d4a --- /dev/null +++ b/tests/TestCase.php @@ -0,0 +1,10 @@ +assertTrue(true); + } +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..421b569 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,11 @@ +import { defineConfig } from 'vite'; +import laravel from 'laravel-vite-plugin'; + +export default defineConfig({ + plugins: [ + laravel({ + input: ['resources/css/app.css', 'resources/js/app.js'], + refresh: true, + }), + ], +});
+ + + +
+ + +
+ + + + + + +
+
+