diff --git a/.env.example b/.env.example index 17b3e4f..72dbf35 100644 --- a/.env.example +++ b/.env.example @@ -26,5 +26,3 @@ MEMCACHED_HOST=127.0.0.1 LASTFM_KEY= LASTFM_USER= -LASTFM_TOP_TRACKS=10 -API_ROOT=http://127.0.0.1:3000 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..7f676f1 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @RoscoeDaWah diff --git a/.gitignore b/.gitignore index 390126e..801bd05 100644 --- a/.gitignore +++ b/.gitignore @@ -17,5 +17,8 @@ yarn-error.log /.fleet /.idea /.vscode -.auth0.*.json **/.DS_Store +/log +/storage +/tmp +/public/pub diff --git a/.run/Dev Server.run.xml b/.run/Dev Server.run.xml deleted file mode 100644 index b52f528..0000000 --- a/.run/Dev Server.run.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.run/Development Server (External).run.xml b/.run/Development Server (External).run.xml new file mode 100644 index 0000000..aec6c1f --- /dev/null +++ b/.run/Development Server (External).run.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/.run/Development Server.run.xml b/.run/Development Server.run.xml new file mode 100644 index 0000000..eb6b77f --- /dev/null +++ b/.run/Development Server.run.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/README.md b/README.md index 9eb0a58..b214035 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ -# diskfloppy.me + +
+My personal website, developed using the Laravel framework diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 56af264..26fbddf 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -24,7 +24,9 @@ class Handler extends ExceptionHandler public function register(): void { $this->reportable(function (Throwable $e) { - // + if (app()->bound('sentry')) { + app('sentry')->captureException($e); + } }); } } diff --git a/app/Helpers/LegacyHelper.php b/app/Helpers/LegacyHelper.php new file mode 100644 index 0000000..cd7f252 --- /dev/null +++ b/app/Helpers/LegacyHelper.php @@ -0,0 +1,15 @@ +getHost() === "legacy.wah.moe" || // Accessed via legacy.wah.moe domain + str_starts_with(request()->getHost(), "192.168") || // Accessed via local IP address + !request()->hasHeader("Host") // Browser does not send Host header (e.g. NCSA MOSAIC) + ); + } +} diff --git a/app/Http/Controllers/BookmarksController.php b/app/Http/Controllers/BookmarksController.php new file mode 100644 index 0000000..56aacc7 --- /dev/null +++ b/app/Http/Controllers/BookmarksController.php @@ -0,0 +1,15 @@ +get(); + return view('bookmarks', compact('categories')); + } +} diff --git a/app/Http/Controllers/GuestbookController.php b/app/Http/Controllers/GuestbookController.php index 70707d7..3fd179b 100644 --- a/app/Http/Controllers/GuestbookController.php +++ b/app/Http/Controllers/GuestbookController.php @@ -2,37 +2,32 @@ namespace App\Http\Controllers; +use App\Models\GuestbookEntry; use Illuminate\Http\Request; -use DB; +use Illuminate\Http\RedirectResponse; +use Illuminate\Contracts\View\View; +use Illuminate\Validation\ValidationException; +use UAParser\Parser; class GuestbookController extends Controller { - public function guestbook() { - return view('pages.guestbook'); + public function show(): View { + $entries = GuestbookEntry::selectEntries(); + $parser = Parser::create(); + + return view('guestbook') + ->with('entries', $entries) + ->with('parser', $parser); } - public function guestbookPost(Request $request) { - $this->validate($request, [ - 'name' => 'required', - 'message' => 'required' - ]); - - $matching_bans = DB::select('SELECT reason FROM guestbook__bans WHERE ip_address = ?', array($request->ip())); - - if (!empty($matching_bans)) { - return view('errors.guestbook-ipban')->with('reason', $matching_bans[0]->reason); - } - - DB::insert( - 'INSERT INTO guestbook__entries (name, timestamp, ip_address, agent, message) values (?, ?, ?, ?, ?)', - [ - htmlspecialchars($request->get('name')), - time(), - $request->ip(), - $request->userAgent(), - htmlspecialchars($request->get('message')) - ] - ); - + /** + * Creates a new guestbook entry + * + * @param Request $request + * @return RedirectResponse + * @throws ValidationException + */ + public function addEntry(Request $request): RedirectResponse { + GuestbookEntry::insertGuestbookEntry($request); return back()->with('success', 'Entry submitted successfully!'); } } diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php new file mode 100644 index 0000000..e046d58 --- /dev/null +++ b/app/Http/Controllers/HomeController.php @@ -0,0 +1,33 @@ +diff($currentDate); + return $age->y; + } + + /** + * Shows home page + * @return View + */ + public function show(): View { + return view('home', [ + 'age' => $this->returnAge(), + ]); + } +} diff --git a/app/Http/Controllers/MusicController.php b/app/Http/Controllers/MusicController.php new file mode 100644 index 0000000..aac389f --- /dev/null +++ b/app/Http/Controllers/MusicController.php @@ -0,0 +1,76 @@ + 'user.getrecenttracks', + 'user' => Config::get('services.lastfm.user'), + 'format' => 'json', + 'nowplaying' => 'true', + 'api_key' => Config::get('services.lastfm.key') + ])->get('https://ws.audioscrobbler.com/2.0/'); + $data = $response->json(); + $track_data = $data["recenttracks"]["track"][0]; + // $image = array_column($track_data["image"], null, 'size')['large'] ?? false; + $image = end($track_data["image"]) ?? false; + $now_playing = false; + if (array_key_exists("@attr", $track_data)) { + $now_playing = $track_data["@attr"]["nowplaying"] == "true" ?? ["url"=>null]; + } + $current_track = [ + 'title' => $track_data["name"], + 'artist' => $track_data["artist"]["#text"], + 'url' => $track_data["url"], + 'image' => $image["#text"], + 'header' => $now_playing ? "Now Playing" : "Last Track", + ]; + Cache::put('current_track', $current_track, now()->addSeconds(15)); + return $current_track; + } + + public function getTopTracks() { + // If it's already cached just return that + if (Cache::has('top_tracks')) { + return Cache::get('top_tracks'); + } + + $response = Http::withQueryParameters([ + 'method' => 'user.gettoptracks', + 'user' => Config::get('services.lastfm.user'), + 'format' => 'json', + 'period' => '1month', + 'limit' => 10, + 'api_key' => Config::get('services.lastfm.key') + ])->get('https://ws.audioscrobbler.com/2.0/'); + $data = $response->json(); + $topTracks = []; + foreach ($data["toptracks"]["track"] as $track) { + $topTracks[] = [ + 'title' => $track["name"], + 'artist' => $track["artist"]["name"], + 'url' => $track["url"], + 'plays' => $track["playcount"], + ]; + } + Cache::put('top_tracks', $topTracks, now()->addSeconds(15)); + return $topTracks; + } + public function show() : View { + return view('music') + ->with('current_track', $this->getCurrentTrack()) + ->with('top_tracks', $this->getTopTracks()); + } +} diff --git a/app/Http/Controllers/RoscoLekoController.php b/app/Http/Controllers/RoscoLekoController.php new file mode 100644 index 0000000..a5cc5a7 --- /dev/null +++ b/app/Http/Controllers/RoscoLekoController.php @@ -0,0 +1,52 @@ + $dateA; + }); + + return $images; + } + + /** + * Shows the page + * @return View + */ + public function show(): View { + return view('pandamonium', [ + 'images' => $this->getImages(), + ]); + } +} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 4eab7b8..d6127bc 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -47,6 +47,7 @@ class Kernel extends HttpKernel protected $routeMiddleware = [ 'rate_limit' => \App\Http\Middleware\RateLimiter::class, + 'validator' => \App\Http\Middleware\GuestbookValidate::class, ]; diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php index 867695b..5ee1433 100644 --- a/app/Http/Middleware/EncryptCookies.php +++ b/app/Http/Middleware/EncryptCookies.php @@ -12,6 +12,6 @@ class EncryptCookies extends Middleware * @var array */ protected $except = [ - // + "colorscheme" ]; } diff --git a/app/Http/Middleware/GuestbookValidate.php b/app/Http/Middleware/GuestbookValidate.php new file mode 100644 index 0000000..b2218bb --- /dev/null +++ b/app/Http/Middleware/GuestbookValidate.php @@ -0,0 +1,37 @@ +validate([ + 'name' => 'required', + 'message' => 'required' + ]) || + $this->containsUrl($request->get('message')) || + $this->containsUrl($request->get('name')) + ) { + return response()->view('errors.guestbook-invalid', [], 400); + } + return $next($request); + } + + public function containsUrl($str) { + $matches = []; + $pattern = '/\b(?:https?|ftp|www)(:\/\/)*[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i'; + preg_match_all($pattern, $str, $matches); + return count($matches[0]); + } +} diff --git a/app/Http/Middleware/RateLimiter.php b/app/Http/Middleware/RateLimiter.php index 09eb0a9..821868f 100644 --- a/app/Http/Middleware/RateLimiter.php +++ b/app/Http/Middleware/RateLimiter.php @@ -16,6 +16,9 @@ class RateLimiter */ public function handle(Request $request, Closure $next): Response { + if (auth()->check()) { + return $next($request); + } $ipAddress = $request->ip(); $cacheKey = 'rate_limit_'.$ipAddress; diff --git a/app/Models/BookmarkCategory.php b/app/Models/BookmarkCategory.php new file mode 100644 index 0000000..a8bc8d2 --- /dev/null +++ b/app/Models/BookmarkCategory.php @@ -0,0 +1,36 @@ +hasMany(BookmarkSite::class, 'category'); + } + + public static function insertBookmarkCategory(string $name) { + $newBookmarkCategory = new BookmarkCategory; + $newBookmarkCategory->name = $name; + $newBookmarkCategory->save(); + } + public static function selectBookmarks(int $id) { + $bookmarks = BookmarkSite::where('category', '=', $id)->firstOrFail(); + return $bookmarks; + } + + public static function importBookmarkCategory(array $data) { + foreach ($data as $category) { + $newBookmarkCategory = new BookmarkCategory; + $newBookmarkCategory->name = $category['name']; + $newBookmarkCategory->priority = intval($category['priority']); + $newBookmarkCategory->save(); + } + } +} diff --git a/app/Models/BookmarkSite.php b/app/Models/BookmarkSite.php new file mode 100644 index 0000000..3c9cc5d --- /dev/null +++ b/app/Models/BookmarkSite.php @@ -0,0 +1,35 @@ +belongsTo(BookmarkCategory::class, 'category'); + } + public static function insertBookmark(string $name, string $url, int $category) { + $category = BookmarkCategory::where('id', $category)->firstOrFail(); + $newBookmark = new BookmarkSite; + $newBookmark->name = $name; + $newBookmark->url = $url; + $newBookmark->category = $category->id; + $newBookmark->save(); + } + + public static function importBookmark(array $data) { + foreach ($data as $site) { + $newBookmark = new BookmarkSite; + $newBookmark->name = $site['name']; + $newBookmark->description = $site['description']; + $newBookmark->url = $site['url']; + $newBookmark->category = $site['category_id']; + $newBookmark->save(); + } + } +} diff --git a/app/Models/GuestbookEntry.php b/app/Models/GuestbookEntry.php new file mode 100644 index 0000000..b25e0b4 --- /dev/null +++ b/app/Models/GuestbookEntry.php @@ -0,0 +1,50 @@ +name = $request->get('name'); + $newEntry->message = $request->get('message'); + $newEntry->ip = $request->ip(); + $newEntry->agent = $request->userAgent(); + $newEntry->legacy_flagged = isLegacy(); + $newEntry->save(); + } + + public static function selectEntries() { + $entries = GuestbookEntry::where("legacy_flagged", false)->orderBy('created_at', 'desc')->get(); + return $entries; + } + + public static function importGuestbookEntry(array $data) { + foreach ($data as $entry) { + $dt = new \DateTime('@' . $entry['timestamp']); + $newEntry = new GuestbookEntry; + $newEntry->name = $entry['name']; + $newEntry->ip = $entry['ip_address']; + $newEntry->agent = $entry['agent']; + $newEntry->admin = $entry['site_owner']; + $newEntry->message = $entry['message']; + $newEntry->created_at = $dt; + $newEntry->updated_at = $dt; + $newEntry->save(); + } + } +} diff --git a/app/Models/User.php b/app/Models/User.php deleted file mode 100644 index 4d7f70f..0000000 --- a/app/Models/User.php +++ /dev/null @@ -1,45 +0,0 @@ - - */ - 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 index 452e6b6..2209133 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,23 +2,20 @@ namespace App\Providers; +use Illuminate\Support\Facades\Config; use Illuminate\Support\ServiceProvider; +use PostHog\PostHog; -class AppServiceProvider extends ServiceProvider -{ +class AppServiceProvider extends ServiceProvider { /** * Register any application services. */ - public function register(): void - { + public function register(): void { // } /** * Bootstrap any application services. */ - public function boot(): void - { - // - } + public function boot(): void {} } diff --git a/app/View/Components/LastFMCurrent.php b/app/View/Components/LastFMCurrent.php new file mode 100644 index 0000000..ebe029b --- /dev/null +++ b/app/View/Components/LastFMCurrent.php @@ -0,0 +1,24 @@ +track = $track; + } + + /** + * Get the view / contents that represent the component. + */ + public function render(): View|Closure|string { + return view('components.lastfm-current'); + } +} diff --git a/app/View/Components/LastFMTop.php b/app/View/Components/LastFMTop.php new file mode 100644 index 0000000..da69710 --- /dev/null +++ b/app/View/Components/LastFMTop.php @@ -0,0 +1,24 @@ +tracks = $tracks; + } + + /** + * Get the view / contents that represent the component. + */ + public function render(): View|Closure|string { + return view('components.lastfm-top'); + } +} diff --git a/app/View/Components/LastFMTrack.php b/app/View/Components/LastFMTrack.php new file mode 100644 index 0000000..da77fe2 --- /dev/null +++ b/app/View/Components/LastFMTrack.php @@ -0,0 +1,26 @@ +track = $track; + $this->count = $count; + } + + /** + * Get the view / contents that represent the component. + */ + public function render(): View|Closure|string { + return view('components.lastfm-track'); + } +} diff --git a/app/View/Components/Layout.php b/app/View/Components/Layout.php new file mode 100644 index 0000000..440f2fc --- /dev/null +++ b/app/View/Components/Layout.php @@ -0,0 +1,40 @@ + $this->isItChristmas() + ]); + } else { + return view('components.layout', [ + 'isChristmas' => $this->isItChristmas() + ]); + } + } + + public function isItChristmas() : bool { + $currentDate = new DateTime(); + $currentYear = intval($currentDate->format('Y')); + + $startDate = new DateTime("$currentYear-11-10"); + $endDate = new DateTime(($currentYear + 1) . "-01-01"); + + return $currentDate >= $startDate && $currentDate < $endDate; + } +} diff --git a/app/View/Components/Navbar.php b/app/View/Components/Navbar.php new file mode 100644 index 0000000..b7612c1 --- /dev/null +++ b/app/View/Components/Navbar.php @@ -0,0 +1,24 @@ +title = $title; + } + + /** + * Get the view / contents that represent the component. + */ + public function render(): View|Closure|string { + return view('components.navigation'); + } +} diff --git a/app/View/Components/Wah.php b/app/View/Components/Wah.php new file mode 100644 index 0000000..fdb4c23 --- /dev/null +++ b/app/View/Components/Wah.php @@ -0,0 +1,50 @@ +json(); + if ($data == null) return ""; + $path = parse_url("https://api.tinyfox.dev" . $data["loc"], PHP_URL_PATH); + return "//".request()->getHttpHost()."/proxy/wah/".basename($path); + } catch (Exception $ex) { + return ""; + } + } + try { + $response = Http::get('https://api.tinyfox.dev/img.json?animal=wah'); + $data = $response->json(); + if ($data == null) return ""; + return "https://api.tinyfox.dev" . $data["loc"]; + + } catch (Exception $ex) { + return ""; + } + } + + /** + * Get the view / contents that represent the component. + */ + public function render(): View|Closure|string { + return view('components.wah', [ + 'wah' => $this->getWah(), + ]); + } +} diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 0000000..06afab7 --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/composer.json b/composer.json index 787b44e..18a6d2c 100644 --- a/composer.json +++ b/composer.json @@ -1,18 +1,21 @@ { - "name": "floppydisk05/diskfloppy.me", + "name": "roscoedawah/wah.moe", "type": "project", "description": "My personal website, developed using the Laravel framework.", "keywords": ["laravel", "framework"], "license": "MIT", "require": { "php": "^8.1", - "auth0/login": "^7.8", + "ext-exif": "*", + "browner12/helpers": "^3.7", "guzzlehttp/guzzle": "^7.2", + "intervention/image": "^3.9", "laravel/framework": "^10.10", - "laravel/sanctum": "^3.2", "laravel/tinker": "^2.8", "scrivo/highlight.php": "v9.18.1.10", - "spatie/laravel-honeypot": "^4.3" + "spatie/laravel-honeypot": "^4.3", + "spatie/laravel-html": "^3.4", + "ua-parser/uap-php": "^3.9.14" }, "require-dev": { "fakerphp/faker": "^1.9.1", diff --git a/composer.lock b/composer.lock index ca94442..7987377 100644 --- a/composer.lock +++ b/composer.lock @@ -4,239 +4,29 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b9fa52d6299a2643f49a5191cf7b6cc8", + "content-hash": "2ac3bfd779b16bd2b0f122c15c733ab5", "packages": [ - { - "name": "auth0/auth0-php", - "version": "8.9.0", - "source": { - "type": "git", - "url": "https://github.com/auth0/auth0-PHP.git", - "reference": "a8efbb81d0f93a0aaa3ff212ce34955e33c7941d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/auth0/auth0-PHP/zipball/a8efbb81d0f93a0aaa3ff212ce34955e33c7941d", - "reference": "a8efbb81d0f93a0aaa3ff212ce34955e33c7941d", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-mbstring": "*", - "ext-openssl": "*", - "php": "^8.0", - "php-http/multipart-stream-builder": "^1", - "psr-discovery/all": "^1", - "psr/http-client-implementation": "^1", - "psr/http-factory-implementation": "^1", - "psr/http-message-implementation": "^1" - }, - "require-dev": { - "ergebnis/composer-normalize": "^2", - "friendsofphp/php-cs-fixer": "^3", - "mockery/mockery": "^1", - "pestphp/pest": "^2", - "phpstan/phpstan": "^1", - "phpstan/phpstan-strict-rules": "^1", - "psr-mock/http": "^1", - "rector/rector": "0.17.6", - "spatie/ray": "^1", - "symfony/cache": "^4 || ^5 || ^6", - "symfony/event-dispatcher": "^4 || ^5 || ^6", - "vimeo/psalm": "^5", - "wikimedia/composer-merge-plugin": "^2" - }, - "suggest": { - "psr/cache-implementation": "(PSR-6 Cache) Improve performance by avoiding making redundant network requests.", - "psr/event-dispatcher-implementation": "(PSR-14 Event Dispatcher) Observe and react to events when they occur." - }, - "type": "library", - "extra": { - "merge-plugin": { - "ignore-duplicates": false, - "include": [ - "composer.local.json" - ], - "merge-dev": true, - "merge-extra": false, - "merge-extra-deep": false, - "merge-scripts": false, - "recurse": true, - "replace": true - } - }, - "autoload": { - "psr-4": { - "Auth0\\SDK\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Auth0", - "email": "support@auth0.com", - "homepage": "https://auth0.com/" - } - ], - "description": "PHP SDK for Auth0 Authentication and Management APIs.", - "homepage": "https://github.com/auth0/auth0-PHP", - "keywords": [ - "Authentication", - "JSON Web Token", - "JWK", - "OpenId", - "api", - "auth", - "auth0", - "authorization", - "json web key", - "jwt", - "login", - "oauth", - "protect", - "secure" - ], - "support": { - "issues": "https://github.com/auth0/auth0-PHP/issues", - "source": "https://github.com/auth0/auth0-PHP/tree/8.9.0" - }, - "time": "2023-11-14T01:31:10+00:00" - }, - { - "name": "auth0/login", - "version": "7.11.0", - "source": { - "type": "git", - "url": "https://github.com/auth0/laravel-auth0.git", - "reference": "5d6f21888c862fd5aa6696efc277414b50a7a791" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/auth0/laravel-auth0/zipball/5d6f21888c862fd5aa6696efc277414b50a7a791", - "reference": "5d6f21888c862fd5aa6696efc277414b50a7a791", - "shasum": "" - }, - "require": { - "auth0/auth0-php": "^8.7", - "ext-json": "*", - "illuminate/contracts": "^9 || ^10", - "illuminate/http": "^9 || ^10", - "illuminate/support": "^9 || ^10", - "php": "^8.0", - "psr-discovery/all": "^1", - "psr/cache": "^2 || ^3" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3", - "mockery/mockery": "^1", - "nunomaduro/larastan": "^2", - "orchestra/testbench": "^7 || ^8", - "pestphp/pest": "^2", - "pestphp/pest-plugin-laravel": "^2", - "phpstan/phpstan": "^1", - "phpstan/phpstan-strict-rules": "^1", - "psalm/plugin-laravel": "^2", - "psr-mock/http": "^1", - "rector/rector": "0.17.0", - "spatie/laravel-ray": "^1", - "squizlabs/php_codesniffer": "^3", - "symfony/cache": "^6", - "vimeo/psalm": "^5", - "wikimedia/composer-merge-plugin": "^2" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "Auth0": "Auth0\\Laravel\\Facade\\Auth0" - }, - "providers": [ - "Auth0\\Laravel\\ServiceProvider" - ] - }, - "merge-plugin": { - "ignore-duplicates": false, - "include": [ - "composer.local.json" - ], - "merge-dev": true, - "merge-extra": false, - "merge-extra-deep": false, - "merge-scripts": false, - "recurse": true, - "replace": true - } - }, - "autoload": { - "psr-4": { - "Auth0\\Laravel\\": [ - "src/", - "deprecated/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Auth0", - "email": "support@auth0.com", - "homepage": "https://auth0.com/" - } - ], - "description": "Auth0 Laravel SDK. Straight-forward and tested methods for implementing authentication, and accessing Auth0's Management API endpoints.", - "homepage": "https://github.com/auth0/laravel-auth0", - "keywords": [ - "Authentication", - "JSON Web Token", - "JWK", - "OpenId", - "api", - "auth", - "auth0", - "authorization", - "json web key", - "jwt", - "laravel", - "login", - "oauth", - "protect", - "secure" - ], - "support": { - "email": "support@auth0.com", - "forum": "https://community.auth0.com", - "issues": "https://github.com/auth0/laravel-auth0/issues", - "source": "https://github.com/auth0/laravel-auth0" - }, - "time": "2023-08-09T05:28:49+00:00" - }, { "name": "brick/math", - "version": "0.11.0", + "version": "0.12.3", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478" + "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478", - "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478", + "url": "https://api.github.com/repos/brick/math/zipball/866551da34e9a618e64a819ee1e01c20d8a588ba", + "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba", "shasum": "" }, "require": { - "php": "^8.0" + "php": "^8.1" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^9.0", - "vimeo/psalm": "5.0.0" + "phpunit/phpunit": "^10.1", + "vimeo/psalm": "6.8.8" }, "type": "library", "autoload": { @@ -256,12 +46,17 @@ "arithmetic", "bigdecimal", "bignum", + "bignumber", "brick", - "math" + "decimal", + "integer", + "math", + "mathematics", + "rational" ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.11.0" + "source": "https://github.com/brick/math/tree/0.12.3" }, "funding": [ { @@ -269,38 +64,50 @@ "type": "github" } ], - "time": "2023-01-15T23:15:59+00:00" + "time": "2025-02-28T13:11:00+00:00" }, { - "name": "composer/semver", - "version": "3.4.0", + "name": "browner12/helpers", + "version": "v3.7.0", "source": { "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + "url": "https://github.com/browner12/helpers.git", + "reference": "dfbc47b0d2b972c41d1afef9add40c662d4146f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "url": "https://api.github.com/repos/browner12/helpers/zipball/dfbc47b0d2b972c41d1afef9add40c662d4146f1", + "reference": "dfbc47b0d2b972c41d1afef9add40c662d4146f1", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "php": "^7.2|^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpunit/phpunit": "^10.0", + "scrutinizer/ocular": "^1.1", + "squizlabs/php_codesniffer": "^3.6" + }, + "suggest": { + "moneyphp/money": "Money value object." }, "type": "library", "extra": { + "laravel": { + "providers": [ + "browner12\\helpers\\HelperServiceProvider" + ] + }, "branch-alias": { - "dev-main": "3.x-dev" + "dev-master": "1.0-dev" } }, "autoload": { "psr-4": { - "Composer\\Semver\\": "src" + "browner12\\helpers\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -309,32 +116,151 @@ ], "authors": [ { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" + "name": "Andrew Brown", + "email": "browner12@gmail.com", + "role": "Developer" + } + ], + "description": "generic helpers", + "homepage": "https://github.com/browner12/helpers", + "keywords": [ + "browner12", + "helpers" + ], + "support": { + "issues": "https://github.com/browner12/helpers/issues", + "source": "https://github.com/browner12/helpers/tree/v3.7.0" + }, + "time": "2025-03-20T15:49:03+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": "composer/ca-bundle", + "version": "1.5.8", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "719026bb30813accb68271fee7e39552a58e9f65" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/719026bb30813accb68271fee7e39552a58e9f65", + "reference": "719026bb30813accb68271fee7e39552a58e9f65", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8 || ^9", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" } ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", "keywords": [ - "semantic", - "semver", - "validation", - "versioning" + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" ], "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.5.8" }, "funding": [ { @@ -344,26 +270,22 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2023-08-31T09:50:34+00:00" + "time": "2025-08-20T18:49:47+00:00" }, { "name": "dflydev/dot-access-data", - "version": "v3.0.2", + "version": "v3.0.3", "source": { "type": "git", "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "f41715465d65213d644d3141a6a93081be5d3549" + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", - "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f", "shasum": "" }, "require": { @@ -423,39 +345,38 @@ ], "support": { "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3" }, - "time": "2022-10-27T11:44:00+00:00" + "time": "2024-07-08T12:26:09+00:00" }, { "name": "doctrine/inflector", - "version": "2.0.8", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff" + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b", "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" + "doctrine/coding-standard": "^12.0 || ^13.0", + "phpstan/phpstan": "^1.12 || ^2.0", + "phpstan/phpstan-phpunit": "^1.4 || ^2.0", + "phpstan/phpstan-strict-rules": "^1.6 || ^2.0", + "phpunit/phpunit": "^8.5 || ^12.2" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + "Doctrine\\Inflector\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -500,7 +421,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.8" + "source": "https://github.com/doctrine/inflector/tree/2.1.0" }, "funding": [ { @@ -516,31 +437,31 @@ "type": "tidelift" } ], - "time": "2023-06-16T13:40:37+00:00" + "time": "2025-08-10T19:31:58+00:00" }, { "name": "doctrine/lexer", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "84a527db05647743d50373e0ec53a152f2cde568" + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568", - "reference": "84a527db05647743d50373e0ec53a152f2cde568", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", "shasum": "" }, "require": { "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.9", - "phpunit/phpunit": "^9.5", + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^5.0" + "vimeo/psalm": "^5.21" }, "type": "library", "autoload": { @@ -577,7 +498,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/3.0.0" + "source": "https://github.com/doctrine/lexer/tree/3.0.1" }, "funding": [ { @@ -593,20 +514,20 @@ "type": "tidelift" } ], - "time": "2022-12-15T16:57:16+00:00" + "time": "2024-02-05T11:56:58+00:00" }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.3", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" + "reference": "8c784d071debd117328803d86b2097615b457500" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500", + "reference": "8c784d071debd117328803d86b2097615b457500", "shasum": "" }, "require": { @@ -619,10 +540,14 @@ "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", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, "autoload": { "psr-4": { "Cron\\": "src/Cron/" @@ -646,7 +571,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0" }, "funding": [ { @@ -654,20 +579,20 @@ "type": "github" } ], - "time": "2023-08-10T19:36:49+00:00" + "time": "2024-10-09T13:47:03+00:00" }, { "name": "egulias/email-validator", - "version": "4.0.2", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", "shasum": "" }, "require": { @@ -713,7 +638,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.4" }, "funding": [ { @@ -721,7 +646,7 @@ "type": "github" } ], - "time": "2023-10-06T06:47:41+00:00" + "time": "2025-03-06T22:45:56+00:00" }, { "name": "fruitcake/php-cors", @@ -796,24 +721,24 @@ }, { "name": "graham-campbell/result-type", - "version": "v1.1.2", + "version": "v1.1.3", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", - "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", + "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.2" + "phpoption/phpoption": "^1.9.3" }, "require-dev": { - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "autoload": { @@ -842,7 +767,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" }, "funding": [ { @@ -854,26 +779,26 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:16:48+00:00" + "time": "2024-07-20T21:45:45+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.8.0", + "version": "7.10.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9" + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1110f66a6530a40fe7aea0378fe608ee2b2248f9", - "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "guzzlehttp/promises": "^2.3", + "guzzlehttp/psr7": "^2.8", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -882,11 +807,11 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "guzzle/client-integration-tests": "3.0.2", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -964,7 +889,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.0" + "source": "https://github.com/guzzle/guzzle/tree/7.10.0" }, "funding": [ { @@ -980,28 +905,28 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:20:53+00:00" + "time": "2025-08-23T22:36:01+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.1", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "111166291a0f8130081195ac4556a5587d7f1b5d" + "reference": "481557b130ef3790cf82b713667b43030dc9c957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d", - "reference": "111166291a0f8130081195ac4556a5587d7f1b5d", + "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957", + "reference": "481557b130ef3790cf82b713667b43030dc9c957", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "type": "library", "extra": { @@ -1047,7 +972,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.1" + "source": "https://github.com/guzzle/promises/tree/2.3.0" }, "funding": [ { @@ -1063,20 +988,20 @@ "type": "tidelift" } ], - "time": "2023-08-03T15:11:55+00:00" + "time": "2025-08-22T14:34:08+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.1", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727" + "reference": "21dc724a0583619cd1652f673303492272778051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/be45764272e8873c72dbe3d2edcfdfcc3bc9f727", - "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", + "reference": "21dc724a0583619cd1652f673303492272778051", "shasum": "" }, "require": { @@ -1090,9 +1015,9 @@ "psr/http-message-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -1163,7 +1088,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.1" + "source": "https://github.com/guzzle/psr7/tree/2.8.0" }, "funding": [ { @@ -1179,32 +1104,38 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:13:57+00:00" + "time": "2025-08-23T21:21:41+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.2", + "version": "v1.0.5", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "61bf437fc2197f587f6857d3ff903a24f1731b5d" + "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/61bf437fc2197f587f6857d3ff903a24f1731b5d", - "reference": "61bf437fc2197f587f6857d3ff903a24f1731b5d", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/4f4bbd4e7172148801e76e3decc1e559bdee34e1", + "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "symfony/polyfill-php80": "^1.17" + "symfony/polyfill-php80": "^1.24" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "phpunit/phpunit": "^8.5.19 || ^9.5.8", + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25", "uri-template/tests": "1.0.0" }, "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, "autoload": { "psr-4": { "GuzzleHttp\\UriTemplate\\": "src" @@ -1243,7 +1174,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.2" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.5" }, "funding": [ { @@ -1259,24 +1190,168 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:19:19+00:00" + "time": "2025-08-22T14:27:06+00:00" }, { - "name": "laravel/framework", - "version": "v10.32.1", + "name": "intervention/gif", + "version": "4.2.2", "source": { "type": "git", - "url": "https://github.com/laravel/framework.git", - "reference": "b30e44f20d244f7ba125283e14a8bbac167f4e5b" + "url": "https://github.com/Intervention/gif.git", + "reference": "5999eac6a39aa760fb803bc809e8909ee67b451a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/b30e44f20d244f7ba125283e14a8bbac167f4e5b", - "reference": "b30e44f20d244f7ba125283e14a8bbac167f4e5b", + "url": "https://api.github.com/repos/Intervention/gif/zipball/5999eac6a39aa760fb803bc809e8909ee67b451a", + "reference": "5999eac6a39aa760fb803bc809e8909ee67b451a", "shasum": "" }, "require": { - "brick/math": "^0.9.3|^0.10.2|^0.11", + "php": "^8.1" + }, + "require-dev": { + "phpstan/phpstan": "^2.1", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", + "slevomat/coding-standard": "~8.0", + "squizlabs/php_codesniffer": "^3.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Intervention\\Gif\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@intervention.io", + "homepage": "https://intervention.io/" + } + ], + "description": "Native PHP GIF Encoder/Decoder", + "homepage": "https://github.com/intervention/gif", + "keywords": [ + "animation", + "gd", + "gif", + "image" + ], + "support": { + "issues": "https://github.com/Intervention/gif/issues", + "source": "https://github.com/Intervention/gif/tree/4.2.2" + }, + "funding": [ + { + "url": "https://paypal.me/interventionio", + "type": "custom" + }, + { + "url": "https://github.com/Intervention", + "type": "github" + }, + { + "url": "https://ko-fi.com/interventionphp", + "type": "ko_fi" + } + ], + "time": "2025-03-29T07:46:21+00:00" + }, + { + "name": "intervention/image", + "version": "3.11.4", + "source": { + "type": "git", + "url": "https://github.com/Intervention/image.git", + "reference": "8c49eb21a6d2572532d1bc425964264f3e496846" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Intervention/image/zipball/8c49eb21a6d2572532d1bc425964264f3e496846", + "reference": "8c49eb21a6d2572532d1bc425964264f3e496846", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "intervention/gif": "^4.2", + "php": "^8.1" + }, + "require-dev": { + "mockery/mockery": "^1.6", + "phpstan/phpstan": "^2.1", + "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", + "slevomat/coding-standard": "~8.0", + "squizlabs/php_codesniffer": "^3.8" + }, + "suggest": { + "ext-exif": "Recommended to be able to read EXIF data properly." + }, + "type": "library", + "autoload": { + "psr-4": { + "Intervention\\Image\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@intervention.io", + "homepage": "https://intervention.io/" + } + ], + "description": "PHP image manipulation", + "homepage": "https://image.intervention.io/", + "keywords": [ + "gd", + "image", + "imagick", + "resize", + "thumbnail", + "watermark" + ], + "support": { + "issues": "https://github.com/Intervention/image/issues", + "source": "https://github.com/Intervention/image/tree/3.11.4" + }, + "funding": [ + { + "url": "https://paypal.me/interventionio", + "type": "custom" + }, + { + "url": "https://github.com/Intervention", + "type": "github" + }, + { + "url": "https://ko-fi.com/interventionphp", + "type": "ko_fi" + } + ], + "time": "2025-07-30T13:13:19+00:00" + }, + { + "name": "laravel/framework", + "version": "v10.48.29", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "8f7f9247cb8aad1a769d6b9815a6623d89b46b47" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/8f7f9247cb8aad1a769d6b9815a6623d89b46b47", + "reference": "8f7f9247cb8aad1a769d6b9815a6623d89b46b47", + "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", @@ -1305,7 +1380,7 @@ "symfony/console": "^6.2", "symfony/error-handler": "^6.2", "symfony/finder": "^6.2", - "symfony/http-foundation": "^6.3", + "symfony/http-foundation": "^6.4", "symfony/http-kernel": "^6.2", "symfony/mailer": "^6.2", "symfony/mime": "^6.2", @@ -1318,6 +1393,10 @@ "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": { @@ -1373,9 +1452,9 @@ "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.5.1", "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "^8.15.1", + "orchestra/testbench-core": "^8.23.4", "pda/pheanstalk": "^4.0", - "phpstan/phpstan": "^1.4.7", + "phpstan/phpstan": "~1.11.11", "phpunit/phpunit": "^10.0.7", "predis/predis": "^2.0.2", "symfony/cache": "^6.2", @@ -1429,6 +1508,7 @@ "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" ], @@ -1461,20 +1541,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-11-14T22:57:08+00:00" + "time": "2025-03-12T14:42:01+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.13", + "version": "v0.1.25", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "e1379d8ead15edd6cc4369c22274345982edc95a" + "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/e1379d8ead15edd6cc4369c22274345982edc95a", - "reference": "e1379d8ead15edd6cc4369c22274345982edc95a", + "url": "https://api.github.com/repos/laravel/prompts/zipball/7b4029a84c37cb2725fc7f011586e2997040bc95", + "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95", "shasum": "" }, "require": { @@ -1490,7 +1570,7 @@ "require-dev": { "mockery/mockery": "^1.5", "pestphp/pest": "^2.3", - "phpstan/phpstan": "^1.10", + "phpstan/phpstan": "^1.11", "phpstan/phpstan-mockery": "^1.1" }, "suggest": { @@ -1514,100 +1594,36 @@ "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.13" + "source": "https://github.com/laravel/prompts/tree/v0.1.25" }, - "time": "2023-10-27T13:53:59+00:00" - }, - { - "name": "laravel/sanctum", - "version": "v3.3.2", - "source": { - "type": "git", - "url": "https://github.com/laravel/sanctum.git", - "reference": "e1a272893bec13cf135627f7e156030b3afe1e60" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/e1a272893bec13cf135627f7e156030b3afe1e60", - "reference": "e1a272893bec13cf135627f7e156030b3afe1e60", - "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-11-03T13:42:14+00:00" + "time": "2024-08-12T22:06:33+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.3.3", + "version": "v1.3.7", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" + "reference": "4f48ade902b94323ca3be7646db16209ec76be3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", - "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d", + "reference": "4f48ade902b94323ca3be7646db16209ec76be3d", "shasum": "" }, "require": { "php": "^7.3|^8.0" }, "require-dev": { - "nesbot/carbon": "^2.61", + "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" + "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0" }, "type": "library", "extra": { @@ -1644,43 +1660,40 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2023-11-08T14:08:06+00:00" + "time": "2024-11-14T18:34:49+00:00" }, { "name": "laravel/tinker", - "version": "v2.8.2", + "version": "v2.10.1", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3" + "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/b936d415b252b499e8c3b1f795cd4fc20f57e1f3", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3", + "url": "https://api.github.com/repos/laravel/tinker/zipball/22177cc71807d38f2810c6204d8f7183d88a57d3", + "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", "php": "^7.2.5|^8.0", - "psy/psysh": "^0.10.4|^0.11.1", - "symfony/var-dumper": "^4.3.4|^5.0|^6.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" + "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)." }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, "laravel": { "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" @@ -1711,22 +1724,22 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.8.2" + "source": "https://github.com/laravel/tinker/tree/v2.10.1" }, - "time": "2023-08-15T14:27:00+00:00" + "time": "2025-01-27T14:24:01+00:00" }, { "name": "league/commonmark", - "version": "2.4.1", + "version": "2.7.1", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5" + "reference": "10732241927d3971d28e7ea7b5712721fa2296ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/3669d6d5f7a47a93c08ddff335e6d945481a1dd5", - "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/10732241927d3971d28e7ea7b5712721fa2296ca", + "reference": "10732241927d3971d28e7ea7b5712721fa2296ca", "shasum": "" }, "require": { @@ -1739,8 +1752,8 @@ }, "require-dev": { "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.0", - "commonmark/commonmark.js": "0.30.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", @@ -1749,12 +1762,13 @@ "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "symfony/finder": "^5.3 | ^6.0 | ^7.0", + "symfony/process": "^5.4 | ^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" + "vimeo/psalm": "^4.24.0 || ^5.0.0 || ^6.0.0" }, "suggest": { "symfony/yaml": "v2.3+ required if using the Front Matter extension" @@ -1762,7 +1776,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "2.8-dev" } }, "autoload": { @@ -1819,7 +1833,7 @@ "type": "tidelift" } ], - "time": "2023-08-30T16:55:00+00:00" + "time": "2025-07-20T12:47:49+00:00" }, { "name": "league/config", @@ -1905,16 +1919,16 @@ }, { "name": "league/flysystem", - "version": "3.21.0", + "version": "3.30.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "a326d8a2d007e4ca327a57470846e34363789258" + "reference": "2203e3151755d874bb2943649dae1eb8533ac93e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a326d8a2d007e4ca327a57470846e34363789258", - "reference": "a326d8a2d007e4ca327a57470846e34363789258", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/2203e3151755d874bb2943649dae1eb8533ac93e", + "reference": "2203e3151755d874bb2943649dae1eb8533ac93e", "shasum": "" }, "require": { @@ -1934,18 +1948,21 @@ "require-dev": { "async-aws/s3": "^1.5 || ^2.0", "async-aws/simple-s3": "^1.1 || ^2.0", - "aws/aws-sdk-php": "^3.220.0", + "aws/aws-sdk-php": "^3.295.10", "composer/semver": "^3.0", "ext-fileinfo": "*", "ext-ftp": "*", + "ext-mongodb": "^1.3|^2", "ext-zip": "*", "friendsofphp/php-cs-fixer": "^3.5", "google/cloud-storage": "^1.23", + "guzzlehttp/psr7": "^2.6", "microsoft/azure-storage-blob": "^1.1", - "phpseclib/phpseclib": "^3.0.14", + "mongodb/mongodb": "^1.2|^2", + "phpseclib/phpseclib": "^3.0.36", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^9.5.11|^10.0", - "sabre/dav": "^4.3.1" + "sabre/dav": "^4.6.0" }, "type": "library", "autoload": { @@ -1979,32 +1996,22 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.21.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.30.0" }, - "funding": [ - { - "url": "https://ecologi.com/frankdejonge", - "type": "custom" - }, - { - "url": "https://github.com/frankdejonge", - "type": "github" - } - ], - "time": "2023-11-18T13:59:15+00:00" + "time": "2025-06-25T13:29:59+00:00" }, { "name": "league/flysystem-local", - "version": "3.21.0", + "version": "3.30.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "470eb1c09eaabd49ebd908ae06f23983ba3ecfe7" + "reference": "6691915f77c7fb69adfb87dcd550052dc184ee10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/470eb1c09eaabd49ebd908ae06f23983ba3ecfe7", - "reference": "470eb1c09eaabd49ebd908ae06f23983ba3ecfe7", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/6691915f77c7fb69adfb87dcd550052dc184ee10", + "reference": "6691915f77c7fb69adfb87dcd550052dc184ee10", "shasum": "" }, "require": { @@ -2038,33 +2045,22 @@ "local" ], "support": { - "issues": "https://github.com/thephpleague/flysystem-local/issues", - "source": "https://github.com/thephpleague/flysystem-local/tree/3.21.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.30.0" }, - "funding": [ - { - "url": "https://ecologi.com/frankdejonge", - "type": "custom" - }, - { - "url": "https://github.com/frankdejonge", - "type": "github" - } - ], - "time": "2023-11-18T13:41:42+00:00" + "time": "2025-05-21T10:34:19+00:00" }, { "name": "league/mime-type-detection", - "version": "1.14.0", + "version": "1.16.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "b6a5854368533df0295c5761a0253656a2e52d9e" + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e", - "reference": "b6a5854368533df0295c5761a0253656a2e52d9e", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9", + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9", "shasum": "" }, "require": { @@ -2095,7 +2091,7 @@ "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.14.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0" }, "funding": [ { @@ -2107,20 +2103,20 @@ "type": "tidelift" } ], - "time": "2023-10-17T14:13:20+00:00" + "time": "2024-09-21T08:32:55+00:00" }, { "name": "monolog/monolog", - "version": "3.5.0", + "version": "3.9.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", - "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/10d85740180ecba7896c87e06a166e0c95a0e3b6", + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6", "shasum": "" }, "require": { @@ -2140,12 +2136,14 @@ "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.1", + "php-console/php-console": "^3.1.8", + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^10.5.17 || ^11.0.7", "predis/predis": "^1.1 || ^2", - "ruflin/elastica": "^7", + "rollbar/rollbar": "^4.0", + "ruflin/elastica": "^7 || ^8", "symfony/mailer": "^5.4 || ^6", "symfony/mime": "^5.4 || ^6" }, @@ -2196,7 +2194,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.5.0" + "source": "https://github.com/Seldaek/monolog/tree/3.9.0" }, "funding": [ { @@ -2208,23 +2206,24 @@ "type": "tidelift" } ], - "time": "2023-10-27T15:32:31+00:00" + "time": "2025-03-24T10:02:05+00:00" }, { "name": "nesbot/carbon", - "version": "2.71.0", + "version": "2.73.0", "source": { "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "98276233188583f2ff845a0f992a235472d9466a" + "url": "https://github.com/CarbonPHP/carbon.git", + "reference": "9228ce90e1035ff2f0db84b40ec2e023ed802075" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/98276233188583f2ff845a0f992a235472d9466a", - "reference": "98276233188583f2ff845a0f992a235472d9466a", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/9228ce90e1035ff2f0db84b40ec2e023ed802075", + "reference": "9228ce90e1035ff2f0db84b40ec2e023ed802075", "shasum": "" }, "require": { + "carbonphp/carbon-doctrine-types": "*", "ext-json": "*", "php": "^7.1.8 || ^8.0", "psr/clock": "^1.0", @@ -2236,11 +2235,11 @@ "psr/clock-implementation": "1.0" }, "require-dev": { - "doctrine/dbal": "^2.0 || ^3.1.4", - "doctrine/orm": "^2.7", + "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": "*", + "ondrejmirtes/better-reflection": "<6", "phpmd/phpmd": "^2.9", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^0.12.99 || ^1.7.14", @@ -2253,10 +2252,6 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-3.x": "3.x-dev", - "dev-master": "2.x-dev" - }, "laravel": { "providers": [ "Carbon\\Laravel\\ServiceProvider" @@ -2266,6 +2261,10 @@ "includes": [ "extension.neon" ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev", + "dev-master": "3.x-dev" } }, "autoload": { @@ -2314,35 +2313,35 @@ "type": "tidelift" } ], - "time": "2023-09-25T11:31:05+00:00" + "time": "2025-01-08T20:10:23+00:00" }, { "name": "nette/schema", - "version": "v1.2.5", + "version": "v1.3.2", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a" + "reference": "da801d52f0354f70a638673c4a0f04e16529431d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a", + "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", + "reference": "da801d52f0354f70a638673c4a0f04e16529431d", "shasum": "" }, "require": { - "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": "7.1 - 8.3" + "nette/utils": "^4.0", + "php": "8.1 - 8.4" }, "require-dev": { - "nette/tester": "^2.3 || ^2.4", + "nette/tester": "^2.5.2", "phpstan/phpstan-nette": "^1.0", - "tracy/tracy": "^2.7" + "tracy/tracy": "^2.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -2374,35 +2373,35 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.5" + "source": "https://github.com/nette/schema/tree/v1.3.2" }, - "time": "2023-10-05T20:37:59+00:00" + "time": "2024-10-06T23:10:23+00:00" }, { "name": "nette/utils", - "version": "v4.0.3", + "version": "v4.0.8", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015" + "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015", - "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015", + "url": "https://api.github.com/repos/nette/utils/zipball/c930ca4e3cf4f17dcfb03037703679d2396d2ede", + "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede", "shasum": "" }, "require": { - "php": ">=8.0 <8.4" + "php": "8.0 - 8.5" }, "conflict": { "nette/finder": "<3", "nette/schema": "<1.2.2" }, "require-dev": { - "jetbrains/phpstorm-attributes": "dev-master", + "jetbrains/phpstorm-attributes": "^1.2", "nette/tester": "^2.5", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.9" }, "suggest": { @@ -2420,6 +2419,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -2460,31 +2462,33 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.3" + "source": "https://github.com/nette/utils/tree/v4.0.8" }, - "time": "2023-10-29T21:02:13+00:00" + "time": "2025-08-06T21:43:34+00:00" }, { "name": "nikic/php-parser", - "version": "v4.17.1", + "version": "v5.6.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2", + "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -2492,7 +2496,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.x-dev" } }, "autoload": { @@ -2516,39 +2520,38 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.1" }, - "time": "2023-08-13T19:53:39+00:00" + "time": "2025-08-13T20:13:15+00:00" }, { "name": "nunomaduro/termwind", - "version": "v1.15.1", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc" + "reference": "5369ef84d8142c1d87e4ec278711d4ece3cbf301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc", - "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/5369ef84d8142c1d87e4ec278711d4ece3cbf301", + "reference": "5369ef84d8142c1d87e4ec278711d4ece3cbf301", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "^8.0", - "symfony/console": "^5.3.0|^6.0.0" + "php": "^8.1", + "symfony/console": "^6.4.15" }, "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", + "illuminate/console": "^10.48.24", + "illuminate/support": "^10.48.24", + "laravel/pint": "^1.18.2", + "pestphp/pest": "^2.36.0", + "pestphp/pest-plugin-mock": "2.0.0", + "phpstan/phpstan": "^1.12.11", + "phpstan/phpstan-strict-rules": "^1.6.1", + "symfony/var-dumper": "^6.4.15", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -2588,7 +2591,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1" + "source": "https://github.com/nunomaduro/termwind/tree/v1.17.0" }, "funding": [ { @@ -2604,154 +2607,20 @@ "type": "github" } ], - "time": "2023-02-08T01:06:31+00:00" - }, - { - "name": "php-http/discovery", - "version": "1.19.1", - "source": { - "type": "git", - "url": "https://github.com/php-http/discovery.git", - "reference": "57f3de01d32085fea20865f9b16fb0e69347c39e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/discovery/zipball/57f3de01d32085fea20865f9b16fb0e69347c39e", - "reference": "57f3de01d32085fea20865f9b16fb0e69347c39e", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "nyholm/psr7": "<1.0", - "zendframework/zend-diactoros": "*" - }, - "provide": { - "php-http/async-client-implementation": "*", - "php-http/client-implementation": "*", - "psr/http-client-implementation": "*", - "psr/http-factory-implementation": "*", - "psr/http-message-implementation": "*" - }, - "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "graham-campbell/phpspec-skip-example-extension": "^5.0", - "php-http/httplug": "^1.0 || ^2.0", - "php-http/message-factory": "^1.0", - "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", - "symfony/phpunit-bridge": "^6.2" - }, - "type": "composer-plugin", - "extra": { - "class": "Http\\Discovery\\Composer\\Plugin", - "plugin-optional": true - }, - "autoload": { - "psr-4": { - "Http\\Discovery\\": "src/" - }, - "exclude-from-classmap": [ - "src/Composer/Plugin.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations", - "homepage": "http://php-http.org", - "keywords": [ - "adapter", - "client", - "discovery", - "factory", - "http", - "message", - "psr17", - "psr7" - ], - "support": { - "issues": "https://github.com/php-http/discovery/issues", - "source": "https://github.com/php-http/discovery/tree/1.19.1" - }, - "time": "2023-07-11T07:02:26+00:00" - }, - { - "name": "php-http/multipart-stream-builder", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/php-http/multipart-stream-builder.git", - "reference": "f5938fd135d9fa442cc297dc98481805acfe2b6a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/f5938fd135d9fa442cc297dc98481805acfe2b6a", - "reference": "f5938fd135d9fa442cc297dc98481805acfe2b6a", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0", - "php-http/discovery": "^1.15", - "psr/http-factory-implementation": "^1.0" - }, - "require-dev": { - "nyholm/psr7": "^1.0", - "php-http/message": "^1.5", - "php-http/message-factory": "^1.0.2", - "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Http\\Message\\MultipartStream\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com" - } - ], - "description": "A builder class that help you create a multipart stream", - "homepage": "http://php-http.org", - "keywords": [ - "factory", - "http", - "message", - "multipart stream", - "stream" - ], - "support": { - "issues": "https://github.com/php-http/multipart-stream-builder/issues", - "source": "https://github.com/php-http/multipart-stream-builder/tree/1.3.0" - }, - "time": "2023-04-28T14:10:22+00:00" + "time": "2024-11-21T10:36:35+00:00" }, { "name": "phpoption/phpoption", - "version": "1.9.2", + "version": "1.9.4", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" + "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", - "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", + "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", "shasum": "" }, "require": { @@ -2759,13 +2628,13 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + "phpunit/phpunit": "^8.5.44 || ^9.6.25 || ^10.5.53 || ^11.5.34" }, "type": "library", "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "1.9-dev" @@ -2801,7 +2670,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.4" }, "funding": [ { @@ -2813,653 +2682,7 @@ "type": "tidelift" } ], - "time": "2023-11-12T21:59:55+00:00" - }, - { - "name": "psr-discovery/all", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/psr-discovery/all.git", - "reference": "73deceb26d3190f53a5cd3b95751c6a223804a8b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/psr-discovery/all/zipball/73deceb26d3190f53a5cd3b95751c6a223804a8b", - "reference": "73deceb26d3190f53a5cd3b95751c6a223804a8b", - "shasum": "" - }, - "require": { - "php": "^8.0", - "psr-discovery/cache-implementations": "^1.0", - "psr-discovery/container-implementations": "^1.0", - "psr-discovery/event-dispatcher-implementations": "^1.0", - "psr-discovery/http-client-implementations": "^1.0", - "psr-discovery/http-factory-implementations": "^1.0", - "psr-discovery/log-implementations": "^1.0" - }, - "type": "metapackage", - "extra": { - "merge-plugin": { - "ignore-duplicates": false, - "include": [ - "composer.local.json" - ], - "merge-dev": true, - "merge-extra": false, - "merge-extra-deep": false, - "merge-scripts": false, - "recurse": true, - "replace": true - } - }, - "autoload": { - "psr-4": { - "PsrDiscovery\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Evan Sims", - "email": "hello@evansims.com", - "homepage": "https://evansims.com/" - } - ], - "description": "Lightweight library that discovers available PSR implementations by searching for a list of well-known classes that implement the relevant interface, and returns an instance of the first one that is found.", - "homepage": "https://github.com/psr-discovery", - "keywords": [ - "PSR-11", - "discovery", - "psr", - "psr-14", - "psr-17", - "psr-18", - "psr-3", - "psr-6" - ], - "support": { - "source": "https://github.com/psr-discovery/all/tree/1.0.0" - }, - "time": "2023-03-27T16:37:46+00:00" - }, - { - "name": "psr-discovery/cache-implementations", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/psr-discovery/cache-implementations.git", - "reference": "33b63d8e324f4aff296508b592bbd4d71b45da68" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/psr-discovery/cache-implementations/zipball/33b63d8e324f4aff296508b592bbd4d71b45da68", - "reference": "33b63d8e324f4aff296508b592bbd4d71b45da68", - "shasum": "" - }, - "require": { - "php": "^8.0", - "psr-discovery/discovery": "^1.0", - "psr/cache": "^1.0 | ^2.0 | ^3.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.14", - "infection/infection": "^0.26", - "mockery/mockery": "^1.5", - "pestphp/pest": "^2.0", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-strict-rules": "^1.5", - "rector/rector": "^0.15", - "vimeo/psalm": "^5.8", - "wikimedia/composer-merge-plugin": "^2.0" - }, - "type": "library", - "extra": { - "merge-plugin": { - "ignore-duplicates": false, - "include": [ - "composer.local.json" - ], - "merge-dev": true, - "merge-extra": false, - "merge-extra-deep": false, - "merge-scripts": false, - "recurse": true, - "replace": true - } - }, - "autoload": { - "psr-4": { - "PsrDiscovery\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Evan Sims", - "email": "hello@evansims.com", - "homepage": "https://evansims.com/" - } - ], - "description": "Lightweight library that discovers available PSR-6 Cache implementations by searching for a list of well-known classes that implement the relevant interface, and returns an instance of the first one that is found.", - "homepage": "https://github.com/psr-discovery", - "keywords": [ - "cache", - "cache-implementation", - "discovery", - "psr", - "psr-6" - ], - "support": { - "issues": "https://github.com/psr-discovery/cache-implementations/issues", - "source": "https://github.com/psr-discovery/cache-implementations/tree/1.0.0" - }, - "time": "2023-03-27T06:19:44+00:00" - }, - { - "name": "psr-discovery/container-implementations", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/psr-discovery/container-implementations.git", - "reference": "366612e9260f247d8b8ee279094a33dd4cbc6886" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/psr-discovery/container-implementations/zipball/366612e9260f247d8b8ee279094a33dd4cbc6886", - "reference": "366612e9260f247d8b8ee279094a33dd4cbc6886", - "shasum": "" - }, - "require": { - "php": "^8.0", - "psr-discovery/discovery": "^1.0", - "psr/container": "^1.0 | ^2.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.14", - "infection/infection": "^0.26", - "mockery/mockery": "^1.5", - "pestphp/pest": "^2.0", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-strict-rules": "^1.5", - "rector/rector": "^0.15", - "vimeo/psalm": "^5.8", - "wikimedia/composer-merge-plugin": "^2.0" - }, - "type": "library", - "extra": { - "merge-plugin": { - "ignore-duplicates": false, - "include": [ - "composer.local.json" - ], - "merge-dev": true, - "merge-extra": false, - "merge-extra-deep": false, - "merge-scripts": false, - "recurse": true, - "replace": true - } - }, - "autoload": { - "psr-4": { - "PsrDiscovery\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Evan Sims", - "email": "hello@evansims.com", - "homepage": "https://evansims.com/" - } - ], - "description": "Lightweight library that discovers available PSR-11 Container implementations by searching for a list of well-known classes that implement the relevant interface, and returns an instance of the first one that is found.", - "homepage": "https://github.com/psr-discovery/http-client-implementations", - "keywords": [ - "PSR-11", - "discovery", - "psr" - ], - "support": { - "issues": "https://github.com/psr-discovery/container-implementations/issues", - "source": "https://github.com/psr-discovery/container-implementations/tree/1.0.0" - }, - "time": "2023-03-27T06:18:27+00:00" - }, - { - "name": "psr-discovery/discovery", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/psr-discovery/discovery.git", - "reference": "83e746a138705d56f8e3dc102e28c79f32ae9b54" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/psr-discovery/discovery/zipball/83e746a138705d56f8e3dc102e28c79f32ae9b54", - "reference": "83e746a138705d56f8e3dc102e28c79f32ae9b54", - "shasum": "" - }, - "require": { - "composer/semver": "^3.0", - "php": "^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.14", - "infection/infection": "^0.26", - "mockery/mockery": "^1.5", - "pestphp/pest": "^2.0", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-strict-rules": "^1.5", - "rector/rector": "^0.15", - "vimeo/psalm": "^5.8", - "wikimedia/composer-merge-plugin": "^2.0" - }, - "type": "library", - "extra": { - "merge-plugin": { - "ignore-duplicates": false, - "include": [ - "composer.local.json" - ], - "merge-dev": true, - "merge-extra": false, - "merge-extra-deep": false, - "merge-scripts": false, - "recurse": true, - "replace": true - } - }, - "autoload": { - "psr-4": { - "PsrDiscovery\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Evan Sims", - "email": "hello@evansims.com", - "homepage": "https://evansims.com/" - } - ], - "description": "Lightweight library that discovers available PSR implementations by searching for a list of well-known classes that implement the relevant interfaces, and returning an instance of the first one that is found.", - "homepage": "https://github.com/psr-discovery/discovery", - "keywords": [ - "PSR-11", - "discovery", - "psr", - "psr-14", - "psr-17", - "psr-18", - "psr-3", - "psr-6" - ], - "support": { - "issues": "https://github.com/psr-discovery/discovery/issues", - "source": "https://github.com/psr-discovery/discovery/tree/1.0.2" - }, - "time": "2023-03-27T19:49:39+00:00" - }, - { - "name": "psr-discovery/event-dispatcher-implementations", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/psr-discovery/event-dispatcher-implementations.git", - "reference": "903d05afe29bd1a17c18924004d282d28bda1759" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/psr-discovery/event-dispatcher-implementations/zipball/903d05afe29bd1a17c18924004d282d28bda1759", - "reference": "903d05afe29bd1a17c18924004d282d28bda1759", - "shasum": "" - }, - "require": { - "php": "^8.0", - "psr-discovery/discovery": "^1.0", - "psr/event-dispatcher": "^1.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.14", - "infection/infection": "^0.26", - "mockery/mockery": "^1.5", - "pestphp/pest": "^2.0", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-strict-rules": "^1.5", - "rector/rector": "^0.15", - "vimeo/psalm": "^5.8", - "wikimedia/composer-merge-plugin": "^2.0" - }, - "type": "library", - "extra": { - "merge-plugin": { - "ignore-duplicates": false, - "include": [ - "composer.local.json" - ], - "merge-dev": true, - "merge-extra": false, - "merge-extra-deep": false, - "merge-scripts": false, - "recurse": true, - "replace": true - } - }, - "autoload": { - "psr-4": { - "PsrDiscovery\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Evan Sims", - "email": "hello@evansims.com", - "homepage": "https://evansims.com/" - } - ], - "description": "Lightweight library that discovers available PSR-14 Event Dispatcher implementations by searching for a list of well-known classes that implement the relevant interface, and returns an instance of the first one that is found.", - "homepage": "https://github.com/psr-discovery/http-client-implementations", - "keywords": [ - "discovery", - "psr", - "psr-18" - ], - "support": { - "issues": "https://github.com/psr-discovery/event-dispatcher-implementations/issues", - "source": "https://github.com/psr-discovery/event-dispatcher-implementations/tree/1.0.0" - }, - "time": "2023-03-27T06:17:31+00:00" - }, - { - "name": "psr-discovery/http-client-implementations", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/psr-discovery/http-client-implementations.git", - "reference": "ca0cbc370789a3fd0f6aa3e7c4f4e5c123eadef3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/psr-discovery/http-client-implementations/zipball/ca0cbc370789a3fd0f6aa3e7c4f4e5c123eadef3", - "reference": "ca0cbc370789a3fd0f6aa3e7c4f4e5c123eadef3", - "shasum": "" - }, - "require": { - "php": "^8.0", - "psr-discovery/discovery": "^1.0", - "psr/http-client": "^1.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.14", - "infection/infection": "^0.26", - "mockery/mockery": "^1.5", - "pestphp/pest": "^2.0", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-strict-rules": "^1.5", - "rector/rector": "^0.15", - "vimeo/psalm": "^5.8", - "wikimedia/composer-merge-plugin": "^2.0" - }, - "type": "library", - "extra": { - "merge-plugin": { - "ignore-duplicates": false, - "include": [ - "composer.local.json" - ], - "merge-dev": true, - "merge-extra": false, - "merge-extra-deep": false, - "merge-scripts": false, - "recurse": true, - "replace": true - } - }, - "autoload": { - "psr-4": { - "PsrDiscovery\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Evan Sims", - "email": "hello@evansims.com", - "homepage": "https://evansims.com/" - } - ], - "description": "Lightweight library that discovers available PSR-18 HTTP Client implementations by searching for a list of well-known classes that implement the relevant interface, and returns an instance of the first one that is found.", - "homepage": "https://github.com/psr-discovery/http-client-implementations", - "keywords": [ - "discovery", - "psr", - "psr-18" - ], - "support": { - "issues": "https://github.com/psr-discovery/http-client-implementations/issues", - "source": "https://github.com/psr-discovery/http-client-implementations/tree/1.0.0" - }, - "time": "2023-03-27T06:16:24+00:00" - }, - { - "name": "psr-discovery/http-factory-implementations", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/psr-discovery/http-factory-implementations.git", - "reference": "064bb0ec6d2e49aeb6f15aa5a8793abe02daf56b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/psr-discovery/http-factory-implementations/zipball/064bb0ec6d2e49aeb6f15aa5a8793abe02daf56b", - "reference": "064bb0ec6d2e49aeb6f15aa5a8793abe02daf56b", - "shasum": "" - }, - "require": { - "php": "^8.0", - "psr-discovery/discovery": "^1.0", - "psr/http-factory": "^1.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.14", - "infection/infection": "^0.26", - "mockery/mockery": "^1.5", - "pestphp/pest": "^2.0", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-strict-rules": "^1.5", - "rector/rector": "^0.15", - "vimeo/psalm": "^5.8", - "wikimedia/composer-merge-plugin": "^2.0" - }, - "type": "library", - "extra": { - "merge-plugin": { - "ignore-duplicates": false, - "include": [ - "composer.local.json" - ], - "merge-dev": true, - "merge-extra": false, - "merge-extra-deep": false, - "merge-scripts": false, - "recurse": true, - "replace": true - } - }, - "autoload": { - "psr-4": { - "PsrDiscovery\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Evan Sims", - "email": "hello@evansims.com", - "homepage": "https://evansims.com/" - } - ], - "description": "Lightweight library that discovers available PSR-17 HTTP Factory implementations by searching for a list of well-known classes that implement the relevant interface, and returns an instance of the first one that is found.", - "homepage": "https://github.com/psr-discovery/http-factory-implementations", - "keywords": [ - "discovery", - "psr", - "psr-18" - ], - "support": { - "issues": "https://github.com/psr-discovery/http-factory-implementations/issues", - "source": "https://github.com/psr-discovery/http-factory-implementations/tree/1.0.1" - }, - "time": "2023-04-26T06:22:45+00:00" - }, - { - "name": "psr-discovery/log-implementations", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/psr-discovery/log-implementations.git", - "reference": "7be7af9bb1bf41a4985356b16cc654e0227eed38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/psr-discovery/log-implementations/zipball/7be7af9bb1bf41a4985356b16cc654e0227eed38", - "reference": "7be7af9bb1bf41a4985356b16cc654e0227eed38", - "shasum": "" - }, - "require": { - "php": "^8.0", - "psr-discovery/discovery": "^1.0", - "psr/log": "^1.0 | ^2.0 | ^3.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.14", - "infection/infection": "^0.26", - "mockery/mockery": "^1.5", - "pestphp/pest": "^2.0", - "phpstan/phpstan": "^1.10", - "phpstan/phpstan-strict-rules": "^1.5", - "rector/rector": "^0.15", - "vimeo/psalm": "^5.8", - "wikimedia/composer-merge-plugin": "^2.0" - }, - "type": "library", - "extra": { - "merge-plugin": { - "ignore-duplicates": false, - "include": [ - "composer.local.json" - ], - "merge-dev": true, - "merge-extra": false, - "merge-extra-deep": false, - "merge-scripts": false, - "recurse": true, - "replace": true - } - }, - "autoload": { - "psr-4": { - "PsrDiscovery\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Evan Sims", - "email": "hello@evansims.com", - "homepage": "https://evansims.com/" - } - ], - "description": "Lightweight library that discovers available PSR-3 Log implementations by searching for a list of well-known classes that implement the relevant interface, and returns an instance of the first one that is found.", - "homepage": "https://github.com/psr-discovery", - "keywords": [ - "discovery", - "log", - "log-implementation", - "psr", - "psr-3" - ], - "support": { - "issues": "https://github.com/psr-discovery/log-implementations/issues", - "source": "https://github.com/psr-discovery/log-implementations/tree/1.0.0" - }, - "time": "2023-03-27T06:14:11+00:00" - }, - { - "name": "psr/cache", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/3.0.0" - }, - "time": "2021-02-03T23:26:27+00:00" + "time": "2025-08-21T11:53:16+00:00" }, { "name": "psr/clock", @@ -3666,20 +2889,20 @@ }, { "name": "psr/http-factory", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.0.0", + "php": ">=7.1", "psr/http-message": "^1.0 || ^2.0" }, "type": "library", @@ -3703,7 +2926,7 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "factory", "http", @@ -3715,9 +2938,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2023-04-10T20:10:41+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { "name": "psr/http-message", @@ -3774,16 +2997,16 @@ }, { "name": "psr/log", - "version": "3.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -3818,9 +3041,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2021-07-14T16:46:02+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "psr/simple-cache", @@ -3875,25 +3098,25 @@ }, { "name": "psy/psysh", - "version": "v0.11.22", + "version": "v0.12.10", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b" + "reference": "6e80abe6f2257121f1eb9a4c55bf29d921025b22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b", - "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/6e80abe6f2257121f1eb9a4c55bf29d921025b22", + "reference": "6e80abe6f2257121f1eb9a4c55bf29d921025b22", "shasum": "" }, "require": { "ext-json": "*", "ext-tokenizer": "*", - "nikic/php-parser": "^4.0 || ^3.1", - "php": "^8.0 || ^7.0.8", - "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" + "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" @@ -3904,20 +3127,19 @@ "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.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, "bin": [ "bin/psysh" ], "type": "library", "extra": { - "branch-alias": { - "dev-0.11": "0.11.x-dev" - }, "bamarni-bin": { "bin-links": false, "forward-command": false + }, + "branch-alias": { + "dev-main": "0.12.x-dev" } }, "autoload": { @@ -3935,12 +3157,11 @@ "authors": [ { "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" + "email": "justin@justinhileman.info" } ], "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", + "homepage": "https://psysh.org", "keywords": [ "REPL", "console", @@ -3949,9 +3170,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.22" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.10" }, - "time": "2023-10-14T21:56:36+00:00" + "time": "2025-08-04T12:39:37+00:00" }, { "name": "ralouphie/getallheaders", @@ -3999,16 +3220,16 @@ }, { "name": "ramsey/collection", - "version": "2.0.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", - "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2", "shasum": "" }, "require": { @@ -4016,25 +3237,22 @@ }, "require-dev": { "captainhook/plugin-composer": "^5.3", - "ergebnis/composer-normalize": "^2.28.3", - "fakerphp/faker": "^1.21", + "ergebnis/composer-normalize": "^2.45", + "fakerphp/faker": "^1.24", "hamcrest/hamcrest-php": "^2.0", - "jangregor/phpstan-prophecy": "^1.0", - "mockery/mockery": "^1.5", + "jangregor/phpstan-prophecy": "^2.1", + "mockery/mockery": "^1.6", "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" + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpspec/prophecy-phpunit": "^2.3", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5", + "ramsey/coding-standard": "^2.3", + "ramsey/conventional-commits": "^1.6", + "roave/security-advisories": "dev-latest" }, "type": "library", "extra": { @@ -4072,37 +3290,26 @@ ], "support": { "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/2.0.0" + "source": "https://github.com/ramsey/collection/tree/2.1.1" }, - "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" + "time": "2025-03-22T05:38:12+00:00" }, { "name": "ramsey/uuid", - "version": "4.7.5", + "version": "4.9.0", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e" + "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", - "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/4e0e23cc785f0724a0e838279a9eb03f28b092a0", + "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11", - "ext-json": "*", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -4110,26 +3317,23 @@ "rhumsaa/uuid": "self.version" }, "require-dev": { - "captainhook/captainhook": "^5.10", + "captainhook/captainhook": "^5.25", "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", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "ergebnis/composer-normalize": "^2.47", + "mockery/mockery": "^1.6", "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" + "php-mock/php-mock": "^2.6", + "php-mock/php-mock-mockery": "^1.5", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpbench/phpbench": "^1.2.14", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^9.6", + "slevomat/coding-standard": "^8.18", + "squizlabs/php_codesniffer": "^3.13" }, "suggest": { "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", @@ -4164,19 +3368,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.7.5" + "source": "https://github.com/ramsey/uuid/tree/4.9.0" }, - "funding": [ - { - "url": "https://github.com/ramsey", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", - "type": "tidelift" - } - ], - "time": "2023-11-08T05:53:05+00:00" + "time": "2025-06-25T14:20:11+00:00" }, { "name": "scrivo/highlight.php", @@ -4258,36 +3452,36 @@ }, { "name": "spatie/laravel-honeypot", - "version": "4.3.4", + "version": "4.6.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-honeypot.git", - "reference": "a888d2d7a7c841c4f0578b4f41c5d714e34c51fb" + "reference": "38d164f14939e943b92771859fc206c74cba8397" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-honeypot/zipball/a888d2d7a7c841c4f0578b4f41c5d714e34c51fb", - "reference": "a888d2d7a7c841c4f0578b4f41c5d714e34c51fb", + "url": "https://api.github.com/repos/spatie/laravel-honeypot/zipball/38d164f14939e943b92771859fc206c74cba8397", + "reference": "38d164f14939e943b92771859fc206c74cba8397", "shasum": "" }, "require": { - "illuminate/contracts": "^8.0|^9.0|^10.0", - "illuminate/encryption": "^8.0|^9.0|^10.0", - "illuminate/http": "^8.0|^9.0|^10.0", - "illuminate/support": "^8.0|^9.0|^10.0", - "illuminate/validation": "^8.0|^9.0|^10.0", - "nesbot/carbon": "^2.0", + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/encryption": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/http": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/validation": "^8.0|^9.0|^10.0|^11.0|^12.0", + "nesbot/carbon": "^2.0|^3.0", "php": "^8.0", "spatie/laravel-package-tools": "^1.9", - "symfony/http-foundation": "^5.1.2|^6.0" + "symfony/http-foundation": "^5.1.2|^6.0|^7.0" }, "require-dev": { - "livewire/livewire": "^2.10", - "orchestra/testbench": "^6.23|^7.0|^8.0", - "pestphp/pest-plugin-livewire": "^1.0", - "phpunit/phpunit": "^9.4", - "spatie/pest-plugin-snapshots": "^1.1", - "spatie/phpunit-snapshot-assertions": "^4.2", + "livewire/livewire": "^2.10|^3.0", + "orchestra/testbench": "^6.23|^7.0|^8.0|^9.0|^10.0", + "pestphp/pest-plugin-livewire": "^1.0|^2.1|^3.0", + "phpunit/phpunit": "^9.6|^10.5|^11.5", + "spatie/pest-plugin-snapshots": "^1.1|^2.1", + "spatie/phpunit-snapshot-assertions": "^4.2|^5.1", "spatie/test-time": "^1.2.1" }, "type": "library", @@ -4322,7 +3516,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-honeypot/tree/4.3.4" + "source": "https://github.com/spatie/laravel-honeypot/tree/4.6.1" }, "funding": [ { @@ -4330,32 +3524,111 @@ "type": "custom" } ], - "time": "2023-07-19T19:23:12+00:00" + "time": "2025-05-05T13:50:37+00:00" }, { - "name": "spatie/laravel-package-tools", - "version": "1.16.1", + "name": "spatie/laravel-html", + "version": "3.12.0", "source": { "type": "git", - "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "cc7c991555a37f9fa6b814aa03af73f88026a83d" + "url": "https://github.com/spatie/laravel-html.git", + "reference": "3655f335609d853f51e431698179ddfe05851126" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/cc7c991555a37f9fa6b814aa03af73f88026a83d", - "reference": "cc7c991555a37f9fa6b814aa03af73f88026a83d", + "url": "https://api.github.com/repos/spatie/laravel-html/zipball/3655f335609d853f51e431698179ddfe05851126", + "reference": "3655f335609d853f51e431698179ddfe05851126", "shasum": "" }, "require": { - "illuminate/contracts": "^9.28|^10.0", + "illuminate/http": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0", + "php": "^8.2" + }, + "require-dev": { + "mockery/mockery": "^1.3", + "orchestra/testbench": "^8.0|^9.0|^10.0", + "pestphp/pest": "^2.34|^3.7" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "Html": "Spatie\\Html\\Facades\\Html" + }, + "providers": [ + "Spatie\\Html\\HtmlServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\Html\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + }, + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A fluent html builder", + "homepage": "https://github.com/spatie/laravel-html", + "keywords": [ + "html", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/laravel-html/tree/3.12.0" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + } + ], + "time": "2025-03-21T08:58:06+00:00" + }, + { + "name": "spatie/laravel-package-tools", + "version": "1.92.7", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "f09a799850b1ed765103a4f0b4355006360c49a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/f09a799850b1ed765103a4f0b4355006360c49a5", + "reference": "f09a799850b1ed765103a4f0b4355006360c49a5", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28|^10.0|^11.0|^12.0", "php": "^8.0" }, "require-dev": { "mockery/mockery": "^1.5", - "orchestra/testbench": "^7.7|^8.0", - "pestphp/pest": "^1.22", - "phpunit/phpunit": "^9.5.24", - "spatie/pest-plugin-test-time": "^1.1" + "orchestra/testbench": "^7.7|^8.0|^9.0|^10.0", + "pestphp/pest": "^1.23|^2.1|^3.1", + "phpunit/php-code-coverage": "^9.0|^10.0|^11.0", + "phpunit/phpunit": "^9.5.24|^10.5|^11.5", + "spatie/pest-plugin-test-time": "^1.1|^2.2" }, "type": "library", "autoload": { @@ -4382,7 +3655,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.1" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.92.7" }, "funding": [ { @@ -4390,20 +3663,20 @@ "type": "github" } ], - "time": "2023-08-23T09:04:39+00:00" + "time": "2025-07-17T15:46:43+00:00" }, { "name": "symfony/console", - "version": "v6.3.8", + "version": "v6.4.25", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92" + "reference": "273fd29ff30ba0a88ca5fb83f7cf1ab69306adae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0d14a9f6d04d4ac38a8cea1171f4554e325dae92", - "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92", + "url": "https://api.github.com/repos/symfony/console/zipball/273fd29ff30ba0a88ca5fb83f7cf1ab69306adae", + "reference": "273fd29ff30ba0a88ca5fb83f7cf1ab69306adae", "shasum": "" }, "require": { @@ -4411,7 +3684,7 @@ "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0" + "symfony/string": "^5.4|^6.0|^7.0" }, "conflict": { "symfony/dependency-injection": "<5.4", @@ -4425,12 +3698,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "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": { @@ -4464,7 +3741,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.3.8" + "source": "https://github.com/symfony/console/tree/v6.4.25" }, "funding": [ { @@ -4475,29 +3752,33 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-10-31T08:09:35+00:00" + "time": "2025-08-22T10:21:53+00:00" }, { "name": "symfony/css-selector", - "version": "v6.3.2", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "883d961421ab1709877c10ac99451632a3d6fa57" + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/883d961421ab1709877c10ac99451632a3d6fa57", - "reference": "883d961421ab1709877c10ac99451632a3d6fa57", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -4529,7 +3810,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.3.2" + "source": "https://github.com/symfony/css-selector/tree/v7.3.0" }, "funding": [ { @@ -4545,20 +3826,20 @@ "type": "tidelift" } ], - "time": "2023-07-12T16:00:22+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.4.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", "shasum": "" }, "require": { @@ -4566,12 +3847,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -4596,7 +3877,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" }, "funding": [ { @@ -4612,34 +3893,35 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/error-handler", - "version": "v6.3.5", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "1f69476b64fb47105c06beef757766c376b548c4" + "reference": "30fd0b3cf0e972e82636038ce4db0e4fe777112c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/1f69476b64fb47105c06beef757766c376b548c4", - "reference": "1f69476b64fb47105c06beef757766c376b548c4", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/30fd0b3cf0e972e82636038ce4db0e4fe777112c", + "reference": "30fd0b3cf0e972e82636038ce4db0e4fe777112c", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "conflict": { - "symfony/deprecation-contracts": "<2.5" + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" }, "require-dev": { "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0" + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -4670,7 +3952,7 @@ "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.3.5" + "source": "https://github.com/symfony/error-handler/tree/v6.4.24" }, "funding": [ { @@ -4681,33 +3963,37 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-09-12T06:57:20+00:00" + "time": "2025-07-24T08:25:04+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.3.2", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e" + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e", - "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4", + "symfony/dependency-injection": "<6.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -4716,13 +4002,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", + "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": "^5.4|^6.0" + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4750,7 +4036,7 @@ "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/v6.3.2" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" }, "funding": [ { @@ -4761,25 +4047,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-07-06T06:56:43+00:00" + "time": "2025-08-13T11:49:31+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.4.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" + "reference": "59eb412e93815df44f05f342958efa9f46b1e586" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586", "shasum": "" }, "require": { @@ -4788,12 +4078,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -4826,7 +4116,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" }, "funding": [ { @@ -4842,27 +4132,27 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/finder", - "version": "v6.3.5", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4" + "reference": "73089124388c8510efb8d2d1689285d285937b08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4", - "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4", + "url": "https://api.github.com/repos/symfony/finder/zipball/73089124388c8510efb8d2d1689285d285937b08", + "reference": "73089124388c8510efb8d2d1689285d285937b08", "shasum": "" }, "require": { "php": ">=8.1" }, "require-dev": { - "symfony/filesystem": "^6.0" + "symfony/filesystem": "^6.0|^7.0" }, "type": "library", "autoload": { @@ -4890,7 +4180,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.3.5" + "source": "https://github.com/symfony/finder/tree/v6.4.24" }, "funding": [ { @@ -4901,25 +4191,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-09-26T12:56:25+00:00" + "time": "2025-07-15T12:02:45+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.3.8", + "version": "v6.4.25", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ce332676de1912c4389222987193c3ef38033df6" + "reference": "6bc974c0035b643aa497c58d46d9e25185e4b272" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ce332676de1912c4389222987193c3ef38033df6", - "reference": "ce332676de1912c4389222987193c3ef38033df6", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6bc974c0035b643aa497c58d46d9e25185e4b272", + "reference": "6bc974c0035b643aa497c58d46d9e25185e4b272", "shasum": "" }, "require": { @@ -4929,17 +4223,17 @@ "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.3" + "symfony/cache": "<6.4.12|>=7.0,<7.1.5" }, "require-dev": { "doctrine/dbal": "^2.13.1|^3|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.3", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", - "symfony/mime": "^5.4|^6.0", - "symfony/rate-limiter": "^5.2|^6.0" + "symfony/cache": "^6.4.12|^7.1.5", + "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": { @@ -4967,7 +4261,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.3.8" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.25" }, "funding": [ { @@ -4978,34 +4272,38 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-11-07T10:17:15+00:00" + "time": "2025-08-20T06:48:20+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.3.8", + "version": "v6.4.25", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "929202375ccf44a309c34aeca8305408442ebcc1" + "reference": "a0ee3cea5cabf4ed960fd2ef57668ceeacdb6e15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/929202375ccf44a309c34aeca8305408442ebcc1", - "reference": "929202375ccf44a309c34aeca8305408442ebcc1", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a0ee3cea5cabf4ed960fd2ef57668ceeacdb6e15", + "reference": "a0ee3cea5cabf4ed960fd2ef57668ceeacdb6e15", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.3", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^6.3.4", + "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": { @@ -5013,7 +4311,7 @@ "symfony/cache": "<5.4", "symfony/config": "<6.1", "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.3.4", + "symfony/dependency-injection": "<6.4", "symfony/doctrine-bridge": "<5.4", "symfony/form": "<5.4", "symfony/http-client": "<5.4", @@ -5023,7 +4321,7 @@ "symfony/translation": "<5.4", "symfony/translation-contracts": "<2.5", "symfony/twig-bridge": "<5.4", - "symfony/validator": "<5.4", + "symfony/validator": "<6.4", "symfony/var-dumper": "<6.3", "twig/twig": "<2.13" }, @@ -5032,26 +4330,27 @@ }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/clock": "^6.2", - "symfony/config": "^6.1", - "symfony/console": "^5.4|^6.0", - "symfony/css-selector": "^5.4|^6.0", - "symfony/dependency-injection": "^6.3.4", - "symfony/dom-crawler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.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", - "symfony/property-access": "^5.4.5|^6.0.5", - "symfony/routing": "^5.4|^6.0", - "symfony/serializer": "^6.3", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", + "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", - "symfony/validator": "^6.3", - "symfony/var-exporter": "^6.2", + "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", @@ -5080,7 +4379,7 @@ "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.3.8" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.25" }, "funding": [ { @@ -5091,25 +4390,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-11-10T13:47:32+00:00" + "time": "2025-08-29T07:55:45+00:00" }, { "name": "symfony/mailer", - "version": "v6.3.5", + "version": "v6.4.25", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06" + "reference": "628b43b45a3e6b15c8a633fb22df547ed9b492a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/d89611a7830d51b5e118bca38e390dea92f9ea06", - "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06", + "url": "https://api.github.com/repos/symfony/mailer/zipball/628b43b45a3e6b15c8a633fb22df547ed9b492a2", + "reference": "628b43b45a3e6b15c8a633fb22df547ed9b492a2", "shasum": "" }, "require": { @@ -5117,8 +4420,8 @@ "php": ">=8.1", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/mime": "^6.2", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/mime": "^6.2|^7.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { @@ -5129,10 +4432,10 @@ "symfony/twig-bridge": "<6.2.1" }, "require-dev": { - "symfony/console": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/messenger": "^6.2", - "symfony/twig-bridge": "^6.2" + "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": { @@ -5160,7 +4463,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.3.5" + "source": "https://github.com/symfony/mailer/tree/v6.4.25" }, "funding": [ { @@ -5171,25 +4474,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-09-06T09:47:15+00:00" + "time": "2025-08-13T09:41:44+00:00" }, { "name": "symfony/mime", - "version": "v6.3.5", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e" + "reference": "664d5e844a2de5e11c8255d0aef6bc15a9660ac7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/d5179eedf1cb2946dbd760475ebf05c251ef6a6e", - "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e", + "url": "https://api.github.com/repos/symfony/mime/zipball/664d5e844a2de5e11c8255d0aef6bc15a9660ac7", + "reference": "664d5e844a2de5e11c8255d0aef6bc15a9660ac7", "shasum": "" }, "require": { @@ -5203,16 +4510,17 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<5.4", - "symfony/serializer": "<6.2.13|>=6.3,<6.3.2" + "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", - "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/serializer": "~6.2.13|^6.3.2" + "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": { @@ -5244,7 +4552,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.3.5" + "source": "https://github.com/symfony/mime/tree/v6.4.24" }, "funding": [ { @@ -5255,29 +4563,33 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-09-29T06:59:36+00:00" + "time": "2025-07-15T12:02:45+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.28.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -5287,12 +4599,9 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5326,7 +4635,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -5337,41 +4646,42 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5407,7 +4717,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" }, "funding": [ { @@ -5418,43 +4728,43 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2025-06-27T09:58:17+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.28.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d", - "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" + "php": ">=7.2", + "symfony/polyfill-intl-normalizer": "^1.10" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5494,7 +4804,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.33.0" }, "funding": [ { @@ -5505,41 +4815,42 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-01-26T09:30:37+00:00" + "time": "2024-09-10T14:38:51+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5578,7 +4889,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" }, "funding": [ { @@ -5589,29 +4900,34 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { - "php": ">=7.1" + "ext-iconv": "*", + "php": ">=7.2" }, "provide": { "ext-mbstring": "*" @@ -5621,12 +4937,9 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5661,7 +4974,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" }, "funding": [ { @@ -5673,79 +4986,7 @@ "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-07-28T09:04:16+00:00" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.28.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179", - "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } - }, - "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 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/nicolas-grekas", "type": "github" }, { @@ -5753,33 +4994,30 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-12-23T08:48:59+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.28.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5820,7 +5058,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" }, "funding": [ { @@ -5831,39 +5069,39 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2025-01-02T08:10:11+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.28.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11" + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-php80": "^1.14" + "php": ">=7.2" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5900,7 +5138,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" }, "funding": [ { @@ -5911,29 +5149,33 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-08-16T06:22:46+00:00" + "time": "2025-07-08T02:45:35+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.28.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e" + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/9c44518a5aff8da565c8a55dbe85d2769e6f630e", - "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-uuid": "*" @@ -5943,12 +5185,9 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -5982,7 +5221,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.33.0" }, "funding": [ { @@ -5993,25 +5232,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/process", - "version": "v6.3.4", + "version": "v6.4.25", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54" + "reference": "6be2f0c9ab3428587c07bed03aa9e3d1b823c6c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/0b5c29118f2e980d455d2e34a5659f4579847c54", - "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54", + "url": "https://api.github.com/repos/symfony/process/zipball/6be2f0c9ab3428587c07bed03aa9e3d1b823c6c8", + "reference": "6be2f0c9ab3428587c07bed03aa9e3d1b823c6c8", "shasum": "" }, "require": { @@ -6043,7 +5286,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.3.4" + "source": "https://github.com/symfony/process/tree/v6.4.25" }, "funding": [ { @@ -6054,25 +5297,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-08-07T10:39:22+00:00" + "time": "2025-08-14T06:23:17+00:00" }, { "name": "symfony/routing", - "version": "v6.3.5", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31" + "reference": "e4f94e625c8e6f910aa004a0042f7b2d398278f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/82616e59acd3e3d9c916bba798326cb7796d7d31", - "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31", + "url": "https://api.github.com/repos/symfony/routing/zipball/e4f94e625c8e6f910aa004a0042f7b2d398278f5", + "reference": "e4f94e625c8e6f910aa004a0042f7b2d398278f5", "shasum": "" }, "require": { @@ -6088,11 +5335,11 @@ "require-dev": { "doctrine/annotations": "^1.12|^2", "psr/log": "^1|^2|^3", - "symfony/config": "^6.2", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/yaml": "^5.4|^6.0" + "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": { @@ -6126,7 +5373,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.3.5" + "source": "https://github.com/symfony/routing/tree/v6.4.24" }, "funding": [ { @@ -6137,42 +5384,47 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-09-20T16:05:51+00:00" + "time": "2025-07-15T08:46:37+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838" + "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", + "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^2.0" + "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.4-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -6208,7 +5460,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" }, "funding": [ { @@ -6224,24 +5476,24 @@ "type": "tidelift" } ], - "time": "2023-07-30T20:28:31+00:00" + "time": "2025-04-25T09:37:31+00:00" }, { "name": "symfony/string", - "version": "v6.3.8", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "13880a87790c76ef994c91e87efb96134522577a" + "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/13880a87790c76ef994c91e87efb96134522577a", - "reference": "13880a87790c76ef994c91e87efb96134522577a", + "url": "https://api.github.com/repos/symfony/string/zipball/17a426cce5fd1f0901fefa9b2a490d0038fd3c9c", + "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", @@ -6251,11 +5503,12 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/intl": "^6.2", + "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": "^5.4|^6.0" + "symfony/var-exporter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -6294,7 +5547,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.3.8" + "source": "https://github.com/symfony/string/tree/v7.3.3" }, "funding": [ { @@ -6305,25 +5558,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-11-09T08:28:21+00:00" + "time": "2025-08-25T06:35:40+00:00" }, { "name": "symfony/translation", - "version": "v6.3.7", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "30212e7c87dcb79c83f6362b00bde0e0b1213499" + "reference": "300b72643e89de0734d99a9e3f8494a3ef6936e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/30212e7c87dcb79c83f6362b00bde0e0b1213499", - "reference": "30212e7c87dcb79c83f6362b00bde0e0b1213499", + "url": "https://api.github.com/repos/symfony/translation/zipball/300b72643e89de0734d99a9e3f8494a3ef6936e1", + "reference": "300b72643e89de0734d99a9e3f8494a3ef6936e1", "shasum": "" }, "require": { @@ -6346,19 +5603,19 @@ "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { - "nikic/php-parser": "^4.13", + "nikic/php-parser": "^4.18|^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", + "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", - "symfony/intl": "^5.4|^6.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", + "symfony/routing": "^5.4|^6.0|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0" + "symfony/yaml": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -6389,7 +5646,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.3.7" + "source": "https://github.com/symfony/translation/tree/v6.4.24" }, "funding": [ { @@ -6400,25 +5657,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-10-28T23:11:45+00:00" + "time": "2025-07-30T17:30:48+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.4.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5" + "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dee0c6e5b4c07ce851b462530088e64b255ac9c5", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/df210c7a2573f1913b2d17cc95f90f53a73d8f7d", + "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d", "shasum": "" }, "require": { @@ -6426,12 +5687,12 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" } }, "autoload": { @@ -6467,7 +5728,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.0" }, "funding": [ { @@ -6483,20 +5744,20 @@ "type": "tidelift" } ], - "time": "2023-07-25T15:08:44+00:00" + "time": "2024-09-27T08:32:26+00:00" }, { "name": "symfony/uid", - "version": "v6.3.8", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "819fa5ac210fb7ddda4752b91a82f50be7493dd9" + "reference": "17da16a750541a42cf2183935e0f6008316c23f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/819fa5ac210fb7ddda4752b91a82f50be7493dd9", - "reference": "819fa5ac210fb7ddda4752b91a82f50be7493dd9", + "url": "https://api.github.com/repos/symfony/uid/zipball/17da16a750541a42cf2183935e0f6008316c23f7", + "reference": "17da16a750541a42cf2183935e0f6008316c23f7", "shasum": "" }, "require": { @@ -6504,7 +5765,7 @@ "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "symfony/console": "^5.4|^6.0" + "symfony/console": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -6541,7 +5802,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.3.8" + "source": "https://github.com/symfony/uid/tree/v6.4.24" }, "funding": [ { @@ -6552,25 +5813,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-10-31T08:07:48+00:00" + "time": "2025-07-10T08:14:14+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.3.8", + "version": "v6.4.25", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "81acabba9046550e89634876ca64bfcd3c06aa0a" + "reference": "c6cd92486e9fc32506370822c57bc02353a5a92c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/81acabba9046550e89634876ca64bfcd3c06aa0a", - "reference": "81acabba9046550e89634876ca64bfcd3c06aa0a", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c6cd92486e9fc32506370822c57bc02353a5a92c", + "reference": "c6cd92486e9fc32506370822c57bc02353a5a92c", "shasum": "" }, "require": { @@ -6582,11 +5847,11 @@ "symfony/console": "<5.4" }, "require-dev": { - "ext-iconv": "*", - "symfony/console": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/uid": "^5.4|^6.0", + "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": [ @@ -6625,7 +5890,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.3.8" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.25" }, "funding": [ { @@ -6636,40 +5901,46 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-11-08T10:42:36+00:00" + "time": "2025-08-13T09:41:44+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.6", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c" + "reference": "0d72ac1c00084279c1816675284073c5a337c20d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c", - "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d", + "reference": "0d72ac1c00084279c1816675284073c5a337c20d", "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" + "php": "^7.4 || ^8.0", + "symfony/css-selector": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^8.5.21 || ^9.5.10" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -6692,29 +5963,92 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.6" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0" }, - "time": "2023-01-03T09:29:04+00:00" + "time": "2024-12-21T16:25:41+00:00" }, { - "name": "vlucas/phpdotenv", - "version": "v5.6.0", + "name": "ua-parser/uap-php", + "version": "v3.10.0", "source": { "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" + "url": "https://github.com/ua-parser/uap-php.git", + "reference": "f44bdd1b38198801cf60b0681d2d842980e47af5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", - "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "url": "https://api.github.com/repos/ua-parser/uap-php/zipball/f44bdd1b38198801cf60b0681d2d842980e47af5", + "reference": "f44bdd1b38198801cf60b0681d2d842980e47af5", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.1", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.33", + "phpunit/phpunit": "^8 || ^9", + "symfony/console": "^3.4 || ^4.2 || ^4.3 || ^5.0", + "symfony/filesystem": "^3.4 || ^4.2 || ^4.3 || ^5.0", + "symfony/finder": "^3.4 || ^4.2 || ^4.3 || ^5.0", + "symfony/yaml": "^3.4 || ^4.2 || ^4.3 || ^5.0", + "vimeo/psalm": "^3.12" + }, + "suggest": { + "symfony/console": "Required for CLI usage - ^3.4 || ^4.3 || ^5.0", + "symfony/filesystem": "Required for CLI usage - ^3.4 || ^4.3 || ^5.0", + "symfony/finder": "Required for CLI usage - ^3.4 || ^4.3 || ^5.0", + "symfony/yaml": "Required for CLI usage - ^3.4 || ^4.3 || ^5.0" + }, + "bin": [ + "bin/uaparser" + ], + "type": "library", + "autoload": { + "psr-4": { + "UAParser\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dave Olsen", + "email": "dmolsen@gmail.com" + }, + { + "name": "Lars Strojny", + "email": "lars@strojny.net" + } + ], + "description": "A multi-language port of Browserscope's user agent parser.", + "support": { + "issues": "https://github.com/ua-parser/uap-php/issues", + "source": "https://github.com/ua-parser/uap-php/tree/v3.10.0" + }, + "time": "2025-07-17T15:43:24+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.6.2", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af", + "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.1.2", + "graham-campbell/result-type": "^1.1.3", "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.2", + "phpoption/phpoption": "^1.9.3", "symfony/polyfill-ctype": "^1.24", "symfony/polyfill-mbstring": "^1.24", "symfony/polyfill-php80": "^1.24" @@ -6731,7 +6065,7 @@ "extra": { "bamarni-bin": { "bin-links": true, - "forward-command": true + "forward-command": false }, "branch-alias": { "dev-master": "5.6-dev" @@ -6766,7 +6100,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2" }, "funding": [ { @@ -6778,20 +6112,20 @@ "type": "tidelift" } ], - "time": "2023-11-12T22:43:29+00:00" + "time": "2025-04-30T23:37:27+00:00" }, { "name": "voku/portable-ascii", - "version": "2.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "b56450eed252f6801410d810c8e1727224ae0743" + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", - "reference": "b56450eed252f6801410d810c8e1727224ae0743", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", "shasum": "" }, "require": { @@ -6816,7 +6150,7 @@ "authors": [ { "name": "Lars Moelleken", - "homepage": "http://www.moelleken.org/" + "homepage": "https://www.moelleken.org/" } ], "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", @@ -6828,7 +6162,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/2.0.1" + "source": "https://github.com/voku/portable-ascii/tree/2.0.3" }, "funding": [ { @@ -6852,7 +6186,7 @@ "type": "tidelift" } ], - "time": "2022-03-08T17:03:00+00:00" + "time": "2024-11-21T01:49:47+00:00" }, { "name": "webmozart/assert", @@ -6916,16 +6250,16 @@ "packages-dev": [ { "name": "fakerphp/faker", - "version": "v1.23.0", + "version": "v1.24.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01" + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", - "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", "shasum": "" }, "require": { @@ -6951,11 +6285,6 @@ "ext-mbstring": "Required for multibyte Unicode string functionality." }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "v1.21-dev" - } - }, "autoload": { "psr-4": { "Faker\\": "src/Faker/" @@ -6978,32 +6307,32 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.23.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1" }, - "time": "2023-06-12T08:44:38+00:00" + "time": "2024-11-21T13:46:39+00:00" }, { "name": "filp/whoops", - "version": "2.15.4", + "version": "2.18.4", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546" + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546", - "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546", + "url": "https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d", + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0 || ^8.0", + "php": "^7.1 || ^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" + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^4.0 || ^5.0" }, "suggest": { "symfony/var-dumper": "Pretty print complex values better with var-dumper available", @@ -7043,7 +6372,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.15.4" + "source": "https://github.com/filp/whoops/tree/2.18.4" }, "funding": [ { @@ -7051,24 +6380,24 @@ "type": "github" } ], - "time": "2023-11-03T12:00:00+00:00" + "time": "2025-08-08T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", - "version": "v2.0.1", + "version": "v2.1.1", "source": { "type": "git", "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", "shasum": "" }, "require": { - "php": "^5.3|^7.0|^8.0" + "php": "^7.4|^8.0" }, "replace": { "cordoval/hamcrest-php": "*", @@ -7076,8 +6405,8 @@ "kodova/hamcrest-php": "*" }, "require-dev": { - "phpunit/php-file-iterator": "^1.4 || ^2.0", - "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + "phpunit/php-file-iterator": "^1.4 || ^2.0 || ^3.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { @@ -7100,22 +6429,22 @@ ], "support": { "issues": "https://github.com/hamcrest/hamcrest-php/issues", - "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.1.1" }, - "time": "2020-07-09T08:09:16+00:00" + "time": "2025-04-30T06:54:44+00:00" }, { "name": "laravel/pint", - "version": "v1.13.6", + "version": "v1.24.0", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "3e3d2ab01c7d8b484c18e6100ecf53639c744fa7" + "reference": "0345f3b05f136801af8c339f9d16ef29e6b4df8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/3e3d2ab01c7d8b484c18e6100ecf53639c744fa7", - "reference": "3e3d2ab01c7d8b484c18e6100ecf53639c744fa7", + "url": "https://api.github.com/repos/laravel/pint/zipball/0345f3b05f136801af8c339f9d16ef29e6b4df8a", + "reference": "0345f3b05f136801af8c339f9d16ef29e6b4df8a", "shasum": "" }, "require": { @@ -7123,22 +6452,25 @@ "ext-mbstring": "*", "ext-tokenizer": "*", "ext-xml": "*", - "php": "^8.1.0" + "php": "^8.2.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.38.0", - "illuminate/view": "^10.30.1", - "laravel-zero/framework": "^10.3.0", - "mockery/mockery": "^1.6.6", - "nunomaduro/larastan": "^2.6.4", - "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.24.2" + "friendsofphp/php-cs-fixer": "^3.82.2", + "illuminate/view": "^11.45.1", + "larastan/larastan": "^3.5.0", + "laravel-zero/framework": "^11.45.0", + "mockery/mockery": "^1.6.12", + "nunomaduro/termwind": "^2.3.1", + "pestphp/pest": "^2.36.0" }, "bin": [ "builds/pint" ], "type": "project", "autoload": { + "files": [ + "overrides/Runner/Parallel/ProcessFactory.php" + ], "psr-4": { "App\\": "app/", "Database\\Seeders\\": "database/seeders/", @@ -7168,31 +6500,32 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2023-11-07T17:59:57+00:00" + "time": "2025-07-10T18:09:32+00:00" }, { "name": "laravel/sail", - "version": "v1.26.0", + "version": "v1.45.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "c60fe037004e272efd0d81f416ed2bfc623d70b4" + "reference": "019a2933ff4a9199f098d4259713f9bc266a874e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/c60fe037004e272efd0d81f416ed2bfc623d70b4", - "reference": "c60fe037004e272efd0d81f416ed2bfc623d70b4", + "url": "https://api.github.com/repos/laravel/sail/zipball/019a2933ff4a9199f098d4259713f9bc266a874e", + "reference": "019a2933ff4a9199f098d4259713f9bc266a874e", "shasum": "" }, "require": { - "illuminate/console": "^9.0|^10.0|^11.0", - "illuminate/contracts": "^9.0|^10.0|^11.0", - "illuminate/support": "^9.0|^10.0|^11.0", + "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/support": "^9.52.16|^10.0|^11.0|^12.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", + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", "phpstan/phpstan": "^1.10" }, "bin": [ @@ -7200,9 +6533,6 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - }, "laravel": { "providers": [ "Laravel\\Sail\\SailServiceProvider" @@ -7233,20 +6563,20 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2023-10-18T13:57:15+00:00" + "time": "2025-08-25T19:28:31+00:00" }, { "name": "mockery/mockery", - "version": "1.6.6", + "version": "1.6.12", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e" + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/b8e0bb7d8c604046539c1115994632c74dcb361e", - "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e", + "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", "shasum": "" }, "require": { @@ -7258,10 +6588,8 @@ "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.6.10", - "psalm/plugin-phpunit": "^0.18.4", - "symplify/easy-coding-standard": "^11.5.0", - "vimeo/psalm": "^4.30" + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" }, "type": "library", "autoload": { @@ -7318,20 +6646,20 @@ "security": "https://github.com/mockery/mockery/security/advisories", "source": "https://github.com/mockery/mockery" }, - "time": "2023-08-09T00:03:52+00:00" + "time": "2024-05-16T03:13:13+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { @@ -7339,11 +6667,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "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", @@ -7369,7 +6698,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -7377,44 +6706,44 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "nunomaduro/collision", - "version": "v7.10.0", + "version": "v7.12.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "49ec67fa7b002712da8526678abd651c09f375b2" + "reference": "995245421d3d7593a6960822063bdba4f5d7cf1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2", - "reference": "49ec67fa7b002712da8526678abd651c09f375b2", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/995245421d3d7593a6960822063bdba4f5d7cf1a", + "reference": "995245421d3d7593a6960822063bdba4f5d7cf1a", "shasum": "" }, "require": { - "filp/whoops": "^2.15.3", - "nunomaduro/termwind": "^1.15.1", + "filp/whoops": "^2.17.0", + "nunomaduro/termwind": "^1.17.0", "php": "^8.1.0", - "symfony/console": "^6.3.4" + "symfony/console": "^6.4.17" }, "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" + "brianium/paratest": "^7.4.8", + "laravel/framework": "^10.48.29", + "laravel/pint": "^1.21.2", + "laravel/sail": "^1.41.0", + "laravel/sanctum": "^3.3.3", + "laravel/tinker": "^2.10.1", + "nunomaduro/larastan": "^2.10.0", + "orchestra/testbench-core": "^8.35.0", + "pestphp/pest": "^2.36.0", + "phpunit/phpunit": "^10.5.36", + "sebastian/environment": "^6.1.0", + "spatie/laravel-ignition": "^2.9.1" }, "type": "library", "extra": { @@ -7473,24 +6802,25 @@ "type": "patreon" } ], - "time": "2023-10-11T15:45:01+00:00" + "time": "2025-03-14T22:35:49+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "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", @@ -7531,9 +6861,15 @@ "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.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -7588,32 +6924,32 @@ }, { "name": "phpunit/php-code-coverage", - "version": "10.1.8", + "version": "10.1.16", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297" + "reference": "7e308268858ed6baedc8704a304727d20bc07c77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/84838eed9ded511f61dc3e8b5944a52d9017b297", - "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297", + "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.15", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=8.1", - "phpunit/php-file-iterator": "^4.0", - "phpunit/php-text-template": "^3.0", - "sebastian/code-unit-reverse-lookup": "^3.0", - "sebastian/complexity": "^3.0", - "sebastian/environment": "^6.0", - "sebastian/lines-of-code": "^2.0", - "sebastian/version": "^4.0", - "theseer/tokenizer": "^1.2.0" + "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" @@ -7625,7 +6961,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.1-dev" + "dev-main": "10.1.x-dev" } }, "autoload": { @@ -7654,7 +6990,7 @@ "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.8" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" }, "funding": [ { @@ -7662,7 +6998,7 @@ "type": "github" } ], - "time": "2023-11-15T13:31:15+00:00" + "time": "2024-08-22T04:31:57+00:00" }, { "name": "phpunit/php-file-iterator", @@ -7909,16 +7245,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.4.2", + "version": "10.5.53", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1" + "reference": "32768472ebfb6969e6c7399f1c7b09009723f653" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", - "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/32768472ebfb6969e6c7399f1c7b09009723f653", + "reference": "32768472ebfb6969e6c7399f1c7b09009723f653", "shasum": "" }, "require": { @@ -7928,26 +7264,26 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.13.4", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.5", - "phpunit/php-file-iterator": "^4.0", - "phpunit/php-invoker": "^4.0", - "phpunit/php-text-template": "^3.0", - "phpunit/php-timer": "^6.0", - "sebastian/cli-parser": "^2.0", - "sebastian/code-unit": "^2.0", - "sebastian/comparator": "^5.0", - "sebastian/diff": "^5.0", - "sebastian/environment": "^6.0", - "sebastian/exporter": "^5.1", - "sebastian/global-state": "^6.0.1", - "sebastian/object-enumerator": "^5.0", - "sebastian/recursion-context": "^5.0", - "sebastian/type": "^4.0", - "sebastian/version": "^4.0" + "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.3", + "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.1", + "sebastian/type": "^4.0.0", + "sebastian/version": "^4.0.1" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -7958,7 +7294,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.4-dev" + "dev-main": "10.5-dev" } }, "autoload": { @@ -7990,7 +7326,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.4.2" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.53" }, "funding": [ { @@ -8001,25 +7337,33 @@ "url": "https://github.com/sebastianbergmann", "type": "github" }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", "type": "tidelift" } ], - "time": "2023-10-26T07:21:45+00:00" + "time": "2025-08-20T14:40:06+00:00" }, { "name": "sebastian/cli-parser", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae" + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", "shasum": "" }, "require": { @@ -8054,7 +7398,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" }, "funding": [ { @@ -8062,7 +7407,7 @@ "type": "github" } ], - "time": "2023-02-03T06:58:15+00:00" + "time": "2024-03-02T07:12:49+00:00" }, { "name": "sebastian/code-unit", @@ -8177,16 +7522,16 @@ }, { "name": "sebastian/comparator", - "version": "5.0.1", + "version": "5.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2db5010a484d53ebf536087a70b4a5423c102372" + "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", - "reference": "2db5010a484d53ebf536087a70b4a5423c102372", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", + "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", "shasum": "" }, "require": { @@ -8197,7 +7542,7 @@ "sebastian/exporter": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^10.3" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -8242,7 +7587,7 @@ "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.1" + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.3" }, "funding": [ { @@ -8250,24 +7595,24 @@ "type": "github" } ], - "time": "2023-08-14T13:18:12+00:00" + "time": "2024-10-18T14:56:07+00:00" }, { "name": "sebastian/complexity", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "68cfb347a44871f01e33ab0ef8215966432f6957" + "reference": "68ff824baeae169ec9f2137158ee529584553799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68cfb347a44871f01e33ab0ef8215966432f6957", - "reference": "68cfb347a44871f01e33ab0ef8215966432f6957", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -8276,7 +7621,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.2-dev" } }, "autoload": { @@ -8300,7 +7645,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.1.0" + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" }, "funding": [ { @@ -8308,20 +7653,20 @@ "type": "github" } ], - "time": "2023-09-28T11:50:59+00:00" + "time": "2023-12-21T08:37:17+00:00" }, { "name": "sebastian/diff", - "version": "5.0.3", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b" + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b", - "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", "shasum": "" }, "require": { @@ -8329,12 +7674,12 @@ }, "require-dev": { "phpunit/phpunit": "^10.0", - "symfony/process": "^4.2 || ^5" + "symfony/process": "^6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -8367,7 +7712,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" }, "funding": [ { @@ -8375,20 +7720,20 @@ "type": "github" } ], - "time": "2023-05-01T07:48:21+00:00" + "time": "2024-03-02T07:15:17+00:00" }, { "name": "sebastian/environment", - "version": "6.0.1", + "version": "6.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951" + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", "shasum": "" }, "require": { @@ -8403,7 +7748,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -8431,7 +7776,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" }, "funding": [ { @@ -8439,20 +7784,20 @@ "type": "github" } ], - "time": "2023-04-11T05:39:26+00:00" + "time": "2024-03-23T08:47:14+00:00" }, { "name": "sebastian/exporter", - "version": "5.1.1", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" + "reference": "955288482d97c19a372d3f31006ab3f37da47adf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf", "shasum": "" }, "require": { @@ -8509,7 +7854,7 @@ "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.1" + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" }, "funding": [ { @@ -8517,20 +7862,20 @@ "type": "github" } ], - "time": "2023-09-24T13:22:09+00:00" + "time": "2024-03-02T07:17:12+00:00" }, { "name": "sebastian/global-state", - "version": "6.0.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", "shasum": "" }, "require": { @@ -8564,14 +7909,14 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/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.1" + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" }, "funding": [ { @@ -8579,24 +7924,24 @@ "type": "github" } ], - "time": "2023-07-19T07:19:23+00:00" + "time": "2024-03-02T07:19:19+00:00" }, { "name": "sebastian/lines-of-code", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d" + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/649e40d279e243d985aa8fb6e74dd5bb28dc185d", - "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -8629,7 +7974,7 @@ "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.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" }, "funding": [ { @@ -8637,7 +7982,7 @@ "type": "github" } ], - "time": "2023-08-31T09:25:50+00:00" + "time": "2023-12-21T08:38:20+00:00" }, { "name": "sebastian/object-enumerator", @@ -8753,23 +8098,23 @@ }, { "name": "sebastian/recursion-context", - "version": "5.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712" + "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/47e34210757a2f37a97dcd207d032e1b01e64c7a", + "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a", "shasum": "" }, "require": { "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -8804,15 +8149,28 @@ "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" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2023-02-03T07:05:40+00:00" + "time": "2025-08-10T07:50:56+00:00" }, { "name": "sebastian/type", @@ -8925,26 +8283,27 @@ }, { "name": "spatie/backtrace", - "version": "1.5.3", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab" + "reference": "8c0f16a59ae35ec8c62d85c3c17585158f430110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab", - "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/8c0f16a59ae35ec8c62d85c3c17585158f430110", + "reference": "8c0f16a59ae35ec8c62d85c3c17585158f430110", "shasum": "" }, "require": { - "php": "^7.3|^8.0" + "php": "^7.3 || ^8.0" }, "require-dev": { "ext-json": "*", - "phpunit/phpunit": "^9.3", - "spatie/phpunit-snapshot-assertions": "^4.2", - "symfony/var-dumper": "^5.1" + "laravel/serializable-closure": "^1.3 || ^2.0", + "phpunit/phpunit": "^9.3 || ^11.4.3", + "spatie/phpunit-snapshot-assertions": "^4.2 || ^5.1.6", + "symfony/var-dumper": "^5.1 || ^6.0 || ^7.0" }, "type": "library", "autoload": { @@ -8971,7 +8330,8 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/backtrace/tree/1.5.3" + "issues": "https://github.com/spatie/backtrace/issues", + "source": "https://github.com/spatie/backtrace/tree/1.8.1" }, "funding": [ { @@ -8983,27 +8343,100 @@ "type": "other" } ], - "time": "2023-06-28T12:59:17+00:00" + "time": "2025-08-26T08:22:30+00:00" }, { - "name": "spatie/flare-client-php", - "version": "1.4.3", + "name": "spatie/error-solutions", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/spatie/flare-client-php.git", - "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec" + "url": "https://github.com/spatie/error-solutions.git", + "reference": "e495d7178ca524f2dd0fe6a1d99a1e608e1c9936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", - "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", + "url": "https://api.github.com/repos/spatie/error-solutions/zipball/e495d7178ca524f2dd0fe6a1d99a1e608e1c9936", + "reference": "e495d7178ca524f2dd0fe6a1d99a1e608e1c9936", "shasum": "" }, "require": { - "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", - "nesbot/carbon": "^2.62.1", + "php": "^8.0" + }, + "require-dev": { + "illuminate/broadcasting": "^10.0|^11.0|^12.0", + "illuminate/cache": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0", + "livewire/livewire": "^2.11|^3.5.20", + "openai-php/client": "^0.10.1", + "orchestra/testbench": "8.22.3|^9.0|^10.0", + "pestphp/pest": "^2.20|^3.0", + "phpstan/phpstan": "^2.1", + "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.3" + }, + "funding": [ + { + "url": "https://github.com/Spatie", + "type": "github" + } + ], + "time": "2025-02-14T12:29:50+00:00" + }, + { + "name": "spatie/flare-client-php", + "version": "1.10.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/flare-client-php.git", + "reference": "bf1716eb98bd689451b071548ae9e70738dce62f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/bf1716eb98bd689451b071548ae9e70738dce62f", + "reference": "bf1716eb98bd689451b071548ae9e70738dce62f", + "shasum": "" + }, + "require": { + "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0|^12.0", "php": "^8.0", - "spatie/backtrace": "^1.5.2", + "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", @@ -9015,7 +8448,7 @@ "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.0", - "spatie/phpunit-snapshot-assertions": "^4.0|^5.0" + "spatie/pest-plugin-snapshots": "^1.0|^2.0" }, "type": "library", "extra": { @@ -9045,7 +8478,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.4.3" + "source": "https://github.com/spatie/flare-client-php/tree/1.10.1" }, "funding": [ { @@ -9053,33 +8486,33 @@ "type": "github" } ], - "time": "2023-10-17T15:54:07+00:00" + "time": "2025-02-14T13:42:06+00:00" }, { "name": "spatie/ignition", - "version": "1.11.3", + "version": "1.15.1", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044" + "reference": "31f314153020aee5af3537e507fef892ffbf8c85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", - "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", + "url": "https://api.github.com/repos/spatie/ignition/zipball/31f314153020aee5af3537e507fef892ffbf8c85", + "reference": "31f314153020aee5af3537e507fef892ffbf8c85", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", "php": "^8.0", - "spatie/backtrace": "^1.5.3", - "spatie/flare-client-php": "^1.4.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", + "illuminate/cache": "^9.52|^10.0|^11.0|^12.0", "mockery/mockery": "^1.4", "pestphp/pest": "^1.20|^2.0", "phpstan/extension-installer": "^1.1", @@ -9136,42 +8569,41 @@ "type": "github" } ], - "time": "2023-10-18T14:09:40+00:00" + "time": "2025-02-21T14:31:39+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.3.1", + "version": "2.9.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8" + "reference": "1baee07216d6748ebd3a65ba97381b051838707a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/bf21cd15aa47fa4ec5d73bbc932005c70261efc8", - "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/1baee07216d6748ebd3a65ba97381b051838707a", + "reference": "1baee07216d6748ebd3a65ba97381b051838707a", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "illuminate/support": "^10.0", + "illuminate/support": "^10.0|^11.0|^12.0", "php": "^8.1", - "spatie/flare-client-php": "^1.3.5", - "spatie/ignition": "^1.9", - "symfony/console": "^6.2.3", - "symfony/var-dumper": "^6.2.3" + "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", + "livewire/livewire": "^2.11|^3.3.5", "mockery/mockery": "^1.5.1", - "openai-php/client": "^0.3.4", - "orchestra/testbench": "^8.0", - "pestphp/pest": "^1.22.3", - "phpstan/extension-installer": "^1.2", - "phpstan/phpstan-deprecation-rules": "^1.1.1", - "phpstan/phpstan-phpunit": "^1.3.3", + "openai-php/client": "^0.8.1|^0.10", + "orchestra/testbench": "8.22.3|^9.0|^10.0", + "pestphp/pest": "^2.34|^3.7", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan-deprecation-rules": "^1.1.1|^2.0", + "phpstan/phpstan-phpunit": "^1.3.16|^2.0", "vlucas/phpdotenv": "^5.5" }, "suggest": { @@ -9181,12 +8613,12 @@ "type": "library", "extra": { "laravel": { - "providers": [ - "Spatie\\LaravelIgnition\\IgnitionServiceProvider" - ], "aliases": { "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" - } + }, + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ] } }, "autoload": { @@ -9228,32 +8660,32 @@ "type": "github" } ], - "time": "2023-10-09T12:55:26+00:00" + "time": "2025-02-20T13:13:55+00:00" }, { "name": "symfony/yaml", - "version": "v6.3.8", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92" + "reference": "d4f4a66866fe2451f61296924767280ab5732d9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/3493af8a8dad7fa91c77fa473ba23ecd95334a92", - "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92", + "url": "https://api.github.com/repos/symfony/yaml/zipball/d4f4a66866fe2451f61296924767280ab5732d9d", + "reference": "d4f4a66866fe2451f61296924767280ab5732d9d", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0" + "symfony/console": "^6.4|^7.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -9284,7 +8716,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.3.8" + "source": "https://github.com/symfony/yaml/tree/v7.3.3" }, "funding": [ { @@ -9295,25 +8727,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2023-11-06T10:58:05+00:00" + "time": "2025-08-27T11:34:33+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -9342,7 +8778,7 @@ "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.1" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -9350,17 +8786,18 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" + "time": "2024-03-03T12:36:25+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^8.1" + "php": "^8.1", + "ext-exif": "*" }, - "platform-dev": [], + "platform-dev": {}, "plugin-api-version": "2.6.0" } diff --git a/config/app.php b/config/app.php index d4177ae..a20d8e9 100644 --- a/config/app.php +++ b/config/app.php @@ -4,12 +4,11 @@ use Illuminate\Support\ServiceProvider; return [ - 'name' => env('APP_NAME', 'diskfloppy.me'), - 'version' => '2023.11.26', + 'name' => env('APP_NAME', 'wah.moe'), + 'version' => '2025.08.30-patch2', 'env' => env('APP_ENV', 'production'), 'debug' => (bool) env('APP_DEBUG', false), 'url' => env('APP_URL', 'http://localhost'), - 'api_root' => env('API_ROOT', 'http://localhost:3000'), 'asset_url' => env('ASSET_URL'), 'timezone' => 'UTC', @@ -26,6 +25,7 @@ App\Providers\AuthServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, + browner12\helpers\HelperServiceProvider::class ])->toArray(), 'aliases' => Facade::defaultAliases()->merge([ ])->toArray(), diff --git a/config/auth0.php b/config/auth0.php deleted file mode 100644 index 7a5664f..0000000 --- a/config/auth0.php +++ /dev/null @@ -1,56 +0,0 @@ - true, - 'registerMiddleware' => true, - 'registerAuthenticationRoutes' => true, - 'configurationPath' => null, - - 'guards' => [ - 'default' => [ - Configuration::CONFIG_STRATEGY => Configuration::get(Configuration::CONFIG_STRATEGY, SdkConfiguration::STRATEGY_NONE), - Configuration::CONFIG_DOMAIN => Configuration::get(Configuration::CONFIG_DOMAIN), - Configuration::CONFIG_CUSTOM_DOMAIN => Configuration::get(Configuration::CONFIG_CUSTOM_DOMAIN), - Configuration::CONFIG_CLIENT_ID => Configuration::get(Configuration::CONFIG_CLIENT_ID), - Configuration::CONFIG_CLIENT_SECRET => Configuration::get(Configuration::CONFIG_CLIENT_SECRET), - Configuration::CONFIG_AUDIENCE => Configuration::get(Configuration::CONFIG_AUDIENCE), - Configuration::CONFIG_ORGANIZATION => Configuration::get(Configuration::CONFIG_ORGANIZATION), - Configuration::CONFIG_USE_PKCE => Configuration::get(Configuration::CONFIG_USE_PKCE), - Configuration::CONFIG_SCOPE => Configuration::get(Configuration::CONFIG_SCOPE), - Configuration::CONFIG_RESPONSE_MODE => Configuration::get(Configuration::CONFIG_RESPONSE_MODE), - Configuration::CONFIG_RESPONSE_TYPE => Configuration::get(Configuration::CONFIG_RESPONSE_TYPE), - Configuration::CONFIG_TOKEN_ALGORITHM => Configuration::get(Configuration::CONFIG_TOKEN_ALGORITHM), - Configuration::CONFIG_TOKEN_JWKS_URI => Configuration::get(Configuration::CONFIG_TOKEN_JWKS_URI), - Configuration::CONFIG_TOKEN_MAX_AGE => Configuration::get(Configuration::CONFIG_TOKEN_MAX_AGE), - Configuration::CONFIG_TOKEN_LEEWAY => Configuration::get(Configuration::CONFIG_TOKEN_LEEWAY), - Configuration::CONFIG_TOKEN_CACHE => Configuration::get(Configuration::CONFIG_TOKEN_CACHE), - Configuration::CONFIG_TOKEN_CACHE_TTL => Configuration::get(Configuration::CONFIG_TOKEN_CACHE_TTL), - Configuration::CONFIG_HTTP_MAX_RETRIES => Configuration::get(Configuration::CONFIG_HTTP_MAX_RETRIES), - Configuration::CONFIG_HTTP_TELEMETRY => Configuration::get(Configuration::CONFIG_HTTP_TELEMETRY), - Configuration::CONFIG_MANAGEMENT_TOKEN => Configuration::get(Configuration::CONFIG_MANAGEMENT_TOKEN), - Configuration::CONFIG_MANAGEMENT_TOKEN_CACHE => Configuration::get(Configuration::CONFIG_MANAGEMENT_TOKEN_CACHE), - Configuration::CONFIG_CLIENT_ASSERTION_SIGNING_KEY => Configuration::get(Configuration::CONFIG_CLIENT_ASSERTION_SIGNING_KEY), - Configuration::CONFIG_CLIENT_ASSERTION_SIGNING_ALGORITHM => Configuration::get(Configuration::CONFIG_CLIENT_ASSERTION_SIGNING_ALGORITHM), - Configuration::CONFIG_PUSHED_AUTHORIZATION_REQUEST => Configuration::get(Configuration::CONFIG_PUSHED_AUTHORIZATION_REQUEST), - ], - - 'api' => [ - Configuration::CONFIG_STRATEGY => SdkConfiguration::STRATEGY_API, - ], - - 'web' => [ - Configuration::CONFIG_STRATEGY => SdkConfiguration::STRATEGY_REGULAR, - Configuration::CONFIG_COOKIE_SECRET => Configuration::get(Configuration::CONFIG_COOKIE_SECRET, env('APP_KEY')), - Configuration::CONFIG_REDIRECT_URI => Configuration::get(Configuration::CONFIG_REDIRECT_URI, env('APP_URL') . '/callback'), - Configuration::CONFIG_SESSION_STORAGE => Configuration::get(Configuration::CONFIG_SESSION_STORAGE), - Configuration::CONFIG_SESSION_STORAGE_ID => Configuration::get(Configuration::CONFIG_SESSION_STORAGE_ID), - Configuration::CONFIG_TRANSIENT_STORAGE => Configuration::get(Configuration::CONFIG_TRANSIENT_STORAGE), - Configuration::CONFIG_TRANSIENT_STORAGE_ID => Configuration::get(Configuration::CONFIG_TRANSIENT_STORAGE_ID), - ], - ], -]; diff --git a/config/bookmarks.php b/config/bookmarks.php deleted file mode 100644 index db955d5..0000000 --- a/config/bookmarks.php +++ /dev/null @@ -1,117 +0,0 @@ - "Friends' Websites", - 'bookmarks' => [ - [ - 'name' => "nick99nack", - 'url' => "http://www.nick99nack.com/", - 'description' => "Currently in the process of taking over the internet. I Totally didn't steal any of his stuff." - ], - [ - 'name' => "campos", - 'url' => "https://campos02.me/", - 'description' => "Cool brazilian dude, does programming and stuff" - ], - [ - 'name' => "Sashi", - 'url' => "https://joshuaalto.com/", - 'description' => "Site redesign #8! I'll find a website style I enjoy eventually, I swear!" - ], - [ - 'name' => "noone", - 'url' => "http://strangenessnetworks.com/", - 'description' => "Strangeness Networks, noone's website." - ], - [ - 'name' => "raf", - 'url' => "https://notashelf.dev/", - 'description' => "is a shelf" - ], - [ - 'name' => "CamK06", - 'url' => "https://starman0620.neocities.org/", - 'description' => "Now with more outdated HTML!" - ], - [ - 'name' => "HIDEN", - 'url' => "https://hiden.pw/", - 'description' => "Moar buttons!" - ], - [ - 'name' => "coco", - 'url' => "http://cocomark.neocities.org/", - 'description' => "needs to go to the brain store" - ], - [ - 'name' => "Toxidation", - 'url' => "http://toxi.pw/", - 'description' => "h (idk if this is his actual domain he has like 5)" - ], - [ - 'name' => "xproot", - 'url' => "http://xproot.pw/", - 'description' => "a random internet person on this very random planet" - ] - ] - ], - // Cool Projects - [ - 'name' => "Cool Projects", - 'bookmarks' => [ - [ - 'name' => "ToS;DR", - 'url' => "https://tosdr.org/", - 'description' => "\"I have read and agree to the Terms\" is the biggest lie on the web. They aim to fix that." - ], - [ - 'name' => "NINA", - 'url' => "https://nina.chat/", - 'description' => "Yahoo! Messenger (and soon AOL) revival" - ], - [ - 'name' => "Escargot", - 'url' => "https://escargot.chat/", - 'description' => "MSN/WLM revival" - ], - ] - ], - // Other Cool Stuff - [ - 'name' => "Other Cool Stuff", - 'bookmarks' => [ - [ - 'name' => "WinWorld", - 'url' => "http://www.winworldpc.com/", - 'description' => "WinWorld is an online museum dedicated to the preservation and sharing of vintage, abandoned, and pre-release software." - ], - [ - 'name' => "ToastyTech", - 'url' => "http://toastytech.com/", - 'description' => "Nathan's Toasty Technology Page" - ], - [ - 'name' => "Optimized for no one", - 'url' => "http://www.hoary.org/browse/", - 'description' => "Optimized for no one, but pretty much OK with . . ." - ], - [ - 'name' => "Cameron's World", - 'url' => "http://www.cameronsworld.net/", - 'description' => "A love letter to the Internet of old." - ] - ] - ], - // Miscellaneous Resources - [ - 'name' => "Miscellaneous Resources", - 'bookmarks' => [ - [ - 'name' => "Home Manager (Appendix A)", - 'url' => "https://rycee.gitlab.io/home-manager/options.html", - 'description' => "Useful list of configuration options for Home Manager." - ] - ] - ] -]; diff --git a/config/projects.php b/config/projects.php deleted file mode 100644 index 1c6c0f2..0000000 --- a/config/projects.php +++ /dev/null @@ -1,71 +0,0 @@ - "Websites", - 'projects' => [ - [ - 'name' => "diskfloppy.me", - 'description' => "The website you're looking at right now!", - 'url' => "https://github.com/floppydisk05/diskfloppy.me", - 'languages' => ["PHP", "CSS"] - ], - [ - 'name' => "NetDrivers", - 'description' => "Driver downloads website.", - 'url' => "https://github.com/floppydisk05/NetDrivers", - 'languages' => ["Ruby", "CSS"] - ] - ] - ], - [ - 'name' => "APIs", - 'projects' => [ - [ - 'name' => "trivia-api", - 'description' => "API to serve random trivia questions.", - 'url' => "https://github.com/floppydisk05/trivia-api", - 'languages' => ["JavaScript"] - ] - ] - ], - [ - 'name' => "Discord Bots", - 'projects' => [ - [ - 'name' => "PlexBot", - 'description' => "A basic bot to play music from the configured Plex server in a Discord voice channel.", - 'url' => "https://github.com/floppydisk05/PlexBot", - 'languages' => ["Python"] - ] - ] - ], - [ - 'name' => "Abandoned Projects", - 'projects' => [ - [ - 'name' => "website-cf", - 'description' => "Rewrite of my personal website in Adobe ColdFusion.", - 'url' => "https://github.com/floppydisk05/website-cf", - 'languages' => ["Adobe ColdFusion"] - ], - [ - 'name' => "WinBotJDA", - 'description' => "Rewrite of CamK06's WinBot using Java and DiscordJDA.", - 'url' => "https://github.com/floppydisk05/WinBotJDA", - 'languages' => ["Java"] - ], - [ - 'name' => "delayed-eject", - 'description' => "Scripts which eject the cd drive a lot to annoy nick.", - 'url' => "https://github.com/floppydisk05/delayed-eject", - 'languages' => ["Shell", "C"] - ], - [ - 'name' => "php-sound", - 'description' => "Plays a specified sound file or files on the web server when a php page is loaded.", - 'url' => "https://github.com/floppydisk05/php-sound", - 'languages' => ["PHP", "Shell"] - ] - ] - ] -]; diff --git a/config/sanctum.php b/config/sanctum.php deleted file mode 100644 index 529cfdc..0000000 --- a/config/sanctum.php +++ /dev/null @@ -1,67 +0,0 @@ - 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. If this value is null, personal access tokens do - | not expire. This won't tweak the lifetime of first-party sessions. - | - */ - - 'expiration' => null, - - /* - |-------------------------------------------------------------------------- - | 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' => [ - 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, - 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class, - ], - -]; diff --git a/config/services.php b/config/services.php index 0acb16e..21e97c7 100644 --- a/config/services.php +++ b/config/services.php @@ -17,6 +17,5 @@ 'lastfm' => [ 'key' => env('LASTFM_KEY'), 'user' => env('LASTFM_USER'), - 'toptracks' => env('LASTFM_TOP_TRACKS') ] ]; diff --git a/database/factories/BookmarkCategoryFactory.php b/database/factories/BookmarkCategoryFactory.php new file mode 100644 index 0000000..ca49ce5 --- /dev/null +++ b/database/factories/BookmarkCategoryFactory.php @@ -0,0 +1,23 @@ + + */ +class BookmarkCategoryFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'name' => $this->faker->word, + ]; + } +} diff --git a/database/factories/BookmarkSiteFactory.php b/database/factories/BookmarkSiteFactory.php new file mode 100644 index 0000000..c77c011 --- /dev/null +++ b/database/factories/BookmarkSiteFactory.php @@ -0,0 +1,27 @@ + + */ +class BookmarkSiteFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'name' => $this->faker->name, + 'description' => $this->faker->sentence, + 'url' => $this->faker->url, + 'category' => BookmarkCategory::factory(), + ]; + } +} 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 deleted file mode 100644 index 81a7229..0000000 --- a/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php +++ /dev/null @@ -1,28 +0,0 @@ -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 deleted file mode 100644 index 249da81..0000000 --- a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php +++ /dev/null @@ -1,32 +0,0 @@ -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/2014_10_12_000000_create_users_table.php b/database/migrations/2024_02_13_230402_create_bookmark__categories_table.php similarity index 61% rename from database/migrations/2014_10_12_000000_create_users_table.php rename to database/migrations/2024_02_13_230402_create_bookmark__categories_table.php index 444fafb..bb1799b 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2024_02_13_230402_create_bookmark__categories_table.php @@ -11,13 +11,10 @@ */ public function up(): void { - Schema::create('users', function (Blueprint $table) { + Schema::create('bookmark__categories', function (Blueprint $table) { $table->id(); $table->string('name'); - $table->string('email')->unique(); - $table->timestamp('email_verified_at')->nullable(); - $table->string('password'); - $table->rememberToken(); + $table->unsignedBigInteger('priority')->nullable(); $table->timestamps(); }); } @@ -27,6 +24,6 @@ public function up(): void */ public function down(): void { - Schema::dropIfExists('users'); + Schema::dropIfExists('bookmark__categories'); } }; diff --git a/database/migrations/2024_02_13_230457_create_bookmark__sites_table.php b/database/migrations/2024_02_13_230457_create_bookmark__sites_table.php new file mode 100644 index 0000000..f016f43 --- /dev/null +++ b/database/migrations/2024_02_13_230457_create_bookmark__sites_table.php @@ -0,0 +1,35 @@ +id(); + $table->string('name'); + $table->text('description')->nullable(); + $table->string('url'); + $table->unsignedBigInteger('category'); + $table->foreign('category') + ->references('id') + ->on('bookmark__categories') + ->onDelete('cascade'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('bookmarks'); + } +}; diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2024_02_25_151527_create_guestbook__entries_table.php similarity index 53% rename from database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php rename to database/migrations/2024_02_25_151527_create_guestbook__entries_table.php index e828ad8..f1b2a11 100644 --- a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php +++ b/database/migrations/2024_02_25_151527_create_guestbook__entries_table.php @@ -11,14 +11,13 @@ */ public function up(): void { - Schema::create('personal_access_tokens', function (Blueprint $table) { + Schema::create('guestbook__entries', function (Blueprint $table) { $table->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->string('ip'); + $table->string('agent'); + $table->longText('message'); + $table->boolean('admin'); $table->timestamps(); }); } @@ -28,6 +27,6 @@ public function up(): void */ public function down(): void { - Schema::dropIfExists('personal_access_tokens'); + Schema::dropIfExists('guestbook__entries'); } }; diff --git a/database/seeders/BookmarkCategoriesTableSeeder.php b/database/seeders/BookmarkCategoriesTableSeeder.php new file mode 100644 index 0000000..5c8ea2f --- /dev/null +++ b/database/seeders/BookmarkCategoriesTableSeeder.php @@ -0,0 +1,30 @@ +count(5)->create()->each(function ($category) { +// $category->sites()->saveMany(BookmarkSite::factory()->count(3)->make()); +// }); + $category = new BookmarkCategory([ + 'name' => 'cool people', + ]); + $category->save(); + $site = new BookmarkSite([ + 'name' => 'campos', + 'description' => 'Cool brazilian dude, does programming and stuff', + 'url' => 'https://campos02.me/', + 'category' => 1, + ]); + $site->save(); + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php deleted file mode 100644 index a9f4519..0000000 --- a/database/seeders/DatabaseSeeder.php +++ /dev/null @@ -1,22 +0,0 @@ -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..87accd6 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,881 @@ +{ + "name": "wah.moe", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@sentry/browser": "^7.40.0" + }, + "devDependencies": { + "axios": "^1.1.2", + "laravel-vite-plugin": "^0.7.5", + "vite": "^4.5.3" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@sentry-internal/feedback": { + "version": "7.120.3", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.120.3.tgz", + "integrity": "sha512-ewJJIQ0mbsOX6jfiVFvqMjokxNtgP3dNwUv+4nenN+iJJPQsM6a0ocro3iscxwVdbkjw5hY3BUV2ICI5Q0UWoA==", + "license": "MIT", + "dependencies": { + "@sentry/core": "7.120.3", + "@sentry/types": "7.120.3", + "@sentry/utils": "7.120.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sentry-internal/replay-canvas": { + "version": "7.120.3", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.120.3.tgz", + "integrity": "sha512-s5xy+bVL1eDZchM6gmaOiXvTqpAsUfO7122DxVdEDMtwVq3e22bS2aiGa8CUgOiJkulZ+09q73nufM77kOmT/A==", + "license": "MIT", + "dependencies": { + "@sentry/core": "7.120.3", + "@sentry/replay": "7.120.3", + "@sentry/types": "7.120.3", + "@sentry/utils": "7.120.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sentry-internal/tracing": { + "version": "7.120.3", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.120.3.tgz", + "integrity": "sha512-Ausx+Jw1pAMbIBHStoQ6ZqDZR60PsCByvHdw/jdH9AqPrNE9xlBSf9EwcycvmrzwyKspSLaB52grlje2cRIUMg==", + "license": "MIT", + "dependencies": { + "@sentry/core": "7.120.3", + "@sentry/types": "7.120.3", + "@sentry/utils": "7.120.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/browser": { + "version": "7.120.3", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.120.3.tgz", + "integrity": "sha512-i9vGcK9N8zZ/JQo1TCEfHHYZ2miidOvgOABRUc9zQKhYdcYQB2/LU1kqlj77Pxdxf4wOa9137d6rPrSn9iiBxg==", + "license": "MIT", + "dependencies": { + "@sentry-internal/feedback": "7.120.3", + "@sentry-internal/replay-canvas": "7.120.3", + "@sentry-internal/tracing": "7.120.3", + "@sentry/core": "7.120.3", + "@sentry/integrations": "7.120.3", + "@sentry/replay": "7.120.3", + "@sentry/types": "7.120.3", + "@sentry/utils": "7.120.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/core": { + "version": "7.120.3", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.120.3.tgz", + "integrity": "sha512-vyy11fCGpkGK3qI5DSXOjgIboBZTriw0YDx/0KyX5CjIjDDNgp5AGgpgFkfZyiYiaU2Ww3iFuKo4wHmBusz1uA==", + "license": "MIT", + "dependencies": { + "@sentry/types": "7.120.3", + "@sentry/utils": "7.120.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/integrations": { + "version": "7.120.3", + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.120.3.tgz", + "integrity": "sha512-6i/lYp0BubHPDTg91/uxHvNui427df9r17SsIEXa2eKDwQ9gW2qRx5IWgvnxs2GV/GfSbwcx4swUB3RfEWrXrQ==", + "license": "MIT", + "dependencies": { + "@sentry/core": "7.120.3", + "@sentry/types": "7.120.3", + "@sentry/utils": "7.120.3", + "localforage": "^1.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/replay": { + "version": "7.120.3", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.120.3.tgz", + "integrity": "sha512-CjVq1fP6bpDiX8VQxudD5MPWwatfXk8EJ2jQhJTcWu/4bCSOQmHxnnmBM+GVn5acKUBCodWHBN+IUZgnJheZSg==", + "license": "MIT", + "dependencies": { + "@sentry-internal/tracing": "7.120.3", + "@sentry/core": "7.120.3", + "@sentry/types": "7.120.3", + "@sentry/utils": "7.120.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sentry/types": { + "version": "7.120.3", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.120.3.tgz", + "integrity": "sha512-C4z+3kGWNFJ303FC+FxAd4KkHvxpNFYAFN8iMIgBwJdpIl25KZ8Q/VdGn0MLLUEHNLvjob0+wvwlcRBBNLXOow==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/utils": { + "version": "7.120.3", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.120.3.tgz", + "integrity": "sha512-UDAOQJtJDxZHQ5Nm1olycBIsz2wdGX8SdzyGVHmD8EOQYAeDZQyIlQYohDe9nazdIOQLZCIc3fU0G9gqVLkaGQ==", + "license": "MIT", + "dependencies": { + "@sentry/types": "7.120.3" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "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, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "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" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/laravel-vite-plugin": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.7.8.tgz", + "integrity": "sha512-HWYqpQYHR3kEQ1LsHX7gHJoNNf0bz5z5mDaHBLzS+PGLCTmYqlU5/SZyeEgObV7z7bC/cnStYcY9H1DI1D5Udg==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "vite-plugin-full-reload": "^1.0.5" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "license": "Apache-2.0", + "dependencies": { + "lie": "3.1.1" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "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, + "license": "MIT" + }, + "node_modules/rollup": { + "version": "3.29.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vite": { + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", + "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "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, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "picomatch": "^2.3.1" + } + } + } +} diff --git a/package.json b/package.json index e543e0d..8360ac0 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,9 @@ "devDependencies": { "axios": "^1.1.2", "laravel-vite-plugin": "^0.7.5", - "vite": "^4.0.0" + "vite": "^4.5.3" + }, + "dependencies": { + "@sentry/browser": "^7.40.0" } } diff --git a/public/ai.txt b/public/ai.txt new file mode 100644 index 0000000..81e3a83 --- /dev/null +++ b/public/ai.txt @@ -0,0 +1,104 @@ +# +# ai.txt +# Generated by Empathy First Media Digital Marketing Agency +# https://EmpathyFirstMedia.com +# + +User-Agent: * + +# Text Permissions +Disallow: *.txt +Disallow: *.pdf +Disallow: *.doc +Disallow: *.docx +Disallow: *.odt +Disallow: *.rtf +Disallow: *.tex +Disallow: *.wks +Disallow: *.wpd +Disallow: *.wps +Disallow: *.html + +# Images Permissions +Disallow: *.bmp +Disallow: *.gif +Disallow: *.ico +Disallow: *.jpeg +Disallow: *.jpg +Disallow: *.png +Disallow: *.svg +Disallow: *.tif +Disallow: *.tiff +Disallow: *.webp + +# Audio Permissions +Disallow: *.aac +Disallow: *.aiff +Disallow: *.amr +Disallow: *.flac +Disallow: *.m4a +Disallow: *.mp3 +Disallow: *.oga +Disallow: *.opus +Disallow: *.wav +Disallow: *.wma + +# Video Permissions +Disallow: *.mp4 +Disallow: *.webm +Disallow: *.ogg +Disallow: *.avi +Disallow: *.mov +Disallow: *.wmv +Disallow: *.flv +Disallow: *.mkv + +# Code Permissions +Disallow: *.py +Disallow: *.js +Disallow: *.java +Disallow: *.c +Disallow: *.cpp +Disallow: *.cs +Disallow: *.h +Disallow: *.css +Disallow: *.php +Disallow: *.swift +Disallow: *.go +Disallow: *.rb +Disallow: *.pl +Disallow: *.sh +Disallow: *.sql + +# Disallow +Disallow: / +# -------------------------- +# Empathy First Media AI.TXT +# -------------------------- + +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@& &@@@@@@@@@@@@@ +# @@@@@@@@@@@@@& &@@@@@@@@@@@@@ +# @@@@@@@@@@@@@& &@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@&GGGGGGGGGGGGGGGGGGG#@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@& @@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@& @@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@& &@@@@@@@@@@@@@ +# @@@@@@@@@@@@@& &@@@@@@@@@@@@@ +# @@@@@@@@@@@@@& &@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + +# This ai.txt file was created by Empathy First Media. +# https://empathyfirstmedia.com/ diff --git a/public/css/colorschemes/catppuccin-macchiato.css b/public/css/colorschemes/catppuccin-macchiato.css deleted file mode 100644 index 3409b30..0000000 --- a/public/css/colorschemes/catppuccin-macchiato.css +++ /dev/null @@ -1,12 +0,0 @@ -:root { - --background: #181926; - --foreground: #cad3f5; - --links: #8aadf4; - --warning: #ff7272; - --warning-box-bg: #f64a3c; - --warning-box-border: #c81a11; -} - -html { - color-scheme: dark; -} diff --git a/public/css/dirlist.css b/public/css/dirlist.css index cd9c1d6..b63c94b 100644 --- a/public/css/dirlist.css +++ b/public/css/dirlist.css @@ -1,38 +1,54 @@ -:root { - --background: #1c1b22; - --foreground: #dddddd; -} - -html { - color-scheme: dark; -} - body { - background-color: var(--background); - color: var(--foreground); + color: #2f2f42; + margin: 20px; + background: #80c9fa url("/images/peek.png") no-repeat bottom right 10px fixed; +} + +img { + image-rendering: pixelated; } a { - color: #99f; - text-decoration: none; + color: #2f2f42; + text-decoration: underline dotted; } a:hover { - text-decoration: underline; + color: #2f2f42; + text-decoration: underline solid; } h1#indextitle { - font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; - margin-bottom: 0; + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", + sans-serif; + margin: 0; } -tr, th, td { - font-family: monospace; - font-size: 12pt; - padding: 0 5px; +tr, +th, +td { + font-family: monospace; + font-size: 12pt; + padding: 0 15px; +} + +tr td:nth-child(2) { + padding-left: 0; } address { - font-family: sans-serif; - font-size: 12pt + font-family: sans-serif; + font-size: 12pt; } + +.description { + font-style: italic; + font-size: 90%; +} + +hr { + border: none; + border-bottom: 2px solid #2f2f42; +} + diff --git a/public/css/highlight/tomorrow-night-bright.css b/public/css/highlight/tomorrow-night-bright.css deleted file mode 100644 index f909618..0000000 --- a/public/css/highlight/tomorrow-night-bright.css +++ /dev/null @@ -1,70 +0,0 @@ -/* Tomorrow Night Bright Theme */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - -/* Tomorrow Comment */ -.hljs-comment, -.hljs-quote { - color: #969896; -} - -/* Tomorrow Red */ -.hljs-variable, -.hljs-template-variable, -.hljs-tag, -.hljs-name, -.hljs-selector-id, -.hljs-selector-class, -.hljs-regexp, -.hljs-deletion { - color: #d54e53; -} - -/* Tomorrow Orange */ -.hljs-number, -.hljs-built_in, -.hljs-literal, -.hljs-type, -.hljs-params, -.hljs-meta, -.hljs-link { - color: #e78c45; -} - -/* Tomorrow Yellow */ -.hljs-attribute { - color: #e7c547; -} - -/* Tomorrow Green */ -.hljs-string, -.hljs-symbol, -.hljs-bullet, -.hljs-addition { - color: #b9ca4a; -} - -/* Tomorrow Blue */ -.hljs-title, -.hljs-section { - color: #7aa6da; -} - -/* Tomorrow Purple */ -.hljs-keyword, -.hljs-selector-tag { - color: #c397d8; -} - -.hljs { - background: black; - color: #eaeaea; -} - -.hljs-emphasis { - font-style: italic; -} - -.hljs-strong { - font-weight: bold; -} diff --git a/public/css/master.css b/public/css/master.css index f36a500..f8ee557 100644 --- a/public/css/master.css +++ b/public/css/master.css @@ -1,388 +1,359 @@ -/*@import "colorschemes/catppuccin-macchiato.css";*/ +:root { + --background: hsl(214, 67%, 85%); + --foreground: hsl(214, 20%, 14%); + --border-color: hsl(214, 96%, 48%); + --border: var(--border-color) 2px solid; + --shadow-color: hsla(214, 96%, 43%, 0.4); + --shadow: drop-shadow(8px 8px var(--shadow-color)); + --shadow-small: drop-shadow(3px 3px var(--shadow-color)); + --links: hsl(214, 27%, 22%); + --links-hover: hsl(214, 27%, 15%); + --table-header: hsla(214, 96%, 43%, 0.2); +} + +/* ───────────────────────────────────── Fonts ────────────────────────────────────── */ +@font-face { + font-family: "PT Sans"; + src: url("/fonts/PTSans-Regular.ttf") format("truetype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "PT Sans"; + src: url("/fonts/PTSans-Italic.ttf") format("truetype"); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: "PT Sans"; + src: url("/fonts/PTSans-Bold.ttf") format("truetype"); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: "PT Sans"; + src: url("/fonts/PTSans-BoldItalic.ttf") format("truetype"); + font-weight: bold; + font-style: italic; +} + +@font-face { + font-family: "PT Serif"; + src: url("/fonts/PTSerif-Regular.ttf") format("truetype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "PT Serif"; + src: url("/fonts/PTSerif-Italic.ttf") format("truetype"); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: "PT Serif"; + src: url("/fonts/PTSerif-Bold.ttf") format("truetype"); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: "PT Serif"; + src: url("/fonts/PTSerif-BoldItalic.ttf") format("truetype"); + font-weight: bold; + font-style: italic; +} + +/* ───────────────────────────────────── Pride ────────────────────────────────────── */ +#prideflag { + position: fixed; + top: 0; + right: 0; + width: 120px; + transform-origin: 100% 0; + transition: transform .5s cubic-bezier(.32,1.63,.41,1.01); + z-index: 8008135; +} +#prideflag:hover { + transform: scale(110%); +} +#prideflag:active { + transform: scale(110%); +} +#prideflag * { + pointer-events: all; +} + +/* ───────────────────────────────────── Global ───────────────────────────────────── */ +html { + height: 100%; + color-scheme: light; + scrollbar-color: var(--border-color) var(--background); +} body { - font-family: sans-serif; - margin: 0; color: var(--foreground); - background-color: var(--background); - text-align: left; + min-height: 100%; + background: url('/images/roscoe_tile.jpg'); + padding: 5px; + font-family: "PT Serif", serif; } -ul { - list-style-type: square; -} - -div.page { - min-width: 780px; - max-width: 800px; - padding-left: 0.5em; - padding-right: 0.5em; - margin: auto; -} - -h1.inline { - margin-top: 0; - clear: none; - display: inline; +img.logo_paw { + filter: grayscale(100%) sepia(100%) hue-rotate(180deg) saturate(300%); } h1, h2, -h3 { - margin-top: 1em; - clear: left; +h3, +h4, +h5, +h6 { + margin: 20px 0 0 0; } -img { - border: none; - max-width: 100%; -} - -img.right { - float: right; - margin-left: 0.5em; -} - -table.form td { - border: none; -} - -/* -------------------------------------------------------------------------- */ - -div.code-block { - background-color: var(--background); - border: 2px solid var(--foreground); - padding: 10px; - display: inline-block; - text-align: left; - max-width: 90%; - min-width: 400px; - margin: 10px; -} - -div.code-block hr { - margin-top: 5px; - margin-bottom: 5px; -} - -div.code-block h1 { +p, +ul, +ol, +dl, +menu, +dir { margin: 0; - font-family: monospace; } -div.code-block h1 small { - color: var(--foreground); - font-size: 12px; -} - -div.code-block pre hr { - margin-bottom: 5px; -} - -div.code-block pre code { - background-color: var(--background); -} - -pre { - display: inline; - max-width: 95%; - overflow: auto; -} - -.header a { - text-decoration: none; -} - -.theme-selector { - text-align: right; - vertical-align: middle; -} - -.nav-wrapper { - display: grid; - grid-template-columns: repeat(2, 1fr); - grid-template-rows: 1fr; - grid-column-gap: 0; - grid-row-gap: 0; -} - -.theme-selector label { - font-weight: bold; -} - -.theme-selector label::after { - content: ': '; -} - -nav { - margin-bottom: 0.3em; - text-align: left; -} - -nav img { - width: 32px; -} - -nav h1 { - font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, - Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", - sans-serif; - font-weight: normal; - font-size: 30px; - margin: 10px 10px 10px 0; -} - -div.date { - text-align: center; -} - -div.note { - font-style: italic; -} - -table { - border-collapse: collapse; - border-color: var(--foreground); -} - -table.weather th { - font-weight: normal; -} - -table.weather td { - font-weight: bold; - text-align: right; -} - -div.rss { - position: absolute; - top: 1em; - right: 1em; -} - -div.archived { - margin-top: 0.5em; -} - -div.archived span.date { - font-style: italic; - margin-right: 0.2em; -} - -video { - max-width: 100%; -} - -table td { - border: 1px solid var(--foreground); -} - -td { - padding: 0; - vertical-align: top; -} - -.header .title { - color: var(--foreground); -} - -.header { - font-size: 100%; - font-weight: normal; - padding-bottom: 0; - text-align: center; -} - -h1 { - font-size: 150%; -} -h1 { - font-size: 150%; -} - -h2 { - font-size: 130%; -} - -h3 { - font-size: 115%; -} - -table.computers { - width: 100%; -} - -td.computer { - width: 50%; - border: 0; -} - -div.footer { - text-align: center; - margin-bottom: 5px; -} - -table.commits tr td { +hr { border: none; - padding-right: 5px; + border-top: var(--border); } a { color: var(--links); - text-decoration: none; -} - -table.gb-entry-form tr td { - border: none; -} - -table.gb-entry-form tr td label { - padding-right: 5px; -} - -table.gb-entry-form tr td span.text-danger { - padding-left: 5px; - color: var(--warning); -} - -table.gb-entry-form tr td textarea, -table.gb-entry-form tr td input { - margin-bottom: 5px; -} - -table.gb-entry-form-container { - width: 100%; -} - -table.gb-entry-form-container tr td { - border: none; - vertical-align: top; -} - -table.gb-entry-form-container tr td p, -table.gb-entry-form-container tr td ul { - margin: 0; -} - -table.gb-entry-form tbody tr td textarea { - width: 210px; -} - -table.gb-entry tr td { - border: solid var(--foreground) 1px; - width: 500px; - vertical-align: top; - padding: 5px; -} - -table.gb-entry { - margin-bottom: 5px; -} - -table.gb-admin { - margin-bottom: 5px; - width: 500px; - border: var(--foreground) solid; -} - -table.gb-admin tr td { - border-right: none; - border-bottom: none; - vertical-align: top; - padding: 5px; -} - -table.gb-admin tr td.gb-del { - border-left: none; - vertical-align: top; - padding: 5px; - width: 32px; -} - -table.gb-admin tr td.gb-message { - border-top: none; - vertical-align: top; - padding: 5px; -} - -table.info-table tr td { - border: none; - padding-right: 5px; -} - -table.info-table tr td h1, -table.info-table tr td h2, -table.info-table tr td small { - margin: 0; -} - -caption h1, -caption h2 { - margin: 0; -} - -caption { - text-align: left; -} - -table.info-table tr td small { - margin-bottom: 5px; -} - -.hljs { - background: none !important; -} - -.me img { - float: right; - margin: 5px; -} - -.me p { - text-align: justify; + text-decoration: underline dotted; } a:hover { - text-decoration: underline; + color: var(--links-hover); + text-decoration: underline solid; } -.computer { - width: 100%; +div.page-container { + width: 800px; + margin: 5px auto; } -.computer td { - border: none; +div.page-container > div { + background-color: var(--background); + filter: var(--shadow); + padding: 10px; + border: var(--border); + margin-bottom: 20px; } -.computer h1, -.computer hr { +div.page-container > div:last-child { + margin-bottom: 0; +} + +header { + display: grid; + grid-template-columns: 64px 1fr; + grid-template-rows: 1fr; + grid-column-gap: 15px; + grid-row-gap: 0; + align-items: center; +} + +header img { + image-rendering: pixelated; +} + +header h1 { margin: 0; + font-style: italic; } -.computer .computer-image { - width: 256px; +header h1, +header p { + display: inline; } -.spec { - padding-left: 20px; +main>div { + position: relative; } -.spec-title { - font-weight: bold; +main>div::after { + display: block; + content: ""; + clear: both; } -.computer-specs { - margin-top: 5px; +div#footer { + display: grid; + grid-template-columns: auto 1fr; + grid-template-rows: 1fr; + grid-column-gap: 0; + grid-row-gap: 0; + align-items: center; } -.error-box { - width: 500px; - border: 5px solid var(--warning-box-border); - background-color: var(--warning-box-bg); +div#footer div:last-child { + text-align: right; +} + +div#footer div:last-child img { + image-rendering: pixelated; + margin: 0; + padding: 0; + width: 88px; + height: 31px; +} + +/** Wah! **/ +div.wah { + float: right; + border: var(--border); padding: 5px; + filter: var(--shadow-small); + background-color: var(--background); } -.error-box a, -.error-box p { + +div.wah img { + display: block; +} + +div.wah h3, +div.wah p { + text-align: center; + margin: 5px 0; + font-style: italic; +} + +div.wah p { + margin-bottom: 0; +} + +div.wah img { + width: 250px; +} + +/** Guestbook **/ +table.form input, +table.form textarea, +table.form button { + background-color: var(--background); + border: var(--border); + filter: var(--shadow-small); +} + +table.form input, +table.form textarea { + width: 250px; +} + +table.form textarea { + resize: none; +} + +table.form button:hover { + background-color: var(--border-color); + color: var(--background); + filter: none; +} + +table.form tr td, +table.gb-entry-form-container td:last-child { + vertical-align: top; +} + +div.gb-entry { + border: var(--border); + filter: var(--shadow-small); + background-color: var(--background); + width: 75%; + padding: 10px; +} + +/** Music **/ +table.music-top10 { + border: var(--border); + filter: var(--shadow-small); + background-color: var(--background); + border-collapse: collapse; +} + +table.music-top10 th, +table.music-top10 td { + padding: 2px 5px; +} + +table.music-top10 th:first-child { + text-align: left; +} + +table.music-top10 tr:first-child th { + border-right: var(--border); + border-bottom: var(--border); +} + +table.music-top10 tr:first-child th:last-child { + border-right: none; +} + +table.music-top10 tr td { + border-right: var(--border); +} + +table.music-top10 tr td:last-child { + border-right: none; +} +table.music-top10 tr:first-child th, +table.music-top10 tr td:first-child { + background-color: var(--table-header); +} + +div.current-track { + display: grid; + grid-template-columns: 180px auto; + grid-template-rows: 1fr; + grid-column-gap: 10px; + align-items: center; +} + +div.current-track img { + float: left; + filter: var(--shadow-small); + border: var(--border); + width: 174px; + height: 174px; +} + +/** Bookmarks **/ +div.bookmark-category:first-child h2 { margin: 0; - color: var(--foreground) +} + + + +/* ────────────────────────────────── Rosco & Leko ────────────────────────────────── */ +div.rosco-leko-gallery { + display: flex; + flex-wrap: wrap; + align-items: flex-start; +} + +div.rosco-leko-gallery > div { + border: var(--border); + padding: 5px; + filter: var(--shadow-small); + background-color: var(--background); + margin: 10px; + height: auto; +} + +div.rosco-leko-gallery > div, +div.rosco-leko-gallery > div img { + max-width: 220px; } diff --git a/public/css/minimal.css b/public/css/minimal.css index 93d31f1..697673f 100644 --- a/public/css/minimal.css +++ b/public/css/minimal.css @@ -1,25 +1,13 @@ -html { - color-scheme: dark; -} - -body { - font-family: sans-serif; - margin: 0; - margin-left: 10px; - color: #cad3f5; - background-color: #181926; -} - -table.gb-entry_details tr td { - padding-right: 5px; -} - -* { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; } -html { color-scheme: dark; } -body { color: #cad3f5; background-color: #181926; } -h1, h2, ul, p { margin: 0; } +html { color-scheme: light; } +body { color: #2a271c; background-color: #f2efbd; font-family: serif; } +h1, h2, h4, ul, p { margin: 0; } h1 { font-weight: normal; } +h4 { margin-bottom: 5px; } ul { padding: 5px 30px; } -a { color: #8aadf4; text-decoration: none; } -a:hover { text-decoration: underline; } -code { font-family: monospace; font-size: 24px; } +a { color: hsl(183, 93%, 27%); text-decoration: underline dotted; } +a:hover { color: hsl(183, 93%, 15%); text-decoration: underline solid; } +code { font-family: monospace; } +code.addr { font-size: 24px; } +table { border: #f27405 2px solid; background-color: #f2efbd; filter: drop-shadow(3px 3px hsla(11, 96%, 43%, 0.4)); } +img { border: #f27405 2px solid; filter: drop-shadow(3px 3px hsla(11, 96%, 43%, 0.4)); } +hr { border: none; border-bottom: 2px solid #f27405; } diff --git a/public/favicon-128x128.png b/public/favicon-128x128.png index 0d6300c..28251df 100644 Binary files a/public/favicon-128x128.png and b/public/favicon-128x128.png differ diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png index 0d067a5..388ddf4 100644 Binary files a/public/favicon-16x16.png and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png index f6a32dc..2252f28 100644 Binary files a/public/favicon-32x32.png and b/public/favicon-32x32.png differ diff --git a/public/favicon.ico b/public/favicon.ico index 28434f3..48ce013 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/fonts/PTSans-Bold.ttf b/public/fonts/PTSans-Bold.ttf new file mode 100644 index 0000000..f82c3bd Binary files /dev/null and b/public/fonts/PTSans-Bold.ttf differ diff --git a/public/fonts/PTSans-BoldItalic.ttf b/public/fonts/PTSans-BoldItalic.ttf new file mode 100644 index 0000000..3e6cf4e Binary files /dev/null and b/public/fonts/PTSans-BoldItalic.ttf differ diff --git a/public/fonts/PTSans-Italic.ttf b/public/fonts/PTSans-Italic.ttf new file mode 100644 index 0000000..b06ce61 Binary files /dev/null and b/public/fonts/PTSans-Italic.ttf differ diff --git a/public/fonts/PTSans-Regular.ttf b/public/fonts/PTSans-Regular.ttf new file mode 100644 index 0000000..adaf671 Binary files /dev/null and b/public/fonts/PTSans-Regular.ttf differ diff --git a/public/fonts/PTSerif-Bold.ttf b/public/fonts/PTSerif-Bold.ttf new file mode 100644 index 0000000..36d47eb Binary files /dev/null and b/public/fonts/PTSerif-Bold.ttf differ diff --git a/public/fonts/PTSerif-BoldItalic.ttf b/public/fonts/PTSerif-BoldItalic.ttf new file mode 100644 index 0000000..fa30e55 Binary files /dev/null and b/public/fonts/PTSerif-BoldItalic.ttf differ diff --git a/public/fonts/PTSerif-Italic.ttf b/public/fonts/PTSerif-Italic.ttf new file mode 100644 index 0000000..9b110a4 Binary files /dev/null and b/public/fonts/PTSerif-Italic.ttf differ diff --git a/public/fonts/PTSerif-Regular.ttf b/public/fonts/PTSerif-Regular.ttf new file mode 100644 index 0000000..f87c0f1 Binary files /dev/null and b/public/fonts/PTSerif-Regular.ttf differ diff --git a/public/images/background.jpg b/public/images/background.jpg new file mode 100644 index 0000000..4e94b27 Binary files /dev/null and b/public/images/background.jpg differ diff --git a/public/images/buttons/aliasing.png b/public/images/buttons/aliasing.png new file mode 100644 index 0000000..27b53e9 Binary files /dev/null and b/public/images/buttons/aliasing.png differ diff --git a/public/images/buttons/browser.gif b/public/images/buttons/browser.gif deleted file mode 100644 index 3f73e3f..0000000 Binary files a/public/images/buttons/browser.gif and /dev/null differ diff --git a/public/images/buttons/cnfunknown.gif b/public/images/buttons/cnfunknown.gif new file mode 100644 index 0000000..b8e9239 Binary files /dev/null and b/public/images/buttons/cnfunknown.gif differ diff --git a/public/images/buttons/csshard.gif b/public/images/buttons/csshard.gif new file mode 100644 index 0000000..24fb8d5 Binary files /dev/null and b/public/images/buttons/csshard.gif differ diff --git a/public/images/buttons/html_learn_it_today.gif b/public/images/buttons/html_learn_it_today.gif deleted file mode 100644 index dd832a0..0000000 Binary files a/public/images/buttons/html_learn_it_today.gif and /dev/null differ diff --git a/public/images/buttons/juli.gif b/public/images/buttons/juli.gif new file mode 100644 index 0000000..4ff0364 Binary files /dev/null and b/public/images/buttons/juli.gif differ diff --git a/public/images/buttons/nukeieani.gif b/public/images/buttons/nukeieani.gif deleted file mode 100644 index e110127..0000000 Binary files a/public/images/buttons/nukeieani.gif and /dev/null differ diff --git a/public/images/buttons/paws-aliased.png b/public/images/buttons/paws-aliased.png new file mode 100644 index 0000000..a7d1b22 Binary files /dev/null and b/public/images/buttons/paws-aliased.png differ diff --git a/public/images/buttons/servfail.png b/public/images/buttons/servfail.png new file mode 100644 index 0000000..acfebd0 Binary files /dev/null and b/public/images/buttons/servfail.png differ diff --git a/public/images/buttons/thnlqd.png b/public/images/buttons/thnlqd.png new file mode 100644 index 0000000..ec17caa Binary files /dev/null and b/public/images/buttons/thnlqd.png differ diff --git a/public/images/buttons/transrights.gif b/public/images/buttons/transrights.gif new file mode 100644 index 0000000..7f705aa Binary files /dev/null and b/public/images/buttons/transrights.gif differ diff --git a/public/images/buttons/valid-html401-blue.png b/public/images/buttons/valid-html401-blue.png deleted file mode 100644 index dd20e49..0000000 Binary files a/public/images/buttons/valid-html401-blue.png and /dev/null differ diff --git a/public/images/buttons/vcss-blue.gif b/public/images/buttons/vcss-blue.gif deleted file mode 100644 index 3ab6b83..0000000 Binary files a/public/images/buttons/vcss-blue.gif and /dev/null differ diff --git a/public/images/buttons/wah.png b/public/images/buttons/wah.png new file mode 100644 index 0000000..65e3f74 Binary files /dev/null and b/public/images/buttons/wah.png differ diff --git a/public/images/buttons/wiby.gif b/public/images/buttons/wiby.gif deleted file mode 100644 index 87a6a75..0000000 Binary files a/public/images/buttons/wiby.gif and /dev/null differ diff --git a/public/images/buttons/x86.gif b/public/images/buttons/x86.gif new file mode 100644 index 0000000..f271daa Binary files /dev/null and b/public/images/buttons/x86.gif differ diff --git a/public/images/calculators/casio-fx-120/1s.jpeg b/public/images/calculators/casio-fx-120/1s.jpeg deleted file mode 100644 index 6b84854..0000000 Binary files a/public/images/calculators/casio-fx-120/1s.jpeg and /dev/null differ diff --git a/public/images/calculators/casio-fx-120/2s.jpeg b/public/images/calculators/casio-fx-120/2s.jpeg deleted file mode 100644 index 1a663bb..0000000 Binary files a/public/images/calculators/casio-fx-120/2s.jpeg and /dev/null differ diff --git a/public/images/calculators/casio-fx-120/3s.jpeg b/public/images/calculators/casio-fx-120/3s.jpeg deleted file mode 100644 index 076d147..0000000 Binary files a/public/images/calculators/casio-fx-120/3s.jpeg and /dev/null differ diff --git a/public/images/calculators/casio-fx-120/4s.jpeg b/public/images/calculators/casio-fx-120/4s.jpeg deleted file mode 100644 index 988ab31..0000000 Binary files a/public/images/calculators/casio-fx-120/4s.jpeg and /dev/null differ diff --git a/public/images/calculators/casio-fx-82/1s.jpeg b/public/images/calculators/casio-fx-82/1s.jpeg deleted file mode 100644 index 69216ac..0000000 Binary files a/public/images/calculators/casio-fx-82/1s.jpeg and /dev/null differ diff --git a/public/images/calculators/casio-fx-82/2s.jpeg b/public/images/calculators/casio-fx-82/2s.jpeg deleted file mode 100644 index adf3e2e..0000000 Binary files a/public/images/calculators/casio-fx-82/2s.jpeg and /dev/null differ diff --git a/public/images/calculators/casio-fx-82/3s.jpeg b/public/images/calculators/casio-fx-82/3s.jpeg deleted file mode 100644 index 87c6f16..0000000 Binary files a/public/images/calculators/casio-fx-82/3s.jpeg and /dev/null differ diff --git a/public/images/calculators/casio-fx-82/4s.jpeg b/public/images/calculators/casio-fx-82/4s.jpeg deleted file mode 100644 index 5a09e97..0000000 Binary files a/public/images/calculators/casio-fx-82/4s.jpeg and /dev/null differ diff --git a/public/images/calculators/casio-fx-cg50/1s.jpeg b/public/images/calculators/casio-fx-cg50/1s.jpeg deleted file mode 100644 index 6850678..0000000 Binary files a/public/images/calculators/casio-fx-cg50/1s.jpeg and /dev/null differ diff --git a/public/images/calculators/casio-fx-cg50/2s.jpeg b/public/images/calculators/casio-fx-cg50/2s.jpeg deleted file mode 100644 index 14dd3cf..0000000 Binary files a/public/images/calculators/casio-fx-cg50/2s.jpeg and /dev/null differ diff --git a/public/images/calculators/casio-fx-cg50/3s.jpeg b/public/images/calculators/casio-fx-cg50/3s.jpeg deleted file mode 100644 index c0c87e1..0000000 Binary files a/public/images/calculators/casio-fx-cg50/3s.jpeg and /dev/null differ diff --git a/public/images/calculators/casio-fx-cg50/4s.jpeg b/public/images/calculators/casio-fx-cg50/4s.jpeg deleted file mode 100644 index fcdac2a..0000000 Binary files a/public/images/calculators/casio-fx-cg50/4s.jpeg and /dev/null differ diff --git a/public/images/calculators/texet-880/1s.jpeg b/public/images/calculators/texet-880/1s.jpeg deleted file mode 100644 index 8454640..0000000 Binary files a/public/images/calculators/texet-880/1s.jpeg and /dev/null differ diff --git a/public/images/calculators/texet-880/2s.jpeg b/public/images/calculators/texet-880/2s.jpeg deleted file mode 100644 index 707b37c..0000000 Binary files a/public/images/calculators/texet-880/2s.jpeg and /dev/null differ diff --git a/public/images/calculators/texet-880/3s.jpeg b/public/images/calculators/texet-880/3s.jpeg deleted file mode 100644 index a5e5f1e..0000000 Binary files a/public/images/calculators/texet-880/3s.jpeg and /dev/null differ diff --git a/public/images/calculators/texet-880/4s.jpeg b/public/images/calculators/texet-880/4s.jpeg deleted file mode 100644 index eedc9be..0000000 Binary files a/public/images/calculators/texet-880/4s.jpeg and /dev/null differ diff --git a/public/images/calculators/ti-30/1s.jpeg b/public/images/calculators/ti-30/1s.jpeg deleted file mode 100644 index fd34a30..0000000 Binary files a/public/images/calculators/ti-30/1s.jpeg and /dev/null differ diff --git a/public/images/calculators/ti-30/2s.jpeg b/public/images/calculators/ti-30/2s.jpeg deleted file mode 100644 index 23804f5..0000000 Binary files a/public/images/calculators/ti-30/2s.jpeg and /dev/null differ diff --git a/public/images/calculators/ti-30/3s.jpeg b/public/images/calculators/ti-30/3s.jpeg deleted file mode 100644 index e0d1c27..0000000 Binary files a/public/images/calculators/ti-30/3s.jpeg and /dev/null differ diff --git a/public/images/calculators/ti-30/4s.jpeg b/public/images/calculators/ti-30/4s.jpeg deleted file mode 100644 index b0c3d44..0000000 Binary files a/public/images/calculators/ti-30/4s.jpeg and /dev/null differ diff --git a/public/images/embeds/pandamonium.png b/public/images/embeds/pandamonium.png new file mode 100644 index 0000000..ec4f22e Binary files /dev/null and b/public/images/embeds/pandamonium.png differ diff --git a/public/images/icons/fav/ico/calc.ico b/public/images/icons/fav/ico/calc.ico deleted file mode 100755 index b304c47..0000000 Binary files a/public/images/icons/fav/ico/calc.ico and /dev/null differ diff --git a/public/images/icons/fav/ico/computer.ico b/public/images/icons/fav/ico/computer.ico deleted file mode 100644 index 01f4a74..0000000 Binary files a/public/images/icons/fav/ico/computer.ico and /dev/null differ diff --git a/public/images/icons/fav/ico/favicon.ico b/public/images/icons/fav/ico/favicon.ico deleted file mode 100755 index 848cc6f..0000000 Binary files a/public/images/icons/fav/ico/favicon.ico and /dev/null differ diff --git a/public/images/icons/fav/ico/globe.ico b/public/images/icons/fav/ico/globe.ico deleted file mode 100644 index 55ae5a3..0000000 Binary files a/public/images/icons/fav/ico/globe.ico and /dev/null differ diff --git a/public/images/icons/fav/ico/help-book.ico b/public/images/icons/fav/ico/help-book.ico deleted file mode 100644 index a156820..0000000 Binary files a/public/images/icons/fav/ico/help-book.ico and /dev/null differ diff --git a/public/images/icons/fav/png/calc.png b/public/images/icons/fav/png/calc.png deleted file mode 100644 index fcbf0ea..0000000 Binary files a/public/images/icons/fav/png/calc.png and /dev/null differ diff --git a/public/images/icons/fav/png/computer.png b/public/images/icons/fav/png/computer.png deleted file mode 100644 index d53eb99..0000000 Binary files a/public/images/icons/fav/png/computer.png and /dev/null differ diff --git a/public/images/icons/fav/png/globe.png b/public/images/icons/fav/png/globe.png deleted file mode 100644 index 21b4b17..0000000 Binary files a/public/images/icons/fav/png/globe.png and /dev/null differ diff --git a/public/images/icons/fav/png/help-book.png b/public/images/icons/fav/png/help-book.png deleted file mode 100644 index 845863a..0000000 Binary files a/public/images/icons/fav/png/help-book.png and /dev/null differ diff --git a/public/images/icons/nav/bookmarks.png b/public/images/icons/nav/bookmarks.png deleted file mode 100644 index 1409930..0000000 Binary files a/public/images/icons/nav/bookmarks.png and /dev/null differ diff --git a/public/images/icons/nav/computers.png b/public/images/icons/nav/computers.png deleted file mode 100644 index e6dda18..0000000 Binary files a/public/images/icons/nav/computers.png and /dev/null differ diff --git a/public/images/icons/nav/guestbook.png b/public/images/icons/nav/guestbook.png deleted file mode 100644 index a1f7fc4..0000000 Binary files a/public/images/icons/nav/guestbook.png and /dev/null differ diff --git a/public/images/icons/nav/home.png b/public/images/icons/nav/home.png deleted file mode 100644 index 304ab01..0000000 Binary files a/public/images/icons/nav/home.png and /dev/null differ diff --git a/public/images/icons/nav/login.png b/public/images/icons/nav/login.png deleted file mode 100644 index 77f7e71..0000000 Binary files a/public/images/icons/nav/login.png and /dev/null differ diff --git a/public/images/icons/nav/mail.png b/public/images/icons/nav/mail.png deleted file mode 100644 index 5249691..0000000 Binary files a/public/images/icons/nav/mail.png and /dev/null differ diff --git a/public/images/icons/nav/music.png b/public/images/icons/nav/music.png deleted file mode 100644 index 748094a..0000000 Binary files a/public/images/icons/nav/music.png and /dev/null differ diff --git a/public/images/icons/nav/pubfiles.png b/public/images/icons/nav/pubfiles.png deleted file mode 100644 index 06ba84a..0000000 Binary files a/public/images/icons/nav/pubfiles.png and /dev/null differ diff --git a/public/images/icons/nav/repo.png b/public/images/icons/nav/repo.png deleted file mode 100644 index 27ade1c..0000000 Binary files a/public/images/icons/nav/repo.png and /dev/null differ diff --git a/public/images/icons/nav/weather.png b/public/images/icons/nav/weather.png deleted file mode 100644 index f087e56..0000000 Binary files a/public/images/icons/nav/weather.png and /dev/null differ diff --git a/public/images/login-background.png b/public/images/login-background.png deleted file mode 100644 index 0dc7bfc..0000000 Binary files a/public/images/login-background.png and /dev/null differ diff --git a/public/images/logo-v2.gif b/public/images/logo-v2.gif new file mode 100755 index 0000000..afd32b8 Binary files /dev/null and b/public/images/logo-v2.gif differ diff --git a/public/images/logo-v2.png b/public/images/logo-v2.png new file mode 100644 index 0000000..0edda8f Binary files /dev/null and b/public/images/logo-v2.png differ diff --git a/public/images/logo.png b/public/images/logo.png index a20bab1..bbd099b 100644 Binary files a/public/images/logo.png and b/public/images/logo.png differ diff --git a/public/images/pandamonium-legacy/filters.jpg b/public/images/pandamonium-legacy/filters.jpg new file mode 100644 index 0000000..3a7a3ab Binary files /dev/null and b/public/images/pandamonium-legacy/filters.jpg differ diff --git a/public/images/pandamonium-legacy/frontrowseat.jpg b/public/images/pandamonium-legacy/frontrowseat.jpg new file mode 100644 index 0000000..e99addf Binary files /dev/null and b/public/images/pandamonium-legacy/frontrowseat.jpg differ diff --git a/public/images/pandamonium-legacy/gel-drawer.jpg b/public/images/pandamonium-legacy/gel-drawer.jpg new file mode 100644 index 0000000..ffe17bc Binary files /dev/null and b/public/images/pandamonium-legacy/gel-drawer.jpg differ diff --git a/public/images/pandamonium-legacy/lxdesk.jpg b/public/images/pandamonium-legacy/lxdesk.jpg new file mode 100644 index 0000000..7ac691e Binary files /dev/null and b/public/images/pandamonium-legacy/lxdesk.jpg differ diff --git a/public/images/pandamonium-legacy/pa_meister.jpg b/public/images/pandamonium-legacy/pa_meister.jpg new file mode 100644 index 0000000..e9b7bc8 Binary files /dev/null and b/public/images/pandamonium-legacy/pa_meister.jpg differ diff --git a/public/images/pandamonium-legacy/projectionist.jpg b/public/images/pandamonium-legacy/projectionist.jpg new file mode 100644 index 0000000..878ac82 Binary files /dev/null and b/public/images/pandamonium-legacy/projectionist.jpg differ diff --git a/public/images/pandamonium-legacy/technician.jpg b/public/images/pandamonium-legacy/technician.jpg new file mode 100644 index 0000000..f5708f0 Binary files /dev/null and b/public/images/pandamonium-legacy/technician.jpg differ diff --git a/public/images/pandamonium-legacy/three-of-them.jpg b/public/images/pandamonium-legacy/three-of-them.jpg new file mode 100644 index 0000000..7abffb9 Binary files /dev/null and b/public/images/pandamonium-legacy/three-of-them.jpg differ diff --git a/public/images/pandamonium-legacy/two-of-them.jpg b/public/images/pandamonium-legacy/two-of-them.jpg new file mode 100644 index 0000000..cdc8b30 Binary files /dev/null and b/public/images/pandamonium-legacy/two-of-them.jpg differ diff --git a/public/images/pandamonium/filters.jpg b/public/images/pandamonium/filters.jpg new file mode 100644 index 0000000..a19d958 Binary files /dev/null and b/public/images/pandamonium/filters.jpg differ diff --git a/public/images/pandamonium/frontrowseat.jpg b/public/images/pandamonium/frontrowseat.jpg new file mode 100644 index 0000000..17228a0 Binary files /dev/null and b/public/images/pandamonium/frontrowseat.jpg differ diff --git a/public/images/pandamonium/gel-drawer.jpg b/public/images/pandamonium/gel-drawer.jpg new file mode 100644 index 0000000..abdcc51 Binary files /dev/null and b/public/images/pandamonium/gel-drawer.jpg differ diff --git a/public/images/pandamonium/lxdesk.jpg b/public/images/pandamonium/lxdesk.jpg new file mode 100644 index 0000000..c85da3d Binary files /dev/null and b/public/images/pandamonium/lxdesk.jpg differ diff --git a/public/images/pandamonium/pa_meister.jpg b/public/images/pandamonium/pa_meister.jpg new file mode 100644 index 0000000..4a50065 Binary files /dev/null and b/public/images/pandamonium/pa_meister.jpg differ diff --git a/public/images/pandamonium/projectionist.jpg b/public/images/pandamonium/projectionist.jpg new file mode 100644 index 0000000..dcb1186 Binary files /dev/null and b/public/images/pandamonium/projectionist.jpg differ diff --git a/public/images/pandamonium/technician.jpg b/public/images/pandamonium/technician.jpg new file mode 100644 index 0000000..29b9e92 Binary files /dev/null and b/public/images/pandamonium/technician.jpg differ diff --git a/public/images/pandamonium/three-of-them.jpg b/public/images/pandamonium/three-of-them.jpg new file mode 100644 index 0000000..1f7eee0 Binary files /dev/null and b/public/images/pandamonium/three-of-them.jpg differ diff --git a/public/images/pandamonium/two-of-them.jpg b/public/images/pandamonium/two-of-them.jpg new file mode 100644 index 0000000..f149d73 Binary files /dev/null and b/public/images/pandamonium/two-of-them.jpg differ diff --git a/public/images/peek.png b/public/images/peek.png new file mode 100644 index 0000000..2647658 Binary files /dev/null and b/public/images/peek.png differ diff --git a/public/images/progress.svg b/public/images/progress.svg new file mode 100644 index 0000000..0e3bd33 --- /dev/null +++ b/public/images/progress.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + diff --git a/public/images/roscoe_tile.jpg b/public/images/roscoe_tile.jpg new file mode 100755 index 0000000..5bde1b1 Binary files /dev/null and b/public/images/roscoe_tile.jpg differ diff --git a/public/images/separator.gif b/public/images/separator.gif new file mode 100644 index 0000000..c8565df Binary files /dev/null and b/public/images/separator.gif differ diff --git a/public/images/wah-paw-v2.gif b/public/images/wah-paw-v2.gif new file mode 100644 index 0000000..6d879e0 Binary files /dev/null and b/public/images/wah-paw-v2.gif differ diff --git a/public/js/christmas/snow.js b/public/js/christmas/snow.js deleted file mode 100644 index 7e845d4..0000000 --- a/public/js/christmas/snow.js +++ /dev/null @@ -1,112 +0,0 @@ -/*! -// Snow.js - v0.0.3 -// kurisubrooks.com -// -// Modified by floppydisk -// - Changed snowflakes to "Heavy chevron snowflake" (U+2746) -// - Made snowflakes randomly rotate slowly either right or left -*/ - - -// Amount of Snowflakes -var snowMax = 80; - -// Snowflake Colours -var snowColor = [ - "#cad3f5", - "#a5adcb", - "#5b6078" -]; - -// Snow Entity -var snowEntity = "❆" //"•"; - -// Falling Velocity -var snowSpeed = 0.5; - -// Minimum Flake Size -var snowMinSize = 8; - -// Maximum Flake Size -var snowMaxSize = 24; - -// Refresh Rate (in milliseconds) -var snowRefresh = 50; - -// Additional Styles -var snowStyles = "cursor: default; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none;"; - -/* -// End of Configuration -// ---------------------------------------- -// Do not modify the code below this line -*/ - -var snow = [], - pos = [], - coords = [], - lefr = [], - marginBottom, - marginRight; - -function randomise(range) { - rand = Math.floor(range * Math.random()); - return rand; -} - -function initSnow() { - var snowSize = snowMaxSize - snowMinSize; - marginBottom = window.screen.height - 5; - marginRight = document.body.clientWidth - 15; - - for (i = 0; i <= snowMax; i++) { - coords[i] = 0; - lefr[i] = Math.random() * 15; - pos[i] = 0.03 + Math.random() / 10; - snow[i] = document.getElementById("flake" + i); - snow[i].style.fontFamily = "inherit"; - snow[i].size = randomise(snowSize) + snowMinSize; - snow[i].style.fontSize = snow[i].size + "px"; - snow[i].style.color = snowColor[randomise(snowColor.length)]; - snow[i].style.zIndex = 1000; - snow[i].sink = snowSpeed * snow[i].size / 5; - snow[i].posX = randomise(marginRight - snow[i].size); - snow[i].posY = randomise(2 * marginBottom - marginBottom - 2 * snow[i].size); - snow[i].style.left = snow[i].posX + "px"; - snow[i].style.top = snow[i].posY + "px"; - snow[i].rotation = Math.random() * 360; // add a random initial rotation - snow[i].direction = Math.random() > 0.5 ? 1 : -1; // add a random direction - } - - moveSnow(); -} - -function resize() { - marginBottom = window.screen.height - 5; - marginRight = document.body.clientWidth - 15; -} - -function moveSnow() { - for (i = 0; i <= snowMax; i++) { - coords[i] += pos[i]; - snow[i].posY += snow[i].sink; - snow[i].style.left = snow[i].posX + lefr[i] * Math.sin(coords[i]) + "px"; - snow[i].style.top = snow[i].posY + "px"; - - if (snow[i].posY >= marginBottom - 2 * snow[i].size || parseInt(snow[i].style.left) > (marginRight - 3 * lefr[i])) { - snow[i].posX = randomise(marginRight - snow[i].size); - snow[i].posY = 0; - } - snow[i].rotation += snow[i].sink * snow[i].direction; // increment rotation based on direction - snow[i].style.transform = "rotate(" + snow[i].rotation + "deg)"; // rotate the snowflake - } - - setTimeout("moveSnow()", snowRefresh); -} - -for (i = 0; i <= snowMax; i++) { - document.write("" + snowEntity + ""); -} - -window.addEventListener('resize', resize); -window.addEventListener('load', initSnow); diff --git a/public/js/christmas/snowstorm.js b/public/js/christmas/snowstorm.js new file mode 100644 index 0000000..6cce1b0 --- /dev/null +++ b/public/js/christmas/snowstorm.js @@ -0,0 +1,680 @@ +/** @license + * DHTML Snowstorm! JavaScript-based snow for web pages + * Making it snow on the internets since 2003. You're welcome. + * ----------------------------------------------------------- + * Version 1.44.20131208 (Previous rev: 1.44.20131125) + * Copyright (c) 2007, Scott Schiller. All rights reserved. + * Code provided under the BSD License + * http://schillmania.com/projects/snowstorm/license.txt + */ + +/*jslint nomen: true, plusplus: true, sloppy: true, vars: true, white: true */ +/*global window, document, navigator, clearInterval, setInterval */ + +// 10/2021: Yes, some university hotlinked this script. This is an attempt to stop them. +// Admin: Please download this script and host it on your own site. Thank you. +// if (!document.domain.match(/schillmania.com/i)) { +// alert('SECURITY WARNING\nPlease tell your site administrator to host their own snow script. Thank you.'); +// // try { document.body.innerHTML = '

SECURITY WARNING
Please tell your site administrator to host their own snow script. Thank you.

'; } catch(e) {}; // go away. +// document.body.innerHTML = 'SECURITY WARNING: Please tell your site administrator to host their own snow script. Thank you.'; +// throw new Error('SECURITY WARNING: Please tell your site administrator to host their own snowstorm script. Thank you.'); +// fail(); +// debugger; +// } + +var snowStorm = (function (window, document) { + + // --- common properties --- + + this.autoStart = true; // Whether the snow should start automatically or not. + this.excludeMobile = true; // Snow is likely to be bad news for mobile phones' CPUs (and batteries.) Enable at your own risk. + this.flakesMax = 256; // Limit total amount of snow made (falling + sticking) + this.flakesMaxActive = 128; // Limit amount of snow falling at once (less = lower CPU use) + this.animationInterval = 33; // Theoretical "miliseconds per frame" measurement. 20 = fast + smooth, but high CPU use. 50 = more conservative, but slower + this.useGPU = true; // Enable transform-based hardware acceleration, reduce CPU load. + this.className = null; // CSS class name for further customization on snow elements + this.flakeBottom = null; // Integer for Y axis snow limit, 0 or null for "full-screen" snow effect + this.followMouse = false; // Snow movement can respond to the user's mouse + this.snowColor = '#fff'; // Don't eat (or use?) yellow snow. + this.snowCharacter = '•'; // • = bullet, · is square on some systems etc. + this.snowStick = true; // Whether or not snow should "stick" at the bottom. When off, will never collect. + this.targetElement = null; // element which snow will be appended to (null = document.body) - can be an element ID eg. 'myDiv', or a DOM node reference + this.useMeltEffect = true; // When recycling fallen snow (or rarely, when falling), have it "melt" and fade out if browser supports it + this.useTwinkleEffect = false; // Allow snow to randomly "flicker" in and out of view while falling + this.usePositionFixed = false; // true = snow does not shift vertically when scrolling. May increase CPU load, disabled by default - if enabled, used only where supported + this.usePixelPosition = false; // Whether to use pixel values for snow top/left vs. percentages. Auto-enabled if body is position:relative or targetElement is specified. + + // --- less-used bits --- + + this.freezeOnBlur = true; // Only snow when the window is in focus (foreground.) Saves CPU. + this.flakeLeftOffset = 0; // Left margin/gutter space on edge of container (eg. browser window.) Bump up these values if seeing horizontal scrollbars. + this.flakeRightOffset = 0; // Right margin/gutter space on edge of container + this.flakeWidth = 8; // Max pixel width reserved for snow element + this.flakeHeight = 8; // Max pixel height reserved for snow element + this.vMaxX = 5; // Maximum X velocity range for snow + this.vMaxY = 4; // Maximum Y velocity range for snow + this.zIndex = 0; // CSS stacking order applied to each snowflake + + // --- "No user-serviceable parts inside" past this point, yadda yadda --- + + var storm = this, + features, + // UA sniffing and backCompat rendering mode checks for fixed position, etc. + isIE = navigator.userAgent.match(/msie/i), + isIE6 = navigator.userAgent.match(/msie 6/i), + isMobile = navigator.userAgent.match(/mobile|opera m(ob|in)/i), + isBackCompatIE = (isIE && document.compatMode === 'BackCompat'), + noFixed = (isBackCompatIE || isIE6), + screenX = null, screenX2 = null, screenY = null, scrollY = null, docHeight = null, vRndX = null, vRndY = null, + windOffset = 1, + windMultiplier = 2, + flakeTypes = 6, + fixedForEverything = false, + targetElementIsRelative = false, + opacitySupported = (function () { + try { + document.createElement('div').style.opacity = '0.5'; + } catch (e) { + return false; + } + return true; + }()), + didInit = false, + docFrag = document.createDocumentFragment(); + + features = (function () { + + var getAnimationFrame; + + /** + * hat tip: paul irish + * http://paulirish.com/2011/requestanimationframe-for-smart-animating/ + * https://gist.github.com/838785 + */ + + function timeoutShim(callback) { + window.setTimeout(callback, 1000 / (storm.animationInterval || 20)); + } + + var _animationFrame = (window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + timeoutShim); + + // apply to window, avoid "illegal invocation" errors in Chrome + getAnimationFrame = _animationFrame ? function () { + return _animationFrame.apply(window, arguments); + } : null; + + var testDiv; + + testDiv = document.createElement('div'); + + function has(prop) { + + // test for feature support + var result = testDiv.style[prop]; + return (result !== undefined ? prop : null); + + } + + // note local scope. + var localFeatures = { + + transform: { + ie: has('-ms-transform'), + moz: has('MozTransform'), + opera: has('OTransform'), + webkit: has('webkitTransform'), + w3: has('transform'), + prop: null // the normalized property value + }, + + getAnimationFrame: getAnimationFrame + + }; + + localFeatures.transform.prop = ( + localFeatures.transform.w3 || + localFeatures.transform.moz || + localFeatures.transform.webkit || + localFeatures.transform.ie || + localFeatures.transform.opera + ); + + testDiv = null; + + return localFeatures; + + }()); + + this.timer = null; + this.flakes = []; + this.disabled = false; + this.active = false; + this.meltFrameCount = 20; + this.meltFrames = []; + + this.setXY = function (o, x, y) { + + if (!o) { + return false; + } + + if (storm.usePixelPosition || targetElementIsRelative) { + + o.style.left = (x - storm.flakeWidth) + 'px'; + o.style.top = (y - storm.flakeHeight) + 'px'; + + } else if (noFixed) { + + o.style.right = (100 - (x / screenX * 100)) + '%'; + // avoid creating vertical scrollbars + o.style.top = (Math.min(y, docHeight - storm.flakeHeight)) + 'px'; + + } else { + + if (!storm.flakeBottom) { + + // if not using a fixed bottom coordinate... + o.style.right = (100 - (x / screenX * 100)) + '%'; + o.style.bottom = (100 - (y / screenY * 100)) + '%'; + + } else { + + // absolute top. + o.style.right = (100 - (x / screenX * 100)) + '%'; + o.style.top = (Math.min(y, docHeight - storm.flakeHeight)) + 'px'; + + } + + } + + }; + + this.events = (function () { + + var old = (!window.addEventListener && window.attachEvent), slice = Array.prototype.slice, + evt = { + add: (old ? 'attachEvent' : 'addEventListener'), + remove: (old ? 'detachEvent' : 'removeEventListener') + }; + + function getArgs(oArgs) { + var args = slice.call(oArgs), len = args.length; + if (old) { + args[1] = 'on' + args[1]; // prefix + if (len > 3) { + args.pop(); // no capture + } + } else if (len === 3) { + args.push(false); + } + return args; + } + + function apply(args, sType) { + var element = args.shift(), + method = [evt[sType]]; + if (old) { + element[method](args[0], args[1]); + } else { + element[method].apply(element, args); + } + } + + function addEvent() { + apply(getArgs(arguments), 'add'); + } + + function removeEvent() { + apply(getArgs(arguments), 'remove'); + } + + return { + add: addEvent, + remove: removeEvent + }; + + }()); + + function rnd(n, min) { + if (isNaN(min)) { + min = 0; + } + return (Math.random() * n) + min; + } + + function plusMinus(n) { + return (parseInt(rnd(2), 10) === 1 ? n * -1 : n); + } + + this.randomizeWind = function () { + var i; + vRndX = plusMinus(rnd(storm.vMaxX, 0.2)); + vRndY = rnd(storm.vMaxY, 0.2); + if (this.flakes) { + for (i = 0; i < this.flakes.length; i++) { + if (this.flakes[i].active) { + this.flakes[i].setVelocities(); + } + } + } + }; + + this.scrollHandler = function () { + var i; + // "attach" snowflakes to bottom of window if no absolute bottom value was given + scrollY = (storm.flakeBottom ? 0 : parseInt(window.scrollY || document.documentElement.scrollTop || (noFixed ? document.body.scrollTop : 0), 10)); + if (isNaN(scrollY)) { + scrollY = 0; // Netscape 6 scroll fix + } + if (!fixedForEverything && !storm.flakeBottom && storm.flakes) { + for (i = 0; i < storm.flakes.length; i++) { + if (storm.flakes[i].active === 0) { + storm.flakes[i].stick(); + } + } + } + }; + + this.resizeHandler = function () { + if (window.innerWidth || window.innerHeight) { + screenX = window.innerWidth - 16 - storm.flakeRightOffset; + screenY = (storm.flakeBottom || window.innerHeight); + } else { + screenX = (document.documentElement.clientWidth || document.body.clientWidth || document.body.scrollWidth) - (!isIE ? 8 : 0) - storm.flakeRightOffset; + screenY = storm.flakeBottom || document.documentElement.clientHeight || document.body.clientHeight || document.body.scrollHeight; + } + docHeight = document.body.offsetHeight; + screenX2 = parseInt(screenX / 2, 10); + }; + + this.resizeHandlerAlt = function () { + screenX = storm.targetElement.offsetWidth - storm.flakeRightOffset; + screenY = storm.flakeBottom || storm.targetElement.offsetHeight; + screenX2 = parseInt(screenX / 2, 10); + docHeight = document.body.offsetHeight; + }; + + this.freeze = function () { + // pause animation + if (!storm.disabled) { + storm.disabled = 1; + } else { + return false; + } + storm.timer = null; + }; + + this.resume = function () { + if (storm.disabled) { + storm.disabled = 0; + } else { + return false; + } + storm.timerInit(); + }; + + this.toggleSnow = function () { + if (!storm.flakes.length) { + // first run + storm.start(); + } else { + storm.active = !storm.active; + if (storm.active) { + storm.show(); + storm.resume(); + } else { + storm.stop(); + storm.freeze(); + } + } + }; + + this.stop = function () { + var i; + this.freeze(); + for (i = 0; i < this.flakes.length; i++) { + this.flakes[i].o.style.display = 'none'; + } + storm.events.remove(window, 'scroll', storm.scrollHandler); + storm.events.remove(window, 'resize', storm.resizeHandler); + if (storm.freezeOnBlur) { + if (isIE) { + storm.events.remove(document, 'focusout', storm.freeze); + storm.events.remove(document, 'focusin', storm.resume); + } else { + storm.events.remove(window, 'blur', storm.freeze); + storm.events.remove(window, 'focus', storm.resume); + } + } + }; + + this.show = function () { + var i; + for (i = 0; i < this.flakes.length; i++) { + this.flakes[i].o.style.display = 'block'; + } + }; + + this.SnowFlake = function (type, x, y) { + var s = this; + this.type = type; + this.x = x || parseInt(rnd(screenX - 20), 10); + this.y = (!isNaN(y) ? y : -rnd(screenY) - 12); + this.vX = null; + this.vY = null; + this.vAmpTypes = [1, 1.2, 1.4, 1.6, 1.8]; // "amplification" for vX/vY (based on flake size/type) + this.vAmp = this.vAmpTypes[this.type] || 1; + this.melting = false; + this.meltFrameCount = storm.meltFrameCount; + this.meltFrames = storm.meltFrames; + this.meltFrame = 0; + this.twinkleFrame = 0; + this.active = 1; + this.fontSize = (10 + (this.type / 5) * 10); + this.o = document.createElement('div'); + this.o.innerHTML = storm.snowCharacter; + if (storm.className) { + this.o.setAttribute('class', storm.className); + } + this.o.style.color = storm.snowColor; + this.o.style.position = (fixedForEverything ? 'fixed' : 'absolute'); + if (storm.useGPU && features.transform.prop) { + // GPU-accelerated snow. + this.o.style[features.transform.prop] = 'translate3d(0px, 0px, 0px)'; + } + this.o.style.width = storm.flakeWidth + 'px'; + this.o.style.height = storm.flakeHeight + 'px'; + this.o.style.fontFamily = 'arial,verdana'; + this.o.style.cursor = 'default'; + this.o.style.overflow = 'hidden'; + this.o.style.fontWeight = 'normal'; + this.o.style.zIndex = storm.zIndex; + + // Add drop shadow to snowflakes + this.o.style.filter = "drop-shadow(3px 3px hsla(0,0%,8%,0.2))" + + docFrag.appendChild(this.o); + + this.refresh = function () { + if (isNaN(s.x) || isNaN(s.y)) { + // safety check + return false; + } + storm.setXY(s.o, s.x, s.y); + }; + + this.stick = function () { + if (noFixed || (storm.targetElement !== document.documentElement && storm.targetElement !== document.body)) { + s.o.style.top = (screenY + scrollY - storm.flakeHeight) + 'px'; + } else if (storm.flakeBottom) { + s.o.style.top = storm.flakeBottom + 'px'; + } else { + s.o.style.display = 'none'; + s.o.style.bottom = '0%'; + s.o.style.position = 'fixed'; + s.o.style.display = 'block'; + } + }; + + this.vCheck = function () { + if (s.vX >= 0 && s.vX < 0.2) { + s.vX = 0.2; + } else if (s.vX < 0 && s.vX > -0.2) { + s.vX = -0.2; + } + if (s.vY >= 0 && s.vY < 0.2) { + s.vY = 0.2; + } + }; + + this.move = function () { + var vX = s.vX * windOffset, yDiff; + s.x += vX; + s.y += (s.vY * s.vAmp); + if (s.x >= screenX || screenX - s.x < storm.flakeWidth) { // X-axis scroll check + s.x = 0; + } else if (vX < 0 && s.x - storm.flakeLeftOffset < -storm.flakeWidth) { + s.x = screenX - storm.flakeWidth - 1; // flakeWidth; + } + s.refresh(); + yDiff = screenY + scrollY - s.y + storm.flakeHeight; + if (yDiff < storm.flakeHeight) { + s.active = 0; + if (storm.snowStick) { + s.stick(); + } else { + s.recycle(); + } + } else { + if (storm.useMeltEffect && s.active && s.type < 3 && !s.melting && Math.random() > 0.998) { + // ~1/1000 chance of melting mid-air, with each frame + s.melting = true; + s.melt(); + // only incrementally melt one frame + // s.melting = false; + } + if (storm.useTwinkleEffect) { + if (s.twinkleFrame < 0) { + if (Math.random() > 0.97) { + s.twinkleFrame = parseInt(Math.random() * 8, 10); + } + } else { + s.twinkleFrame--; + if (!opacitySupported) { + s.o.style.visibility = (s.twinkleFrame && s.twinkleFrame % 2 === 0 ? 'hidden' : 'visible'); + } else { + s.o.style.opacity = (s.twinkleFrame && s.twinkleFrame % 2 === 0 ? 0 : 1); + } + } + } + } + }; + + this.animate = function () { + // main animation loop + // move, check status, die etc. + s.move(); + }; + + this.setVelocities = function () { + s.vX = vRndX + rnd(storm.vMaxX * 0.12, 0.1); + s.vY = vRndY + rnd(storm.vMaxY * 0.12, 0.1); + }; + + this.setOpacity = function (o, opacity) { + if (!opacitySupported) { + return false; + } + o.style.opacity = opacity; + }; + + this.melt = function () { + if (!storm.useMeltEffect || !s.melting) { + s.recycle(); + } else { + if (s.meltFrame < s.meltFrameCount) { + s.setOpacity(s.o, s.meltFrames[s.meltFrame]); + s.o.style.fontSize = s.fontSize - (s.fontSize * (s.meltFrame / s.meltFrameCount)) + 'px'; + s.o.style.lineHeight = storm.flakeHeight + 2 + (storm.flakeHeight * 0.75 * (s.meltFrame / s.meltFrameCount)) + 'px'; + s.meltFrame++; + } else { + s.recycle(); + } + } + }; + + this.recycle = function () { + s.o.style.display = 'none'; + s.o.style.position = (fixedForEverything ? 'fixed' : 'absolute'); + s.o.style.bottom = 'auto'; + s.setVelocities(); + s.vCheck(); + s.meltFrame = 0; + s.melting = false; + s.setOpacity(s.o, 1); + s.o.style.padding = '0px'; + s.o.style.margin = '0px'; + s.o.style.fontSize = s.fontSize + 'px'; + s.o.style.lineHeight = (storm.flakeHeight + 2) + 'px'; + s.o.style.textAlign = 'center'; + s.o.style.verticalAlign = 'baseline'; + s.x = parseInt(rnd(screenX - storm.flakeWidth - 20), 10); + s.y = parseInt(rnd(screenY) * -1, 10) - storm.flakeHeight; + s.refresh(); + s.o.style.display = 'block'; + s.active = 1; + }; + + this.recycle(); // set up x/y coords etc. + this.refresh(); + + }; + + this.snow = function () { + var active = 0, flake = null, i, j; + for (i = 0, j = storm.flakes.length; i < j; i++) { + if (storm.flakes[i].active === 1) { + storm.flakes[i].move(); + active++; + } + if (storm.flakes[i].melting) { + storm.flakes[i].melt(); + } + } + if (active < storm.flakesMaxActive) { + flake = storm.flakes[parseInt(rnd(storm.flakes.length), 10)]; + if (flake.active === 0) { + flake.melting = true; + } + } + if (storm.timer) { + features.getAnimationFrame(storm.snow); + } + }; + + this.mouseMove = function (e) { + if (!storm.followMouse) { + return true; + } + var x = parseInt(e.clientX, 10); + if (x < screenX2) { + windOffset = -windMultiplier + (x / screenX2 * windMultiplier); + } else { + x -= screenX2; + windOffset = (x / screenX2) * windMultiplier; + } + }; + + this.createSnow = function (limit, allowInactive) { + var i; + for (i = 0; i < limit; i++) { + storm.flakes[storm.flakes.length] = new storm.SnowFlake(parseInt(rnd(flakeTypes), 10)); + if (allowInactive || i > storm.flakesMaxActive) { + storm.flakes[storm.flakes.length - 1].active = -1; + } + } + storm.targetElement.appendChild(docFrag); + }; + + this.timerInit = function () { + storm.timer = true; + storm.snow(); + }; + + this.init = function () { + var i; + for (i = 0; i < storm.meltFrameCount; i++) { + storm.meltFrames.push(1 - (i / storm.meltFrameCount)); + } + storm.randomizeWind(); + storm.createSnow(storm.flakesMax); // create initial batch + storm.events.add(window, 'resize', storm.resizeHandler); + storm.events.add(window, 'scroll', storm.scrollHandler); + if (storm.freezeOnBlur) { + if (isIE) { + storm.events.add(document, 'focusout', storm.freeze); + storm.events.add(document, 'focusin', storm.resume); + } else { + storm.events.add(window, 'blur', storm.freeze); + storm.events.add(window, 'focus', storm.resume); + } + } + storm.resizeHandler(); + storm.scrollHandler(); + if (storm.followMouse) { + storm.events.add(isIE ? document : window, 'mousemove', storm.mouseMove); + } + storm.animationInterval = Math.max(20, storm.animationInterval); + storm.timerInit(); + }; + + this.start = function (bFromOnLoad) { + if (!didInit) { + didInit = true; + } else if (bFromOnLoad) { + // already loaded and running + return true; + } + if (typeof storm.targetElement === 'string') { + var targetID = storm.targetElement; + storm.targetElement = document.getElementById(targetID); + if (!storm.targetElement) { + throw new Error('Snowstorm: Unable to get targetElement "' + targetID + '"'); + } + } + if (!storm.targetElement) { + storm.targetElement = (document.body || document.documentElement); + } + if (storm.targetElement !== document.documentElement && storm.targetElement !== document.body) { + // re-map handler to get element instead of screen dimensions + storm.resizeHandler = storm.resizeHandlerAlt; + //and force-enable pixel positioning + storm.usePixelPosition = true; + } + storm.resizeHandler(); // get bounding box elements + storm.usePositionFixed = (storm.usePositionFixed && !noFixed && !storm.flakeBottom); // whether or not position:fixed is to be used + if (window.getComputedStyle) { + // attempt to determine if body or user-specified snow parent element is relatlively-positioned. + try { + targetElementIsRelative = (window.getComputedStyle(storm.targetElement, null).getPropertyValue('position') === 'relative'); + } catch (e) { + // oh well + targetElementIsRelative = false; + } + } + fixedForEverything = storm.usePositionFixed; + if (screenX && screenY && !storm.disabled) { + storm.init(); + storm.active = true; + } + }; + + function doDelayedStart() { + window.setTimeout(function () { + storm.start(true); + }, 20); + // event cleanup + storm.events.remove(isIE ? document : window, 'mousemove', doDelayedStart); + } + + function doStart() { + if (!storm.excludeMobile || !isMobile) { + doDelayedStart(); + } + // event cleanup + storm.events.remove(window, 'load', doStart); + } + + // hooks for starting the snow + if (storm.autoStart) { + storm.events.add(window, 'load', doStart, false); + } + + return this; + +}(window, document)); diff --git a/public/js/neverSaid.js b/public/js/neverSaid.js deleted file mode 100644 index 5b58d60..0000000 --- a/public/js/neverSaid.js +++ /dev/null @@ -1,35 +0,0 @@ -// Define an array of strings -const neverSaid = [ - "ASM: The Director liked all the props we got today.", - "PM: Ah ha, a revolve. Terrific.", - "Chippie: I don't know, let's look at the ground plan.", - "Set Designer: Well, let's just have whatever is cheaper.", - "Sound: Better turn that down a bit. We don't want to deafen them.", - "Director: Sorry, my mistake.", - "Electrics: This equipment is more complicated than we need.", - "Performer: I really think my big scene should be cut.", - "SM: Can we doo that scene change again please?", - "LX designer: Bit more light from those big chaps at the side. Yes that's right, the ones on stalks whatever they are called.", - "Electrics: All the equipment works perfectly.", - "Musicians: So what if that's the end of a call. Let's just finish this bit off.", - "Wardrobe: Now, when exactly is the first dress rehearsal?", - "Workshop: I don't want anyone to know, but if you insist then yes, I admit it, I have just done an all-nighter.", - "Performer: This costume is so comfortable.", - "Admin: The level of overtime payments here are simply unacceptable. Our backstage staff deserve better.", - "Box Office: Comps? No problem.", - "Set Designer: You're right, it looks dreadful.", - "Flyman: No, my lips are sealed. What I may or may not have seen remains a secret.", - "Electrics: That had nothing to do with the computer, it was my fault.", - "Crew: No, no, I'm sure that's our job.", - "SMgt: Thanks, but I don't drink", - "Performer: Let me stand down here with my back to the audience.", - "Chippie: I can't really manage those big fast power tools myself.", - "Chippie: I prefer to use these little hand drills.", - "All: Let's go and ask the Production Manager. He'll know." -] - -// Generate a random index into the array -const randomIndex = Math.floor(Math.random() * neverSaid.length); - -// Use document.write to output the random string -document.write(neverSaid[randomIndex]); diff --git a/public/js/schemeSwap.js b/public/js/schemeSwap.js new file mode 100644 index 0000000..044df0f --- /dev/null +++ b/public/js/schemeSwap.js @@ -0,0 +1,72 @@ +/** + * Retrieves a cookies value + * @param {string} cname Cookie name + * @returns {string} Cookie value + */ +function getCookie(cname) { + let name = cname + "="; + let decodedCookie = decodeURIComponent(document.cookie); + let ca = decodedCookie.split(';'); + for(let i = 0; i + - https://www.diskfloppy.me - 2023-10-10 - always - 0.5 + https://wah.moe/ + 2024-12-28T18:33:23+01:00 + 1.0 - https://www.diskfloppy.me/pub - 2023-10-10 - always - 0.5 + https://wah.moe/bookmarks + 2024-12-28T18:33:23+01:00 + 1.0 - https://www.diskfloppy.me/computers - 2023-10-10 - always - 0.5 + https://wah.moe/guestbook + 2024-12-28T18:33:23+01:00 + 1.0 - https://www.diskfloppy.me/guestbook - 2023-10-10 - always - 0.5 + https://wah.moe/music + 2024-12-28T18:33:23+01:00 + 1.0 - https://www.diskfloppy.me/weather - 2023-10-10 - always - 0.5 + https://wah.moe/rosco + 2024-12-28T18:33:23+01:00 + 1.0 - - https://www.diskfloppy.me/music - 2023-10-10 - always - 0.5 - - - https://www.diskfloppy.me/bookmarks - 2023-10-10 - always - 0.5 - - \ No newline at end of file + diff --git a/resources/js/app.js b/resources/js/app.js deleted file mode 100644 index e59d6a0..0000000 --- a/resources/js/app.js +++ /dev/null @@ -1 +0,0 @@ -import './bootstrap'; diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js deleted file mode 100644 index 846d350..0000000 --- a/resources/js/bootstrap.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * 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/bookmarks.blade.php b/resources/views/bookmarks.blade.php new file mode 100644 index 0000000..178478f --- /dev/null +++ b/resources/views/bookmarks.blade.php @@ -0,0 +1,24 @@ + + Bookmarks + @foreach($categories as $category) +
+

{{ $category->name }}

+ @if($category->id == 1) +

(These are shuffled every load)

+ @php + $sites = $category->sites->shuffle(); + @endphp + @else + @php + $sites = $category->sites; + @endphp + @endif +
+
    + @foreach($sites as $site) +
  • {{ $site->name }} - {{ $site->description }}
  • + @endforeach +
+
+ @endforeach +
diff --git a/resources/views/components/codeblock.blade.php b/resources/views/components/codeblock.blade.php deleted file mode 100644 index ff7c2a5..0000000 --- a/resources/views/components/codeblock.blade.php +++ /dev/null @@ -1,14 +0,0 @@ -@php -$file_path = "code/".$file; -$file_name = basename($file_path); - -$hl = new \Highlight\Highlighter(); - -$highlighted = $hl->highlight($lang, Storage::disk('local')->get($file_path)); -$file_size = Storage::disk('local')->size($file_path); -@endphp -
-

{{ $file_name }} {{ $file_size}} bytes

-
- {!! $highlighted->value !!} -
diff --git a/resources/views/components/git.blade.php b/resources/views/components/git.blade.php deleted file mode 100644 index e66a6eb..0000000 --- a/resources/views/components/git.blade.php +++ /dev/null @@ -1,48 +0,0 @@ -@php -$api_root = app('config')->get('app')['api_root']; - -$commits = json_decode(file_get_contents($api_root.'/gitdata')); -$count = 0; - -function formatRelativeTime(DateTime $dateTime) { - $currentTimestamp = time(); - $dateTimeTimestamp = $dateTime->getTimestamp(); - $difference = $currentTimestamp - $dateTimeTimestamp; - - if ($difference < 60) { - return "just now"; - } elseif ($difference < 3600) { - $minutes = floor($difference / 60); - $suffix = ($minutes > 1) ? "s" : ""; - return $minutes . " minute" . $suffix . " ago"; - } elseif ($difference < 86400) { - $hours = floor($difference / 3600); - $suffix = ($hours > 1) ? "s" : ""; - return $hours . " hour" . $suffix . " ago"; - } elseif ($difference < 604800) { - $days = floor($difference / 86400); - $suffix = ($days > 1) ? "s" : ""; - return $days . " day" . $suffix . " ago"; - } else { - return $dateTime->format('Y-m-d H:i:s'); // Fallback to a specific format if desired - } -} -@endphp -

Recent Site Updates

- -@foreach ($commits as $commit) - - @if ($count >= 5) -
- @break - @endif - @php - $date = DateTime::createFromFormat("Y-m-d\TH:i:s\Z", $commit->author->date) - @endphp - - • - {{ formatRelativeTime($date) }} - {{ $commit->message }} - -@php $count++ @endphp -@endforeach diff --git a/resources/views/components/lastfm-current.blade.php b/resources/views/components/lastfm-current.blade.php new file mode 100644 index 0000000..230a07a --- /dev/null +++ b/resources/views/components/lastfm-current.blade.php @@ -0,0 +1,34 @@ +@if (isLegacy()) + @php + $artUrl = null; + $path = parse_url($track["image"], PHP_URL_PATH); + if ($track["image"] !== "") { + $artUrl = "//" . request()->getHttpHost() . "/proxy/lastfm/" . basename($path); + } + @endphp + + @if ($artUrl !== null) + + @endif + + +
Album cover for {{ $track[  +

{{ $track["header"] }}:

+ {{ $track["title"] }}
+ by {{ $track["artist"] }}
+
+
+@else +
+ @if($track["image"] !== "") +
+ Album cover for {{ $track[ +
+ @endif +
+

{{ $track["header"] }}:

+ {{ $track["title"] }}
+ by {{ $track["artist"] }}
+
+
+@endif diff --git a/resources/views/components/lastfm-top.blade.php b/resources/views/components/lastfm-top.blade.php new file mode 100644 index 0000000..e6a5968 --- /dev/null +++ b/resources/views/components/lastfm-top.blade.php @@ -0,0 +1,21 @@ +@if (isLegacy()) + + Top 10 Tracks (Last 30 days): +@else +
+ +@endif + + + + + + + @php($count = 0) + @foreach ($tracks as $track) + @php($count++) + + @endforeach +
+

Top 10 Tracks (Last 30 days):

+
#TrackArtistPlays
diff --git a/resources/views/components/lastfm-track.blade.php b/resources/views/components/lastfm-track.blade.php new file mode 100644 index 0000000..f61d41e --- /dev/null +++ b/resources/views/components/lastfm-track.blade.php @@ -0,0 +1,6 @@ + + {{ $count }} + {{ $track["title"] }} + {{ $track["artist"] }} + {{ $track["plays"] }} + diff --git a/resources/views/components/lastfm.blade.php b/resources/views/components/lastfm.blade.php deleted file mode 100644 index 83312e1..0000000 --- a/resources/views/components/lastfm.blade.php +++ /dev/null @@ -1,21 +0,0 @@ -@php - -$cfg = app('config')->get('services')['lastfm']; -$api_root = app('config')->get('app')['api_root']; - -$current_track = json_decode(file_get_contents($api_root.'/lastfm/current')); -$toptracks = json_decode(file_get_contents($api_root.'/lastfm/top')); -$count = 0; -@endphp - -

Last.fm (Profile)

- Last/Current Track: {{ $current_track->name }} • {{ $current_track->artist }} -

Top {{ $cfg['toptracks'] }} Tracks (Last 7 days)

-@foreach ($toptracks as $track) - @if ($count >= $cfg['toptracks']) - @break - @endif - {{ str_pad($count+1, 2, '0', STR_PAD_LEFT) }}] {{ $track->name }} • {{ $track->artist }} - ({{ $track->plays }} plays)
-@php $count++ @endphp -@endforeach diff --git a/resources/views/components/layout-err.blade.php b/resources/views/components/layout-err.blade.php new file mode 100644 index 0000000..5c75d0e --- /dev/null +++ b/resources/views/components/layout-err.blade.php @@ -0,0 +1,28 @@ + + + + {{ $title ?? '' }} + + + + +

Error {{ $code }} | {{ $message }}

+
+

Here, have a cat...

+

+

If you believe this is a server error, contact the webmaster

+
+

Diagnostic Info

+
+ + Server:  {{ gethostname() }}
+ Your IP: {{ Request::ip() }}
+ Root:    {!! url('') !!}
+ Path:    @if(Request::path() == "/")/@else/{{ Request::path() }}/@endif
+ Epoch:   {{ now()->timestamp }}
+ Agent:   {{ request()->userAgent() }}
+
+
+

© RoscoeDaWah 2021-2024

+ + diff --git a/resources/views/components/layout-legacy.blade.php b/resources/views/components/layout-legacy.blade.php new file mode 100644 index 0000000..56379f9 --- /dev/null +++ b/resources/views/components/layout-legacy.blade.php @@ -0,0 +1,102 @@ + + + + + + wah! (dot moe) - {{ $title }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + + wah! (dot moe)
+ "i mean it looks alright, but then you realise its all tables" ~ alice +
+
 
+ + + + + + +
  + +  
+
 
 
+ + + + + + +
  + {{ $slot }} +  
+
 
 
+ + + + + + +
  + +  
+
 
 
+ + + + + + +
  + © RoscoeDaWah 2021-2025 +  
+
 
+ + diff --git a/resources/views/components/layout-min.blade.php b/resources/views/components/layout-min.blade.php new file mode 100644 index 0000000..37e6e03 --- /dev/null +++ b/resources/views/components/layout-min.blade.php @@ -0,0 +1,16 @@ + + + + + + + + + + + {{ $title ?? 'Unknown' }} + + +{{ $slot }} + + diff --git a/resources/views/components/layout.blade.php b/resources/views/components/layout.blade.php new file mode 100644 index 0000000..a9a1728 --- /dev/null +++ b/resources/views/components/layout.blade.php @@ -0,0 +1,76 @@ + + + + + + + + + + wah! (dot moe) + + + + @if ($isChristmas)@endif + + + + + + + + + + progressive pride flag + +
+ +
+
+ {{ $slot }} +
+
+
+
+
+ +
+
+
+ + diff --git a/resources/views/components/navigation.blade.php b/resources/views/components/navigation.blade.php new file mode 100644 index 0000000..acf5406 --- /dev/null +++ b/resources/views/components/navigation.blade.php @@ -0,0 +1,14 @@ + diff --git a/resources/views/components/wah.blade.php b/resources/views/components/wah.blade.php new file mode 100644 index 0000000..105c9b7 --- /dev/null +++ b/resources/views/components/wah.blade.php @@ -0,0 +1,12 @@ +@if(!isLegacy()) +
+

Random Wah!

+ @if ($wah !== "") + Random image featuring a red panda +

Image "stolen" from tinyfox.dev

+ @else + 250x250 Placeholder Image +

Unable to retrieve image

+ @endif +
+@endif diff --git a/resources/views/components/weather.blade.php b/resources/views/components/weather.blade.php deleted file mode 100644 index 29f925d..0000000 --- a/resources/views/components/weather.blade.php +++ /dev/null @@ -1,22 +0,0 @@ -@php -$api_root = app('config')->get('app')['api_root']; - -function degreesToCompassDirection($degrees) { - $cardinalDirections = [ - 'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE', - 'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW', 'N' - ]; - return $cardinalDirections[round($degrees*16/360)]; -} - -$data = json_decode(file_get_contents($api_root.'/weather')); -$updated = gmdate('H:i Y-m-d', $data->updated); -$data = $data->current; -@endphp - -

Local Weather (Last Update: {{ $updated }})

- Wind Speed:     {{ $data->wind->speed }} mph
- Wind Direction: {{ $data->wind->direction->degrees }}°, {{ $data->wind->direction->cardinal }}
- Temperature:    {{ $data->temperature }}°C
- Rain Rate:      {{ $data->rain_rate }} mm/hr
- Humidity:       {{ $data->humidity }}%
diff --git a/resources/views/errors/401.blade.php b/resources/views/errors/401.blade.php new file mode 100644 index 0000000..f3dce11 --- /dev/null +++ b/resources/views/errors/401.blade.php @@ -0,0 +1,4 @@ + + 401 + Unauthorized + diff --git a/resources/views/errors/402.blade.php b/resources/views/errors/402.blade.php new file mode 100644 index 0000000..06f6d5e --- /dev/null +++ b/resources/views/errors/402.blade.php @@ -0,0 +1,4 @@ + + 402 + Payment Required + diff --git a/resources/views/errors/403.blade.php b/resources/views/errors/403.blade.php new file mode 100644 index 0000000..22b14ad --- /dev/null +++ b/resources/views/errors/403.blade.php @@ -0,0 +1,4 @@ + + 403 + {{__($exception->getMessage() ?: 'Forbidden')}} + diff --git a/resources/views/errors/404.blade.php b/resources/views/errors/404.blade.php new file mode 100644 index 0000000..a3cd44c --- /dev/null +++ b/resources/views/errors/404.blade.php @@ -0,0 +1,4 @@ + + 404 + Page not found! + diff --git a/resources/views/errors/418.blade.php b/resources/views/errors/418.blade.php new file mode 100644 index 0000000..f69b9a2 --- /dev/null +++ b/resources/views/errors/418.blade.php @@ -0,0 +1,4 @@ + + 418 + I'm a teapot + diff --git a/resources/views/errors/419.blade.php b/resources/views/errors/419.blade.php new file mode 100644 index 0000000..5d5781e --- /dev/null +++ b/resources/views/errors/419.blade.php @@ -0,0 +1,4 @@ + + 419 + Page Expired + diff --git a/resources/views/errors/429.blade.php b/resources/views/errors/429.blade.php new file mode 100644 index 0000000..a3a3e51 --- /dev/null +++ b/resources/views/errors/429.blade.php @@ -0,0 +1,4 @@ + + 429 + Too Many Requests + diff --git a/resources/views/errors/500.blade.php b/resources/views/errors/500.blade.php new file mode 100644 index 0000000..f578dca --- /dev/null +++ b/resources/views/errors/500.blade.php @@ -0,0 +1,4 @@ + + 500 + Server Error + diff --git a/resources/views/errors/503.blade.php b/resources/views/errors/503.blade.php new file mode 100644 index 0000000..61587ac --- /dev/null +++ b/resources/views/errors/503.blade.php @@ -0,0 +1,4 @@ + + 503 + Service Unavailable + diff --git a/resources/views/errors/generic-error.blade.php b/resources/views/errors/generic-error.blade.php index 6f08ea5..cbdca62 100644 --- a/resources/views/errors/generic-error.blade.php +++ b/resources/views/errors/generic-error.blade.php @@ -1,9 +1,8 @@ -@extends('layouts.minimal') -@section('title', 'Error 401: Unauthorized User!') -@section('content') + + Error 401: Unauthorized User!

{{ $error }}


@if(isset($description))

{{ $description }}

@endif -@stop +
diff --git a/resources/views/errors/guestbook-invalid.blade.php b/resources/views/errors/guestbook-invalid.blade.php new file mode 100644 index 0000000..6c72bcf --- /dev/null +++ b/resources/views/errors/guestbook-invalid.blade.php @@ -0,0 +1,12 @@ + + Error dsdf! +
+
+

Error 400: Invalid message!

+
+

Whoa there! Your form submission seems to contain a URL (or one of the fields was left blank)!

+
+ Click here to go back to the guestbook. +
+
+
diff --git a/resources/views/errors/guestbook-ipban.blade.php b/resources/views/errors/guestbook-ipban.blade.php index 386d22a..319aff0 100644 --- a/resources/views/errors/guestbook-ipban.blade.php +++ b/resources/views/errors/guestbook-ipban.blade.php @@ -1,6 +1,5 @@ -@extends('layouts.minimal') -@section('title', 'Error 403: IP Blocked!') -@section('content') + + Error 403: IP Blocked!

Error 403: IP Blocked!


Your IP has been banned from submitting to the guestbook.

@@ -9,4 +8,4 @@ @endif
Click here to go back to the guestbook. -@stop +
diff --git a/resources/views/errors/guestbook-ratelimit.blade.php b/resources/views/errors/guestbook-ratelimit.blade.php index 7fecd97..adfa5a9 100644 --- a/resources/views/errors/guestbook-ratelimit.blade.php +++ b/resources/views/errors/guestbook-ratelimit.blade.php @@ -1,10 +1,13 @@ -@extends('layouts.minimal') -@section('title', 'Error 429: Overclocking Detected!') -@section('content') -

Error 429: Overclocking Detected!

-
-

Whoa there! Your submissions are going at warp speed.

-

Remember you can only submit an entry once every hour!

-
- Click here to go back to the guestbook. -@stop + + Error 429: Overclocking Detected! +
+
+

Error 429: Overclocking Detected!

+
+

Whoa there! Your submissions are going at warp speed.

+

Remember you can only submit an entry once every hour!

+
+ Click here to go back to the guestbook. +
+
+
diff --git a/resources/views/errors/no-auth.blade.php b/resources/views/errors/no-auth.blade.php deleted file mode 100644 index 1d99498..0000000 --- a/resources/views/errors/no-auth.blade.php +++ /dev/null @@ -1,8 +0,0 @@ -@extends('layouts.minimal') -@section('title', 'Error 401: Unauthorized User!') -@section('content') -

Error 401: Unauthorized User!

-
-

Woah there! Only authorized users can access this page. Please log in to proceed.

-

Ended up here on accident? Click here to return to the homepage!

-@stop diff --git a/resources/views/guestbook.blade.php b/resources/views/guestbook.blade.php new file mode 100644 index 0000000..fb73da2 --- /dev/null +++ b/resources/views/guestbook.blade.php @@ -0,0 +1,127 @@ + + Guestbook + + + + + + + + @if (isLegacy()) + Entries ({{ count($entries) }} total) + + @foreach ($entries as $entry) + @php + $user_agent = $parser->parse($entry->agent); + @endphp + + + + @endforeach + +
+ + + + +
+ Submitted by {{ $entry->name }} + on {{ $entry->created_at->format('Y-m-d') }} + at {{ $entry->created_at->format('h:i:s A (e)') }} +
{{ $entry->message }}
+ @if($entry->agent === "Agent Unavailable") + Agent unavailable + @else + @if ($user_agent->ua->toString() == "Other" || $user_agent->os->toString() == "Other") + Posted using {{ $entry->agent }} + @else + Posted using {{ $user_agent->ua->toString() }} + on {{ $user_agent->os->toString() }} + @endif + @endif +
+
+ @else +
+

Entries ({{ count($entries) }} total)

+ @foreach ($entries as $entry) + @php + $user_agent = $parser->parse($entry->agent); + @endphp +
+ Submitted by {{ $entry->name }} + on {{ $entry->created_at->format('Y-m-d') }} + at {{ $entry->created_at->format('h:i:s A (e)') }} +
+ {{ $entry->message }} +
+ @if($entry->agent === "Agent Unavailable") +
Agent unavailable
+ @else + @if ($user_agent->ua->toString() == "Other" || $user_agent->os->toString() == "Other") +
Posted using {{ $entry->agent }}
+ @else +
Posted using {{ $user_agent->ua->toString() }} + on {{ $user_agent->os->toString() }}
+ @endif + @endif +
+
+ @endforeach + @endif +
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php new file mode 100644 index 0000000..91184e5 --- /dev/null +++ b/resources/views/home.blade.php @@ -0,0 +1,33 @@ + + Home + + +

Hi! This is my personal homepage on the World Wide + Web. +

+ @if(!isLegacy()) +
+ @endif +

Some quick facts about me:

+
    +
  • {{ $age }} y/o, he/him, British
  • +
  • Theatre Technician and "Web Developer"
  • +
  • Loves ETC desks, prefers Generics to LEDs for some reason
  • +
  • Spends way too much time on his computer
  • +
  • Favorite games: OneShot, + Minecraft, Stardew Valley, N++ and Starbound
  • +
  • CWOP member
  • +
+ @if(!isLegacy()) +
+ @endif +

Interests:

+
    +
  • Tech Theatre - Lighting, Stage Management, etc.
  • +
  • Programming - HTML, CSS, JavaScript, C#, Java, PHP, Ruby, Python (GitHub)
  • +
  • Photography - Flickr
  • +
  • Gaming - Steam Profile +
  • +
+
diff --git a/resources/views/includes/admin/header.blade.php b/resources/views/includes/admin/header.blade.php deleted file mode 100644 index edb2fd7..0000000 --- a/resources/views/includes/admin/header.blade.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/resources/views/includes/footer.blade.php b/resources/views/includes/footer.blade.php deleted file mode 100644 index 3f53e18..0000000 --- a/resources/views/includes/footer.blade.php +++ /dev/null @@ -1,30 +0,0 @@ -
- diff --git a/resources/views/includes/head-hljs.blade.php b/resources/views/includes/head-hljs.blade.php deleted file mode 100644 index dec0126..0000000 --- a/resources/views/includes/head-hljs.blade.php +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - @yield('title') - diskfloppy.me - - - diff --git a/resources/views/includes/head.blade.php b/resources/views/includes/head.blade.php deleted file mode 100644 index 1204063..0000000 --- a/resources/views/includes/head.blade.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - @yield('title') - diskfloppy.me - - - - diff --git a/resources/views/includes/header.blade.php b/resources/views/includes/header.blade.php deleted file mode 100644 index 1c028b7..0000000 --- a/resources/views/includes/header.blade.php +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/resources/views/layouts/default-admin.blade.php b/resources/views/layouts/default-admin.blade.php deleted file mode 100644 index 5a16524..0000000 --- a/resources/views/layouts/default-admin.blade.php +++ /dev/null @@ -1,23 +0,0 @@ - - - - @include('includes.head') - - - -
-
- @include('includes.admin.header') -
- -
-
-@yield('content') -
- -
-
- - diff --git a/resources/views/layouts/default-hljs.blade.php b/resources/views/layouts/default-hljs.blade.php deleted file mode 100644 index d3199b3..0000000 --- a/resources/views/layouts/default-hljs.blade.php +++ /dev/null @@ -1,23 +0,0 @@ - - - - @include('includes.head-hljs') - - - -
-
- @include('includes.header') -
- -
-
-@yield('content') -
- -
-
- - diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php deleted file mode 100644 index 715481e..0000000 --- a/resources/views/layouts/default.blade.php +++ /dev/null @@ -1,23 +0,0 @@ - - - - @include('includes.head') - - - -
-
- @include('includes.header') -
- -
-
-@yield('content') -
- -
-
- - diff --git a/resources/views/layouts/minimal.blade.php b/resources/views/layouts/minimal.blade.php deleted file mode 100644 index 5cef094..0000000 --- a/resources/views/layouts/minimal.blade.php +++ /dev/null @@ -1,11 +0,0 @@ - - - - @yield('title') - - - - -@yield('content') - - diff --git a/resources/views/music.blade.php b/resources/views/music.blade.php new file mode 100644 index 0000000..d0793cd --- /dev/null +++ b/resources/views/music.blade.php @@ -0,0 +1,5 @@ + + Music + + + diff --git a/resources/views/pages/admin/guestbook-del-confirm.blade.php b/resources/views/pages/admin/guestbook-del-confirm.blade.php deleted file mode 100644 index de920e0..0000000 --- a/resources/views/pages/admin/guestbook-del-confirm.blade.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.minimal') -@section('title', 'Delete confirm') -@section('content') -

Delete Confirmation

-
-

Are you sure you want to delete this entry?

- -

Entry Details:

- - - - - - - - - - - - - - - - - -
ID:{{ $entry->id }}
Name:{{ $entry->name }}
Date:{{ gmdate("H:i:s - Y-m-d", $entry->timestamp) }}
Message:{{ $entry->message }}
- -
- @csrf - - -
-@stop diff --git a/resources/views/pages/admin/guestbook.blade.php b/resources/views/pages/admin/guestbook.blade.php deleted file mode 100644 index 85460cc..0000000 --- a/resources/views/pages/admin/guestbook.blade.php +++ /dev/null @@ -1,32 +0,0 @@ -@extends('layouts.default-admin') -@section('title', 'Guestbook') -@section('content') - @php - $entries = DB::select(' - SELECT id, name, timestamp, message, ip_address - FROM guestbook__entries - ORDER BY id DESC - '); - @endphp -

Entries ({{ count($entries) }} total)

- @foreach ($entries as $entry) - - - - - - - -
- Name: {{ $entry->name }}
- IP:   {{ $entry->ip_address }}
- Date: {{ gmdate("H:i:s - Y-m-d", $entry->timestamp) }} -
- del -
-
- {{ htmlspecialchars($entry->message) }} -
- @endforeach -@stop - diff --git a/resources/views/pages/admin/index.blade.php b/resources/views/pages/admin/index.blade.php deleted file mode 100644 index fd34313..0000000 --- a/resources/views/pages/admin/index.blade.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('layouts.default-admin') -@section('title', 'Page Title') -@section('description', 'Page description goes here') -@php - $user = auth()->user(); -@endphp -@section('content') -

You are logged in as {{ $user->name }} ({{ $user->email }})

-@stop diff --git a/resources/views/pages/bookmarks.blade.php b/resources/views/pages/bookmarks.blade.php deleted file mode 100644 index 55cc801..0000000 --- a/resources/views/pages/bookmarks.blade.php +++ /dev/null @@ -1,52 +0,0 @@ -@extends('layouts.default') -@section('title', 'Bookmarks') -@section('description', 'This is the personal homepage of floppydisk.') -@section('content') - @php - $db_alive = true; - try { - DB::connection()->getPdo(); - } catch (Exception $e) { - $db_alive = false; - } - @endphp - @if (!$db_alive) - @include('components.errors.db-error') - @else - @php - $categories = DB::select(' - SELECT id, name - FROM bookmark__categories - ORDER BY priority ASC - '); - @endphp - - @foreach ($categories as $category) - - - - - @php - $sites = DB::select( - ' - SELECT name, url, description - FROM bookmark__sites - WHERE category_id = ? ORDER BY priority ASC - ', - [$category->id], - ); - @endphp - @foreach ($sites as $site) - - - - @endforeach - -
- @endforeach - @endif -@stop diff --git a/resources/views/pages/bot.blade.php b/resources/views/pages/bot.blade.php deleted file mode 100644 index b9475fc..0000000 --- a/resources/views/pages/bot.blade.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.default') -@section('title', 'Discord Bot') -@section('description', '') -@section('content') -

The diskfloppy.me Discord bot blah blah blah blah blah

-

Maybe I'll finish this page later idk

-@stop diff --git a/resources/views/pages/calculators.blade.php b/resources/views/pages/calculators.blade.php deleted file mode 100644 index 5d629ed..0000000 --- a/resources/views/pages/calculators.blade.php +++ /dev/null @@ -1,110 +0,0 @@ -@extends('layouts.default') -@section('title', 'Calculators') -@section('description', 'C a l c u l a t o r s.') -@section('content') -

CASIO fx-CG50

-

TBD

-

Pictures

-

Click images to view full size

- - - - - -

CASIO fx-120 (1977-78)

-

TBD

-

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Size8.4cm x 16.2cm x 2.4cm
Weight (w/ battery)209g
TypeScientific
CPUHitachi HD38111A
Registers2 standard
1 constant
4 bracket
1 memory
Features%, +/-, RV, F, Sci, abc, Sqr, x2, pi, 1x, trig,
hyp, DMS-DD, log, yx, SD, nCr, P-R, n!
Display12-digit VFD (NEC LD8197A)
-

Pictures

-

Click images to view full size

- - - - - -

CASIO fx-82 (1982-85)

-

TBD

-

Pictures

-

Click images to view full size

- - - - - -

Texas Instruments TI-30 (1976-90)

-

TBD

-

Pictures

-

Click images to view full size

- - - - - -

Texet 880 Executive (1977-78)

- -

The calculator measures 74.2mm x 135mm x 22.2mm. It weighs 86g without the battery installed, which is a 9v PP3-type battery. Rather than the usual press-stud type holder, the housing has two metal slide clips. There is also what I assume to be a sponge at one end which is supposed to aid in holding the battery in, however it appears to have gone completely hard and I will most likely replace it in the future. There's small adaptor hole at the top, of which the input isn't specified (though it's generally agreed that it's 4.5v centre-positive).

-

The case is black & silvery colored with a thin brushed metallic front panel. The eight-digit bubble display has an absolutely terrible viewing angle, which means you either have to be holding it under your coat or against your face to read it!

- The keypad is particularly strange in the way that it has 3 cancel buttons,
[CE]
,
[C]
and
[CA]
, while the
[CS]
button is a Clear Sign button, not another cancel! The keys themselves are particularly stiff and you really have to push them to get them to register. Many 880s suffered something referred to as the "pseudo fixed decimal bug" where, if you typed in
1 + 1.00 = 
, it would display
2.00
instead of the expected
2
-

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - -
Size7.4cm x 13.5cm x 2.2cm
Weight (w/o battery)86
TypeArithmetic
LogicAlgebraic
Power SourcePP3 9v
Display8-digit LED
-

Pictures

-

Click images to view full size

- - - - -@stop diff --git a/resources/views/pages/computers.blade.php b/resources/views/pages/computers.blade.php deleted file mode 100644 index 99a8012..0000000 --- a/resources/views/pages/computers.blade.php +++ /dev/null @@ -1,314 +0,0 @@ -@extends('layouts.default') -@section('title', 'Computers') -@section('description', 'Computers I own or have owned.') -@section('content') - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -@stop diff --git a/resources/views/pages/guestbook.blade.php b/resources/views/pages/guestbook.blade.php deleted file mode 100644 index ac4c80e..0000000 --- a/resources/views/pages/guestbook.blade.php +++ /dev/null @@ -1,89 +0,0 @@ -@extends('layouts.default') -@section('title', 'Guestbook') -@section('content') - @php - $db_alive = true; - try { - DB::connection()->getPdo(); - } catch (Exception $e) { - $db_alive = false; - } - @endphp - @if (!$db_alive) - @include('components.errors.db-error') - @else -
- - - - - - - - -
- @php - $entries = DB::select(' - SELECT name, timestamp, message - FROM guestbook__entries - ORDER BY id DESC - '); - @endphp -

Entries ({{ count($entries) }} total)

- @foreach ($entries as $entry) - - - - - -
- @endforeach - @endif -@stop diff --git a/resources/views/pages/home.blade.php b/resources/views/pages/home.blade.php deleted file mode 100644 index e5dd9fa..0000000 --- a/resources/views/pages/home.blade.php +++ /dev/null @@ -1,84 +0,0 @@ -@extends('layouts.default') -@section('title', 'Home') -@section('description', 'This is the personal homepage of floppydisk.') -@section('content') -

Hi! This my personal homepage on the World Wide Web.

- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - -
- - - - - - - - - - - - - - - - -@stop diff --git a/resources/views/pages/music.blade.php b/resources/views/pages/music.blade.php deleted file mode 100644 index 8d2bd3b..0000000 --- a/resources/views/pages/music.blade.php +++ /dev/null @@ -1,68 +0,0 @@ -@extends('layouts.default') -@section('title', 'Music') -@section('description', '') -@section('content') - @php - - $cfg = app('config')->get('services')['lastfm']; - $api_root = app('config')->get('app')['api_root']; - - $api_alive = true; - - try { - $data = file_get_contents($api_root.'/lastfm/current'); - } catch (Exception $e) { - $api_alive = false; - } - @endphp - @if (!$api_alive) - @include('components.errors.api-error') - @else - - @php - $current_track = json_decode(file_get_contents($api_root . '/lastfm/current')); - $top_tracks = json_decode(file_get_contents($api_root . '/lastfm/top')); - $count = 0; - @endphp - - - - - - - - - - - - - - - - - - - - @foreach ($top_tracks as $track) - @php $count++ @endphp - @if ($count >= $cfg['toptracks']+1) - @break - @endif - - - - - - - @endforeach - - @endif -@stop diff --git a/resources/views/pages/projects.blade.php b/resources/views/pages/projects.blade.php deleted file mode 100644 index aad454b..0000000 --- a/resources/views/pages/projects.blade.php +++ /dev/null @@ -1,16 +0,0 @@ -get('projects'); ?> -@extends('layouts.default') -@section('title', 'Projects') -@section('description', 'My projects') -@section('content') - @foreach ($categories as $category) -

{{ $category['name']}}

- @foreach ($category['projects'] as $project) -
- {{ $project['name'] }} - {{ $project['description'] }}
- Languages: {{ implode(", ", $project['languages']) }} -
-
- @endforeach -@endforeach -@stop diff --git a/resources/views/pages/template.blade.php b/resources/views/pages/template.blade.php deleted file mode 100644 index 18fe585..0000000 --- a/resources/views/pages/template.blade.php +++ /dev/null @@ -1,6 +0,0 @@ -@extends('layouts.default') -@section('title', 'Page Title') -@section('description', 'Page description goes here') -@section('content') -

page content

-@stop diff --git a/resources/views/pages/weather.blade.php b/resources/views/pages/weather.blade.php deleted file mode 100644 index a759534..0000000 --- a/resources/views/pages/weather.blade.php +++ /dev/null @@ -1,61 +0,0 @@ -@extends('layouts.default') -@section('title', 'Weather') -@section('description', 'Data from my weather station') -@section('content') -@php -$api_root = app('config')->get('app')['api_root']; - -function degreesToCompassDirection($degrees) { - $cardinalDirections = [ - 'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE', - 'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW', 'N' - ]; - return $cardinalDirections[round($degrees*16/360)]; -} - -$api_alive = true; - -try { - $data = file_get_contents($api_root.'/weather'); -} catch (Exception $e) { - $api_alive = false; -} -@endphp -@if (!$api_alive) - @include('components.errors.api-error') -@else - @php - $data = json_decode(file_get_contents($api_root.'/weather')); - $updated = gmdate('H:i Y-m-d', $data->updated); - $data = $data->current; - @endphp - - - - - - - - - - - - - - - - - - - - - - - -
-(Last Update: {{ $updated }}) -@endif -@stop diff --git a/resources/views/pandamonium.blade.php b/resources/views/pandamonium.blade.php new file mode 100644 index 0000000..0e90c46 --- /dev/null +++ b/resources/views/pandamonium.blade.php @@ -0,0 +1,25 @@ + + Absolute Pandamonium! + {{ asset('/images/embeds/pandamonium.png') }} + Follow the adventures of Rosco, Leko, Viz and AJ! + @if (isLegacy()) +

Click images for full-size version (56k no!)

+ @foreach($images as $image) + {{ $image[ + @if(isset($image["description"])) +

{{$image["description"]}}

+ @endif + @endforeach + @else + + @endif +
diff --git a/routes/web.php b/routes/web.php index 448000f..28bb7d0 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,10 @@ name('guestbook'); - -Route::post('/guestbook', 'App\Http\Controllers\GuestbookController@guestbookpost') - ->name('guestbookPost') +Route::get('/', [HomeController::class, 'show']); +Route::get('/bookmarks', [BookmarksController::class, 'show']); +Route::get('/guestbook', [GuestbookController::class, 'show']); +Route::get('/music', [MusicController::class, 'show']); +Route::get('/pandamonium', [RoscoLekoController::class, 'show']); +Route::post('/guestbook', [GuestbookController::class, 'addEntry']) + ->middleware('validator') ->middleware('rate_limit'); -Route::get('/weather', function () { - return view('pages.weather'); +Route::get('/proxy/wah/{image}', function (string $image) { + $client = new \GuzzleHttp\Client(); + $response = $client->request('GET', 'https://api.tinyfox.dev/hourly/wahs/'.$image); + + return response($response->getBody()) + ->header('Content-Type', $response->getHeader('Content-Type')); }); -Route::get('/music', function () { - return view('pages.music'); +Route::get('/proxy/lastfm/{image}', function (string $image) { + $client = new \GuzzleHttp\Client(); + $response = $client->request('GET', 'https://lastfm.freetls.fastly.net/i/u/174s/'.$image); + + return response($response->getBody()) + ->header('Content-Type', $response->getHeader('Content-Type')); }); - -Route::get('/bot', function () { - return view('pages.bot'); -}); - -/* ------------------------------ Admin Routes ------------------------------ */ - -Route::get('/admin', function () { - if (!auth()->check()) { - return view('errors.no-auth'); - } - return view('pages.admin.index'); -}); - -Route::get('/admin/guestbook', function () { - if (!auth()->check()) { - return view('errors.no-auth'); - } - return view('pages.admin.guestbook'); -}); - -Route::get('/admin/guestbook/delete', function () { - if (!auth()->check()) { - return view('errors.no-auth'); - } - - $id = request()->input('id'); - $entry = DB::table('guestbook__entries')->find($id); - - if ($entry) { - // Render a confirmation view - return view('pages.admin.guestbook-del-confirm', compact('entry')); - } else { - return view('errors.generic-error') - ->with('error', "Entry not found") - ->with('description', "The specified entry does not exist!"); - } -}); - -Route::post('/admin/guestbook/delete', function () { - if (!auth()->check()) { - return view('errors.no-auth'); - } - - $id = request()->input('id'); - DB::table('guestbook__entries')->where('id', $id)->delete(); - - return back()->with('success', 'Entry deleted successfully!'); -}); - diff --git a/scripts/updatecache.bat b/scripts/updatecache.bat new file mode 100644 index 0000000..0245663 --- /dev/null +++ b/scripts/updatecache.bat @@ -0,0 +1,6 @@ +@echo off +php artisan config:cache +php artisan route:cache +php artisan view:cache +php artisan event:cache +php artisan cache:clear diff --git a/scripts/updatecache.sh b/scripts/updatecache.sh index 53dad65..b4acd8c 100755 --- a/scripts/updatecache.sh +++ b/scripts/updatecache.sh @@ -2,3 +2,4 @@ php artisan config:cache php artisan route:cache php artisan view:cache php artisan event:cache +php artisan cache:clear diff --git a/storage/app/.gitignore b/storage/app/.gitignore old mode 100644 new mode 100755 diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore old mode 100644 new mode 100755 diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore old mode 100644 new mode 100755 diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore old mode 100644 new mode 100755 diff --git a/storage/framework/cache/data/.gitignore b/storage/framework/cache/data/.gitignore old mode 100644 new mode 100755 diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore old mode 100644 new mode 100755 diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore old mode 100644 new mode 100755 diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore old mode 100644 new mode 100755 diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore old mode 100644 new mode 100755