+ */
+ protected $casts = [
+ 'email_verified_at' => 'datetime',
+ 'password' => 'hashed',
+ ];
+}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
new file mode 100644
index 0000000..452e6b6
--- /dev/null
+++ b/app/Providers/AppServiceProvider.php
@@ -0,0 +1,24 @@
+
+ */
+ protected $policies = [
+ //
+ ];
+
+ /**
+ * Register any authentication / authorization services.
+ */
+ public function boot(): void
+ {
+ //
+ }
+}
diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php
new file mode 100644
index 0000000..2be04f5
--- /dev/null
+++ b/app/Providers/BroadcastServiceProvider.php
@@ -0,0 +1,19 @@
+>
+ */
+ protected $listen = [
+ Registered::class => [
+ SendEmailVerificationNotification::class,
+ ],
+ ];
+
+ /**
+ * Register any events for your application.
+ */
+ public function boot(): void
+ {
+ //
+ }
+
+ /**
+ * Determine if events and listeners should be automatically discovered.
+ */
+ public function shouldDiscoverEvents(): bool
+ {
+ return false;
+ }
+}
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
new file mode 100644
index 0000000..1cf5f15
--- /dev/null
+++ b/app/Providers/RouteServiceProvider.php
@@ -0,0 +1,40 @@
+by($request->user()?->id ?: $request->ip());
+ });
+
+ $this->routes(function () {
+ Route::middleware('api')
+ ->prefix('api')
+ ->group(base_path('routes/api.php'));
+
+ Route::middleware('web')
+ ->group(base_path('routes/web.php'));
+ });
+ }
+}
diff --git a/artisan b/artisan
new file mode 100755
index 0000000..67a3329
--- /dev/null
+++ b/artisan
@@ -0,0 +1,53 @@
+#!/usr/bin/env php
+make(Illuminate\Contracts\Console\Kernel::class);
+
+$status = $kernel->handle(
+ $input = new Symfony\Component\Console\Input\ArgvInput,
+ new Symfony\Component\Console\Output\ConsoleOutput
+);
+
+/*
+|--------------------------------------------------------------------------
+| Shutdown The Application
+|--------------------------------------------------------------------------
+|
+| Once Artisan has finished running, we will fire off the shutdown events
+| so that any final work may be done by the application before we shut
+| down the process. This is the last thing to happen to the request.
+|
+*/
+
+$kernel->terminate($input, $status);
+
+exit($status);
diff --git a/blank/index.php b/blank/index.php
deleted file mode 100755
index ae08eb1..0000000
--- a/blank/index.php
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
- Bookmarks
-
-
-
-
-
-
-
-
-
diff --git a/bookmarks/index.php b/bookmarks/index.php
deleted file mode 100755
index cdfa7bc..0000000
--- a/bookmarks/index.php
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
-
-
-
-
- Bookmarks
-
-
-
-
-
-
-
-
-
-
-
-
Friends' Websites
-
- nick99nack - Currently in the process of taking over the internet. I Totally didn't steal any of his stuff.
- dkay - The land of norton.
- Vbc - Cool brazilian dude, does programming and stuff
- KickfaceHQ - The interwebz home of Daniel Kickface and Team Kickface! Uses a totally rad FrontPage 2003 theme.
- Sashi - Site redesign #8! I'll find a website style I enjoy eventually, I swear!
- noone - Strangeness Network, noone's website.
- raf - is a shelf
- CamK06 - Now with more outdated HTML!
- HIDEN - Moar buttons!
- Coco - needs to go to the brain store
- Toxidations - h (idk if this is his actual domain he has like 5)
- xproot - a random internet person on this very random planet
-
-
Computing / Technology
-
- WinWorld - WinWorld is an online museum dedicated to the preservation and sharing of vintage, abandoned, and pre-release software.
- NINA - Upcoming revival of the America Online service.
- Escargot - MSN & Yahoo Messenger Revival
-
-
Other Cool Stuff
-
-
-
-
-
-
-
-
diff --git a/bootstrap/app.php b/bootstrap/app.php
new file mode 100644
index 0000000..037e17d
--- /dev/null
+++ b/bootstrap/app.php
@@ -0,0 +1,55 @@
+singleton(
+ Illuminate\Contracts\Http\Kernel::class,
+ App\Http\Kernel::class
+);
+
+$app->singleton(
+ Illuminate\Contracts\Console\Kernel::class,
+ App\Console\Kernel::class
+);
+
+$app->singleton(
+ Illuminate\Contracts\Debug\ExceptionHandler::class,
+ App\Exceptions\Handler::class
+);
+
+/*
+|--------------------------------------------------------------------------
+| Return The Application
+|--------------------------------------------------------------------------
+|
+| This script returns the application instance. The instance is given to
+| the calling script so we can separate the building of the instances
+| from the actual running of the application and sending responses.
+|
+*/
+
+return $app;
diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/bootstrap/cache/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/calculators/index.php b/calculators/index.php
deleted file mode 100755
index c320f46..0000000
--- a/calculators/index.php
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
-
-
-
-
- Calculators
-
-
-
-
-
-
-
-
-
-
-
-
CASIO fx-CG50
-
TBD
-
Pictures
-
Click images to view full size
-
-
-
-
-
-
CASIO fx-120 (1977-78)
-
TBD
-
Specifications
-
-
- Size
- 8.4cm x 16.2cm x 2.4cm
-
-
- Weight (w/ battery)
- 209g
-
-
- Type
- Scientific
-
-
- CPU
- Hitachi HD38111A
-
-
- Registers
- 2 standard 1 constant 4 bracket 1 memory
-
-
- Features
- %, +/-, RV, F, Sci, ab ⁄c , Sqr, x2 , pi, 1 ⁄x , trig, hyp, DMS-DD, log, yx , SD, nCr, P-R, n!
-
-
- Display
- 12-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
-
-
- Size
- 7.4cm x 13.5cm x 2.2cm
-
-
- Weight (w/o battery)
- 86
-
-
- Type
- Arithmetic
-
-
- Logic
- Algebraic
-
-
- Power Source
- PP3 9v
-
-
- Display
- 8-digit LED
-
-
-
Pictures
-
Click images to view full size
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..b924604
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,70 @@
+{
+ "name": "floppydisk05/diskfloppy.me",
+ "type": "project",
+ "description": "My personal website, developed using the Laravel framework.",
+ "keywords": ["laravel", "framework"],
+ "license": "MIT",
+ "require": {
+ "php": "^8.1",
+ "auth0/login": "^7.8",
+ "guzzlehttp/guzzle": "^7.2",
+ "laravel/framework": "^10.10",
+ "laravel/tinker": "^2.8",
+ "scrivo/highlight.php": "v9.18.1.10",
+ "sentry/sentry-laravel": "^4.1",
+ "spatie/laravel-honeypot": "^4.3",
+ "ua-parser/uap-php": "^3.9.14"
+ },
+ "require-dev": {
+ "fakerphp/faker": "^1.9.1",
+ "laravel/pint": "^1.0",
+ "laravel/sail": "^1.18",
+ "mockery/mockery": "^1.4.4",
+ "nunomaduro/collision": "^7.0",
+ "phpunit/phpunit": "^10.1",
+ "spatie/laravel-ignition": "^2.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "App\\": "app/",
+ "Database\\Factories\\": "database/factories/",
+ "Database\\Seeders\\": "database/seeders/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Tests\\": "tests/"
+ }
+ },
+ "scripts": {
+ "post-autoload-dump": [
+ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
+ "@php artisan package:discover --ansi"
+ ],
+ "post-update-cmd": [
+ "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
+ ],
+ "post-root-package-install": [
+ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
+ ],
+ "post-create-project-cmd": [
+ "@php artisan key:generate --ansi"
+ ]
+ },
+ "extra": {
+ "laravel": {
+ "dont-discover": []
+ }
+ },
+ "config": {
+ "optimize-autoloader": true,
+ "preferred-install": "dist",
+ "sort-packages": true,
+ "allow-plugins": {
+ "pestphp/pest-plugin": true,
+ "php-http/discovery": true
+ }
+ },
+ "minimum-stability": "stable",
+ "prefer-stable": true
+}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..3fb9a92
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,9979 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "d9ef400d61fb79fa5da5ecf7868fced5",
+ "packages": [
+ {
+ "name": "auth0/auth0-php",
+ "version": "8.11.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/auth0/auth0-PHP.git",
+ "reference": "5d132ad4b3b95c5d5d342d09088d469568bfa627"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/auth0/auth0-PHP/zipball/5d132ad4b3b95c5d5d342d09088d469568bfa627",
+ "reference": "5d132ad4b3b95c5d5d342d09088d469568bfa627",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-openssl": "*",
+ "php": "^8.1",
+ "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.11.1"
+ },
+ "time": "2024-01-11T15:28:10+00:00"
+ },
+ {
+ "name": "auth0/login",
+ "version": "7.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/auth0/laravel-auth0.git",
+ "reference": "c07591b341d2f84b74ef63a4e8602ff5592f65bb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/auth0/laravel-auth0/zipball/c07591b341d2f84b74ef63a4e8602ff5592f65bb",
+ "reference": "c07591b341d2f84b74ef63a4e8602ff5592f65bb",
+ "shasum": ""
+ },
+ "require": {
+ "auth0/auth0-php": "^8.10",
+ "ext-json": "*",
+ "illuminate/contracts": "^9 || ^10",
+ "illuminate/http": "^9 || ^10",
+ "illuminate/support": "^9 || ^10",
+ "php": "^8.1",
+ "psr-discovery/all": "^1",
+ "psr/cache": "^2 || ^3"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2",
+ "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",
+ "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-12-11T15:06:41+00:00"
+ },
+ {
+ "name": "brick/math",
+ "version": "0.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/brick/math.git",
+ "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478",
+ "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpunit/phpunit": "^9.0",
+ "vimeo/psalm": "5.0.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Brick\\Math\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Arbitrary-precision arithmetic library",
+ "keywords": [
+ "Arbitrary-precision",
+ "BigInteger",
+ "BigRational",
+ "arithmetic",
+ "bigdecimal",
+ "bignum",
+ "brick",
+ "math"
+ ],
+ "support": {
+ "issues": "https://github.com/brick/math/issues",
+ "source": "https://github.com/brick/math/tree/0.11.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/BenMorel",
+ "type": "github"
+ }
+ ],
+ "time": "2023-01-15T23:15:59+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.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/ca-bundle.git",
+ "reference": "b66d11b7479109ab547f9405b97205640b17d385"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/b66d11b7479109ab547f9405b97205640b17d385",
+ "reference": "b66d11b7479109ab547f9405b97205640b17d385",
+ "shasum": ""
+ },
+ "require": {
+ "ext-openssl": "*",
+ "ext-pcre": "*",
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12.55",
+ "psr/log": "^1.0",
+ "symfony/phpunit-bridge": "^4.2 || ^5",
+ "symfony/process": "^2.5 || ^3.0 || ^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"
+ }
+ ],
+ "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
+ "keywords": [
+ "cabundle",
+ "cacert",
+ "certificate",
+ "ssl",
+ "tls"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/ca-bundle/issues",
+ "source": "https://github.com/composer/ca-bundle/tree/1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-18T12:05:55+00:00"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32",
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.4",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "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.",
+ "keywords": [
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
+ ],
+ "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"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "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"
+ },
+ {
+ "name": "dflydev/dot-access-data",
+ "version": "v3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dflydev/dflydev-dot-access-data.git",
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549",
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12.42",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
+ "scrutinizer/ocular": "1.6.0",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "^4.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dflydev\\DotAccessData\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Dragonfly Development Inc.",
+ "email": "info@dflydev.com",
+ "homepage": "http://dflydev.com"
+ },
+ {
+ "name": "Beau Simensen",
+ "email": "beau@dflydev.com",
+ "homepage": "http://beausimensen.com"
+ },
+ {
+ "name": "Carlos Frutos",
+ "email": "carlos@kiwing.it",
+ "homepage": "https://github.com/cfrutos"
+ },
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com"
+ }
+ ],
+ "description": "Given a deep data structure, access data by dot notation.",
+ "homepage": "https://github.com/dflydev/dflydev-dot-access-data",
+ "keywords": [
+ "access",
+ "data",
+ "dot",
+ "notation"
+ ],
+ "support": {
+ "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
+ "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
+ },
+ "time": "2022-10-27T11:44:00+00:00"
+ },
+ {
+ "name": "doctrine/inflector",
+ "version": "2.0.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/2930cd5ef353871c821d5c43ed030d39ac8cfe65",
+ "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^11.0",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^8.5 || ^9.5",
+ "vimeo/psalm": "^4.25 || ^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+ "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+ "keywords": [
+ "inflection",
+ "inflector",
+ "lowercase",
+ "manipulation",
+ "php",
+ "plural",
+ "singular",
+ "strings",
+ "uppercase",
+ "words"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/inflector/issues",
+ "source": "https://github.com/doctrine/inflector/tree/2.0.9"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-15T18:05:13+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "84a527db05647743d50373e0ec53a152f2cde568"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568",
+ "reference": "84a527db05647743d50373e0ec53a152f2cde568",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^10",
+ "phpstan/phpstan": "^1.9",
+ "phpunit/phpunit": "^9.5",
+ "psalm/plugin-phpunit": "^0.18.3",
+ "vimeo/psalm": "^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "https://www.doctrine-project.org/projects/lexer.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "lexer",
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/lexer/issues",
+ "source": "https://github.com/doctrine/lexer/tree/3.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-15T16:57:16+00:00"
+ },
+ {
+ "name": "dragonmantank/cron-expression",
+ "version": "v3.3.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dragonmantank/cron-expression.git",
+ "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
+ "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2|^8.0",
+ "webmozart/assert": "^1.0"
+ },
+ "replace": {
+ "mtdowling/cron-expression": "^1.0"
+ },
+ "require-dev": {
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-webmozart-assert": "^1.0",
+ "phpunit/phpunit": "^7.0|^8.0|^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cron\\": "src/Cron/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Tankersley",
+ "email": "chris@ctankersley.com",
+ "homepage": "https://github.com/dragonmantank"
+ }
+ ],
+ "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
+ "keywords": [
+ "cron",
+ "schedule"
+ ],
+ "support": {
+ "issues": "https://github.com/dragonmantank/cron-expression/issues",
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/dragonmantank",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-10T19:36:49+00:00"
+ },
+ {
+ "name": "egulias/email-validator",
+ "version": "4.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/egulias/EmailValidator.git",
+ "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "^2.0 || ^3.0",
+ "php": ">=8.1",
+ "symfony/polyfill-intl-idn": "^1.26"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.2",
+ "vimeo/psalm": "^5.12"
+ },
+ "suggest": {
+ "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Egulias\\EmailValidator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Eduardo Gulias Davis"
+ }
+ ],
+ "description": "A library for validating emails against several RFCs",
+ "homepage": "https://github.com/egulias/EmailValidator",
+ "keywords": [
+ "email",
+ "emailvalidation",
+ "emailvalidator",
+ "validation",
+ "validator"
+ ],
+ "support": {
+ "issues": "https://github.com/egulias/EmailValidator/issues",
+ "source": "https://github.com/egulias/EmailValidator/tree/4.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/egulias",
+ "type": "github"
+ }
+ ],
+ "time": "2023-10-06T06:47:41+00:00"
+ },
+ {
+ "name": "fruitcake/php-cors",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fruitcake/php-cors.git",
+ "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b",
+ "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "symfony/http-foundation": "^4.4|^5.4|^6|^7"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.4",
+ "phpunit/phpunit": "^9",
+ "squizlabs/php_codesniffer": "^3.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Fruitcake\\Cors\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fruitcake",
+ "homepage": "https://fruitcake.nl"
+ },
+ {
+ "name": "Barryvdh",
+ "email": "barryvdh@gmail.com"
+ }
+ ],
+ "description": "Cross-origin resource sharing library for the Symfony HttpFoundation",
+ "homepage": "https://github.com/fruitcake/php-cors",
+ "keywords": [
+ "cors",
+ "laravel",
+ "symfony"
+ ],
+ "support": {
+ "issues": "https://github.com/fruitcake/php-cors/issues",
+ "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://fruitcake.nl",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/barryvdh",
+ "type": "github"
+ }
+ ],
+ "time": "2023-10-12T05:21:21+00:00"
+ },
+ {
+ "name": "graham-campbell/result-type",
+ "version": "v1.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/GrahamCampbell/Result-Type.git",
+ "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862",
+ "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "GrahamCampbell\\ResultType\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ }
+ ],
+ "description": "An Implementation Of The Result Type",
+ "keywords": [
+ "Graham Campbell",
+ "GrahamCampbell",
+ "Result Type",
+ "Result-Type",
+ "result"
+ ],
+ "support": {
+ "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-12T22:16:48+00:00"
+ },
+ {
+ "name": "guzzlehttp/guzzle",
+ "version": "7.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/guzzle.git",
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104",
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.1",
+ "guzzlehttp/psr7": "^1.9.1 || ^2.5.1",
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "provide": {
+ "psr/http-client-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-curl": "*",
+ "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
+ "php-http/message-factory": "^1.1",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15",
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
+ },
+ "suggest": {
+ "ext-curl": "Required for CURL handler support",
+ "ext-intl": "Required for Internationalized Domain Name (IDN) support",
+ "psr/log": "Required for using the Log middleware"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "GuzzleHttp\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle is a PHP HTTP client library",
+ "keywords": [
+ "client",
+ "curl",
+ "framework",
+ "http",
+ "http client",
+ "psr-18",
+ "psr-7",
+ "rest",
+ "web service"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/guzzle/issues",
+ "source": "https://github.com/guzzle/guzzle/tree/7.8.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:35:24+00:00"
+ },
+ {
+ "name": "guzzlehttp/promises",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/promises.git",
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223",
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle promises library",
+ "keywords": [
+ "promise"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/promises/issues",
+ "source": "https://github.com/guzzle/promises/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:19:20+00:00"
+ },
+ {
+ "name": "guzzlehttp/psr7",
+ "version": "2.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0",
+ "ralouphie/getallheaders": "^3.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "^0.9",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
+ },
+ "suggest": {
+ "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "PSR-7 message implementation that also provides common utility methods",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7",
+ "request",
+ "response",
+ "stream",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/2.6.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T20:05:35+00:00"
+ },
+ {
+ "name": "guzzlehttp/uri-template",
+ "version": "v1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/uri-template.git",
+ "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c",
+ "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "symfony/polyfill-php80": "^1.24"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15",
+ "uri-template/tests": "1.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\UriTemplate\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ }
+ ],
+ "description": "A polyfill class for uri_template of PHP",
+ "keywords": [
+ "guzzlehttp",
+ "uri-template"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/uri-template/issues",
+ "source": "https://github.com/guzzle/uri-template/tree/v1.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T19:50:20+00:00"
+ },
+ {
+ "name": "jean85/pretty-package-versions",
+ "version": "2.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Jean85/pretty-package-versions.git",
+ "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af",
+ "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.0.0",
+ "php": "^7.1|^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.17",
+ "jean85/composer-provided-replaced-stub-package": "^1.0",
+ "phpstan/phpstan": "^0.12.66",
+ "phpunit/phpunit": "^7.5|^8.5|^9.4",
+ "vimeo/psalm": "^4.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Jean85\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Alessandro Lai",
+ "email": "alessandro.lai85@gmail.com"
+ }
+ ],
+ "description": "A library to get pretty versions strings of installed dependencies",
+ "keywords": [
+ "composer",
+ "package",
+ "release",
+ "versions"
+ ],
+ "support": {
+ "issues": "https://github.com/Jean85/pretty-package-versions/issues",
+ "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5"
+ },
+ "time": "2021-10-08T21:21:46+00:00"
+ },
+ {
+ "name": "laravel/framework",
+ "version": "v10.42.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/framework.git",
+ "reference": "fef1aff874a6749c44f8e142e5764eab8cb96890"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/fef1aff874a6749c44f8e142e5764eab8cb96890",
+ "reference": "fef1aff874a6749c44f8e142e5764eab8cb96890",
+ "shasum": ""
+ },
+ "require": {
+ "brick/math": "^0.9.3|^0.10.2|^0.11",
+ "composer-runtime-api": "^2.2",
+ "doctrine/inflector": "^2.0.5",
+ "dragonmantank/cron-expression": "^3.3.2",
+ "egulias/email-validator": "^3.2.1|^4.0",
+ "ext-ctype": "*",
+ "ext-filter": "*",
+ "ext-hash": "*",
+ "ext-mbstring": "*",
+ "ext-openssl": "*",
+ "ext-session": "*",
+ "ext-tokenizer": "*",
+ "fruitcake/php-cors": "^1.2",
+ "guzzlehttp/uri-template": "^1.0",
+ "laravel/prompts": "^0.1.9",
+ "laravel/serializable-closure": "^1.3",
+ "league/commonmark": "^2.2.1",
+ "league/flysystem": "^3.8.0",
+ "monolog/monolog": "^3.0",
+ "nesbot/carbon": "^2.67",
+ "nunomaduro/termwind": "^1.13",
+ "php": "^8.1",
+ "psr/container": "^1.1.1|^2.0.1",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "psr/simple-cache": "^1.0|^2.0|^3.0",
+ "ramsey/uuid": "^4.7",
+ "symfony/console": "^6.2",
+ "symfony/error-handler": "^6.2",
+ "symfony/finder": "^6.2",
+ "symfony/http-foundation": "^6.4",
+ "symfony/http-kernel": "^6.2",
+ "symfony/mailer": "^6.2",
+ "symfony/mime": "^6.2",
+ "symfony/process": "^6.2",
+ "symfony/routing": "^6.2",
+ "symfony/uid": "^6.2",
+ "symfony/var-dumper": "^6.2",
+ "tijsverkoyen/css-to-inline-styles": "^2.2.5",
+ "vlucas/phpdotenv": "^5.4.1",
+ "voku/portable-ascii": "^2.0"
+ },
+ "conflict": {
+ "carbonphp/carbon-doctrine-types": ">=3.0",
+ "doctrine/dbal": ">=4.0",
+ "tightenco/collect": "<5.5.33"
+ },
+ "provide": {
+ "psr/container-implementation": "1.1|2.0",
+ "psr/simple-cache-implementation": "1.0|2.0|3.0"
+ },
+ "replace": {
+ "illuminate/auth": "self.version",
+ "illuminate/broadcasting": "self.version",
+ "illuminate/bus": "self.version",
+ "illuminate/cache": "self.version",
+ "illuminate/collections": "self.version",
+ "illuminate/conditionable": "self.version",
+ "illuminate/config": "self.version",
+ "illuminate/console": "self.version",
+ "illuminate/container": "self.version",
+ "illuminate/contracts": "self.version",
+ "illuminate/cookie": "self.version",
+ "illuminate/database": "self.version",
+ "illuminate/encryption": "self.version",
+ "illuminate/events": "self.version",
+ "illuminate/filesystem": "self.version",
+ "illuminate/hashing": "self.version",
+ "illuminate/http": "self.version",
+ "illuminate/log": "self.version",
+ "illuminate/macroable": "self.version",
+ "illuminate/mail": "self.version",
+ "illuminate/notifications": "self.version",
+ "illuminate/pagination": "self.version",
+ "illuminate/pipeline": "self.version",
+ "illuminate/process": "self.version",
+ "illuminate/queue": "self.version",
+ "illuminate/redis": "self.version",
+ "illuminate/routing": "self.version",
+ "illuminate/session": "self.version",
+ "illuminate/support": "self.version",
+ "illuminate/testing": "self.version",
+ "illuminate/translation": "self.version",
+ "illuminate/validation": "self.version",
+ "illuminate/view": "self.version"
+ },
+ "require-dev": {
+ "ably/ably-php": "^1.0",
+ "aws/aws-sdk-php": "^3.235.5",
+ "doctrine/dbal": "^3.5.1",
+ "ext-gmp": "*",
+ "fakerphp/faker": "^1.21",
+ "guzzlehttp/guzzle": "^7.5",
+ "league/flysystem-aws-s3-v3": "^3.0",
+ "league/flysystem-ftp": "^3.0",
+ "league/flysystem-path-prefixing": "^3.3",
+ "league/flysystem-read-only": "^3.3",
+ "league/flysystem-sftp-v3": "^3.0",
+ "mockery/mockery": "^1.5.1",
+ "nyholm/psr7": "^1.2",
+ "orchestra/testbench-core": "^8.18",
+ "pda/pheanstalk": "^4.0",
+ "phpstan/phpstan": "^1.4.7",
+ "phpunit/phpunit": "^10.0.7",
+ "predis/predis": "^2.0.2",
+ "symfony/cache": "^6.2",
+ "symfony/http-client": "^6.2.4",
+ "symfony/psr-http-message-bridge": "^2.0"
+ },
+ "suggest": {
+ "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
+ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).",
+ "brianium/paratest": "Required to run tests in parallel (^6.0).",
+ "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).",
+ "ext-apcu": "Required to use the APC cache driver.",
+ "ext-fileinfo": "Required to use the Filesystem class.",
+ "ext-ftp": "Required to use the Flysystem FTP driver.",
+ "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
+ "ext-memcached": "Required to use the memcache cache driver.",
+ "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.",
+ "ext-pdo": "Required to use all database features.",
+ "ext-posix": "Required to use all features of the queue worker.",
+ "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
+ "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
+ "filp/whoops": "Required for friendly error pages in development (^2.14.3).",
+ "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).",
+ "laravel/tinker": "Required to use the tinker console command (^2.0).",
+ "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
+ "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
+ "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).",
+ "league/flysystem-read-only": "Required to use read-only disks (^3.3)",
+ "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
+ "mockery/mockery": "Required to use mocking (^1.5.1).",
+ "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
+ "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
+ "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8|^10.0.7).",
+ "predis/predis": "Required to use the predis connector (^2.0.2).",
+ "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
+ "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^6.2).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).",
+ "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.2).",
+ "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.2).",
+ "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.2).",
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "10.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Illuminate/Collections/helpers.php",
+ "src/Illuminate/Events/functions.php",
+ "src/Illuminate/Filesystem/functions.php",
+ "src/Illuminate/Foundation/helpers.php",
+ "src/Illuminate/Support/helpers.php"
+ ],
+ "psr-4": {
+ "Illuminate\\": "src/Illuminate/",
+ "Illuminate\\Support\\": [
+ "src/Illuminate/Macroable/",
+ "src/Illuminate/Collections/",
+ "src/Illuminate/Conditionable/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Laravel Framework.",
+ "homepage": "https://laravel.com",
+ "keywords": [
+ "framework",
+ "laravel"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2024-01-23T15:07:56+00:00"
+ },
+ {
+ "name": "laravel/prompts",
+ "version": "v0.1.15",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/prompts.git",
+ "reference": "d814a27514d99b03c85aa42b22cfd946568636c1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/prompts/zipball/d814a27514d99b03c85aa42b22cfd946568636c1",
+ "reference": "d814a27514d99b03c85aa42b22cfd946568636c1",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "illuminate/collections": "^10.0|^11.0",
+ "php": "^8.1",
+ "symfony/console": "^6.2|^7.0"
+ },
+ "conflict": {
+ "illuminate/console": ">=10.17.0 <10.25.0",
+ "laravel/framework": ">=10.17.0 <10.25.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "pestphp/pest": "^2.3",
+ "phpstan/phpstan": "^1.11",
+ "phpstan/phpstan-mockery": "^1.1"
+ },
+ "suggest": {
+ "ext-pcntl": "Required for the spinner to be animated."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.1.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Laravel\\Prompts\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/prompts/issues",
+ "source": "https://github.com/laravel/prompts/tree/v0.1.15"
+ },
+ "time": "2023-12-29T22:37:42+00:00"
+ },
+ {
+ "name": "laravel/serializable-closure",
+ "version": "v1.3.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/serializable-closure.git",
+ "reference": "3dbf8a8e914634c48d389c1234552666b3d43754"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754",
+ "reference": "3dbf8a8e914634c48d389c1234552666b3d43754",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3|^8.0"
+ },
+ "require-dev": {
+ "nesbot/carbon": "^2.61",
+ "pestphp/pest": "^1.21.3",
+ "phpstan/phpstan": "^1.8.2",
+ "symfony/var-dumper": "^5.4.11"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\SerializableClosure\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ },
+ {
+ "name": "Nuno Maduro",
+ "email": "nuno@laravel.com"
+ }
+ ],
+ "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.",
+ "keywords": [
+ "closure",
+ "laravel",
+ "serializable"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/serializable-closure/issues",
+ "source": "https://github.com/laravel/serializable-closure"
+ },
+ "time": "2023-11-08T14:08:06+00:00"
+ },
+ {
+ "name": "laravel/tinker",
+ "version": "v2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/tinker.git",
+ "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe",
+ "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
+ "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
+ "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
+ "php": "^7.2.5|^8.0",
+ "psy/psysh": "^0.11.1|^0.12.0",
+ "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.3|^1.4.2",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8.5.8|^9.3.3"
+ },
+ "suggest": {
+ "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)."
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Laravel\\Tinker\\TinkerServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Tinker\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Powerful REPL for the Laravel framework.",
+ "keywords": [
+ "REPL",
+ "Tinker",
+ "laravel",
+ "psysh"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/tinker/issues",
+ "source": "https://github.com/laravel/tinker/tree/v2.9.0"
+ },
+ "time": "2024-01-04T16:10:04+00:00"
+ },
+ {
+ "name": "league/commonmark",
+ "version": "2.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/commonmark.git",
+ "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/3669d6d5f7a47a93c08ddff335e6d945481a1dd5",
+ "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "league/config": "^1.1.1",
+ "php": "^7.4 || ^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "symfony/deprecation-contracts": "^2.1 || ^3.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "cebe/markdown": "^1.0",
+ "commonmark/cmark": "0.30.0",
+ "commonmark/commonmark.js": "0.30.0",
+ "composer/package-versions-deprecated": "^1.8",
+ "embed/embed": "^4.4",
+ "erusev/parsedown": "^1.0",
+ "ext-json": "*",
+ "github/gfm": "0.29.0",
+ "michelf/php-markdown": "^1.4 || ^2.0",
+ "nyholm/psr7": "^1.5",
+ "phpstan/phpstan": "^1.8.2",
+ "phpunit/phpunit": "^9.5.21",
+ "scrutinizer/ocular": "^1.8.1",
+ "symfony/finder": "^5.3 | ^6.0",
+ "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0",
+ "unleashedtech/php-coding-standard": "^3.1.1",
+ "vimeo/psalm": "^4.24.0 || ^5.0.0"
+ },
+ "suggest": {
+ "symfony/yaml": "v2.3+ required if using the Front Matter extension"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\CommonMark\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)",
+ "homepage": "https://commonmark.thephpleague.com",
+ "keywords": [
+ "commonmark",
+ "flavored",
+ "gfm",
+ "github",
+ "github-flavored",
+ "markdown",
+ "md",
+ "parser"
+ ],
+ "support": {
+ "docs": "https://commonmark.thephpleague.com/",
+ "forum": "https://github.com/thephpleague/commonmark/discussions",
+ "issues": "https://github.com/thephpleague/commonmark/issues",
+ "rss": "https://github.com/thephpleague/commonmark/releases.atom",
+ "source": "https://github.com/thephpleague/commonmark"
+ },
+ "funding": [
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-08-30T16:55:00+00:00"
+ },
+ {
+ "name": "league/config",
+ "version": "v1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/config.git",
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+ "shasum": ""
+ },
+ "require": {
+ "dflydev/dot-access-data": "^3.0.1",
+ "nette/schema": "^1.2",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.8.2",
+ "phpunit/phpunit": "^9.5.5",
+ "scrutinizer/ocular": "^1.8.1",
+ "unleashedtech/php-coding-standard": "^3.1",
+ "vimeo/psalm": "^4.7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Config\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Define configuration arrays with strict schemas and access values with dot notation",
+ "homepage": "https://config.thephpleague.com",
+ "keywords": [
+ "array",
+ "config",
+ "configuration",
+ "dot",
+ "dot-access",
+ "nested",
+ "schema"
+ ],
+ "support": {
+ "docs": "https://config.thephpleague.com/",
+ "issues": "https://github.com/thephpleague/config/issues",
+ "rss": "https://github.com/thephpleague/config/releases.atom",
+ "source": "https://github.com/thephpleague/config"
+ },
+ "funding": [
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-11T20:36:23+00:00"
+ },
+ {
+ "name": "league/flysystem",
+ "version": "3.23.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem.git",
+ "reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc",
+ "reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc",
+ "shasum": ""
+ },
+ "require": {
+ "league/flysystem-local": "^3.0.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "conflict": {
+ "async-aws/core": "<1.19.0",
+ "async-aws/s3": "<1.14.0",
+ "aws/aws-sdk-php": "3.209.31 || 3.210.0",
+ "guzzlehttp/guzzle": "<7.0",
+ "guzzlehttp/ringphp": "<1.1.1",
+ "phpseclib/phpseclib": "3.0.15",
+ "symfony/http-client": "<5.2"
+ },
+ "require-dev": {
+ "async-aws/s3": "^1.5 || ^2.0",
+ "async-aws/simple-s3": "^1.1 || ^2.0",
+ "aws/aws-sdk-php": "^3.220.0",
+ "composer/semver": "^3.0",
+ "ext-fileinfo": "*",
+ "ext-ftp": "*",
+ "ext-zip": "*",
+ "friendsofphp/php-cs-fixer": "^3.5",
+ "google/cloud-storage": "^1.23",
+ "microsoft/azure-storage-blob": "^1.1",
+ "phpseclib/phpseclib": "^3.0.34",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.5.11|^10.0",
+ "sabre/dav": "^4.3.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "File storage abstraction for PHP",
+ "keywords": [
+ "WebDAV",
+ "aws",
+ "cloud",
+ "file",
+ "files",
+ "filesystem",
+ "filesystems",
+ "ftp",
+ "s3",
+ "sftp",
+ "storage"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/flysystem/issues",
+ "source": "https://github.com/thephpleague/flysystem/tree/3.23.0"
+ },
+ "funding": [
+ {
+ "url": "https://ecologi.com/frankdejonge",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-04T10:16:17+00:00"
+ },
+ {
+ "name": "league/flysystem-local",
+ "version": "3.23.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem-local.git",
+ "reference": "5cf046ba5f059460e86a997c504dd781a39a109b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/5cf046ba5f059460e86a997c504dd781a39a109b",
+ "reference": "5cf046ba5f059460e86a997c504dd781a39a109b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "league/flysystem": "^3.0.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\Local\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "Local filesystem adapter for Flysystem.",
+ "keywords": [
+ "Flysystem",
+ "file",
+ "files",
+ "filesystem",
+ "local"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/flysystem-local/issues",
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.0"
+ },
+ "funding": [
+ {
+ "url": "https://ecologi.com/frankdejonge",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-04T10:14:46+00:00"
+ },
+ {
+ "name": "league/mime-type-detection",
+ "version": "1.14.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/mime-type-detection.git",
+ "reference": "b6a5854368533df0295c5761a0253656a2e52d9e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e",
+ "reference": "b6a5854368533df0295c5761a0253656a2e52d9e",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.2",
+ "phpstan/phpstan": "^0.12.68",
+ "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\MimeTypeDetection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "Mime-type detection for Flysystem",
+ "support": {
+ "issues": "https://github.com/thephpleague/mime-type-detection/issues",
+ "source": "https://github.com/thephpleague/mime-type-detection/tree/1.14.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-17T14:13:20+00:00"
+ },
+ {
+ "name": "monolog/monolog",
+ "version": "3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448",
+ "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "^2.0 || ^3.0"
+ },
+ "provide": {
+ "psr/log-implementation": "3.0.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^3.0",
+ "doctrine/couchdb": "~1.0@dev",
+ "elasticsearch/elasticsearch": "^7 || ^8",
+ "ext-json": "*",
+ "graylog2/gelf-php": "^1.4.2 || ^2.0",
+ "guzzlehttp/guzzle": "^7.4.5",
+ "guzzlehttp/psr7": "^2.2",
+ "mongodb/mongodb": "^1.8",
+ "php-amqplib/php-amqplib": "~2.4 || ^3",
+ "phpstan/phpstan": "^1.9",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.4",
+ "phpunit/phpunit": "^10.1",
+ "predis/predis": "^1.1 || ^2",
+ "ruflin/elastica": "^7",
+ "symfony/mailer": "^5.4 || ^6",
+ "symfony/mime": "^5.4 || ^6"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+ "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+ "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
+ "ext-mbstring": "Allow to work properly with unicode symbols",
+ "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
+ "ext-openssl": "Required to send log messages using SSL",
+ "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Monolog\\": "src/Monolog"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+ "homepage": "https://github.com/Seldaek/monolog",
+ "keywords": [
+ "log",
+ "logging",
+ "psr-3"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/monolog/issues",
+ "source": "https://github.com/Seldaek/monolog/tree/3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-27T15:32:31+00:00"
+ },
+ {
+ "name": "nesbot/carbon",
+ "version": "2.72.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/briannesbitt/Carbon.git",
+ "reference": "3e7edc41b58d65509baeb0d4a14c8fa41d627130"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/3e7edc41b58d65509baeb0d4a14c8fa41d627130",
+ "reference": "3e7edc41b58d65509baeb0d4a14c8fa41d627130",
+ "shasum": ""
+ },
+ "require": {
+ "carbonphp/carbon-doctrine-types": "*",
+ "ext-json": "*",
+ "php": "^7.1.8 || ^8.0",
+ "psr/clock": "^1.0",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
+ },
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
+ "doctrine/orm": "^2.7 || ^3.0",
+ "friendsofphp/php-cs-fixer": "^3.0",
+ "kylekatarnls/multi-tester": "^2.0",
+ "ondrejmirtes/better-reflection": "*",
+ "phpmd/phpmd": "^2.9",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12.99 || ^1.7.14",
+ "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
+ "squizlabs/php_codesniffer": "^3.4"
+ },
+ "bin": [
+ "bin/carbon"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-3.x": "3.x-dev",
+ "dev-master": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Carbon\\Laravel\\ServiceProvider"
+ ]
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Carbon\\": "src/Carbon/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brian Nesbitt",
+ "email": "brian@nesbot.com",
+ "homepage": "https://markido.com"
+ },
+ {
+ "name": "kylekatarnls",
+ "homepage": "https://github.com/kylekatarnls"
+ }
+ ],
+ "description": "An API extension for DateTime that supports 281 different languages.",
+ "homepage": "https://carbon.nesbot.com",
+ "keywords": [
+ "date",
+ "datetime",
+ "time"
+ ],
+ "support": {
+ "docs": "https://carbon.nesbot.com/docs",
+ "issues": "https://github.com/briannesbitt/Carbon/issues",
+ "source": "https://github.com/briannesbitt/Carbon"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon#sponsor",
+ "type": "opencollective"
+ },
+ {
+ "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-19T00:21:53+00:00"
+ },
+ {
+ "name": "nette/schema",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/schema.git",
+ "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
+ "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
+ "shasum": ""
+ },
+ "require": {
+ "nette/utils": "^4.0",
+ "php": "8.1 - 8.3"
+ },
+ "require-dev": {
+ "nette/tester": "^2.4",
+ "phpstan/phpstan-nette": "^1.0",
+ "tracy/tracy": "^2.8"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "📐 Nette Schema: validating data structures against a given Schema.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "config",
+ "nette"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/schema/issues",
+ "source": "https://github.com/nette/schema/tree/v1.3.0"
+ },
+ "time": "2023-12-11T11:54:22+00:00"
+ },
+ {
+ "name": "nette/utils",
+ "version": "v4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/utils.git",
+ "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218",
+ "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0 <8.4"
+ },
+ "conflict": {
+ "nette/finder": "<3",
+ "nette/schema": "<1.2.2"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "dev-master",
+ "nette/tester": "^2.5",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.9"
+ },
+ "suggest": {
+ "ext-gd": "to use Image",
+ "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
+ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
+ "ext-json": "to use Nette\\Utils\\Json",
+ "ext-mbstring": "to use Strings::lower() etc...",
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "array",
+ "core",
+ "datetime",
+ "images",
+ "json",
+ "nette",
+ "paginator",
+ "password",
+ "slugify",
+ "string",
+ "unicode",
+ "utf-8",
+ "utility",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/utils/issues",
+ "source": "https://github.com/nette/utils/tree/v4.0.4"
+ },
+ "time": "2024-01-17T16:50:36+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v5.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
+ "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "php": ">=7.4"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0"
+ },
+ "time": "2024-01-07T17:17:35+00:00"
+ },
+ {
+ "name": "nunomaduro/termwind",
+ "version": "v1.15.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/termwind.git",
+ "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
+ "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "symfony/console": "^5.3.0|^6.0.0"
+ },
+ "require-dev": {
+ "ergebnis/phpstan-rules": "^1.0.",
+ "illuminate/console": "^8.0|^9.0",
+ "illuminate/support": "^8.0|^9.0",
+ "laravel/pint": "^1.0.0",
+ "pestphp/pest": "^1.21.0",
+ "pestphp/pest-plugin-mock": "^1.0",
+ "phpstan/phpstan": "^1.4.6",
+ "phpstan/phpstan-strict-rules": "^1.1.0",
+ "symfony/var-dumper": "^5.2.7|^6.0.0",
+ "thecodingmachine/phpstan-strict-rules": "^1.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Termwind\\Laravel\\TermwindServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Functions.php"
+ ],
+ "psr-4": {
+ "Termwind\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Its like Tailwind CSS, but for the console.",
+ "keywords": [
+ "cli",
+ "console",
+ "css",
+ "package",
+ "php",
+ "style"
+ ],
+ "support": {
+ "issues": "https://github.com/nunomaduro/termwind/issues",
+ "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/xiCO2k",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-08T01:06:31+00:00"
+ },
+ {
+ "name": "nyholm/psr7",
+ "version": "1.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Nyholm/psr7.git",
+ "reference": "aa5fc277a4f5508013d571341ade0c3886d4d00e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Nyholm/psr7/zipball/aa5fc277a4f5508013d571341ade0c3886d4d00e",
+ "reference": "aa5fc277a4f5508013d571341ade0c3886d4d00e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "provide": {
+ "php-http/message-factory-implementation": "1.0",
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "http-interop/http-factory-tests": "^0.9",
+ "php-http/message-factory": "^1.0",
+ "php-http/psr7-integration-tests": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4",
+ "symfony/error-handler": "^4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.8-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Nyholm\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com"
+ },
+ {
+ "name": "Martijn van der Ven",
+ "email": "martijn@vanderven.se"
+ }
+ ],
+ "description": "A fast PHP7 implementation of PSR-7",
+ "homepage": "https://tnyholm.se",
+ "keywords": [
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "issues": "https://github.com/Nyholm/psr7/issues",
+ "source": "https://github.com/Nyholm/psr7/tree/1.8.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Zegnat",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nyholm",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-13T09:31:12+00:00"
+ },
+ {
+ "name": "php-http/discovery",
+ "version": "1.19.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/discovery.git",
+ "reference": "61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/discovery/zipball/61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb",
+ "reference": "61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb",
+ "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.2"
+ },
+ "time": "2023-11-30T16:49:05+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"
+ },
+ {
+ "name": "phpoption/phpoption",
+ "version": "1.9.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/schmittjoh/php-option.git",
+ "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820",
+ "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": true
+ },
+ "branch-alias": {
+ "dev-master": "1.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpOption\\": "src/PhpOption/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com",
+ "homepage": "https://github.com/schmittjoh"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ }
+ ],
+ "description": "Option Type for PHP",
+ "keywords": [
+ "language",
+ "option",
+ "php",
+ "type"
+ ],
+ "support": {
+ "issues": "https://github.com/schmittjoh/php-option/issues",
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
+ "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"
+ },
+ {
+ "name": "psr/clock",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/clock.git",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Clock\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for reading the clock.",
+ "homepage": "https://github.com/php-fig/clock",
+ "keywords": [
+ "clock",
+ "now",
+ "psr",
+ "psr-20",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/clock/issues",
+ "source": "https://github.com/php-fig/clock/tree/1.0.0"
+ },
+ "time": "2022-11-25T14:36:26+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
+ },
+ "time": "2021-11-05T16:47:00+00:00"
+ },
+ {
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/http-client",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-client.git",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Client\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP clients",
+ "homepage": "https://github.com/php-fig/http-client",
+ "keywords": [
+ "http",
+ "http-client",
+ "psr",
+ "psr-18"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-client"
+ },
+ "time": "2023-09-23T14:17:50+00:00"
+ },
+ {
+ "name": "psr/http-factory",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "e616d01114759c4c489f93b099585439f795fe35"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
+ "reference": "e616d01114759c4c489f93b099585439f795fe35",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for PSR-7 HTTP message factories",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "psr",
+ "psr-17",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+ },
+ "time": "2023-04-10T20:10:41+00:00"
+ },
+ {
+ "name": "psr/http-message",
+ "version": "2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/2.0"
+ },
+ "time": "2023-04-04T09:54:51+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/3.0.0"
+ },
+ "time": "2021-07-14T16:46:02+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
+ },
+ "time": "2021-10-29T13:26:27+00:00"
+ },
+ {
+ "name": "psy/psysh",
+ "version": "v0.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/bobthecow/psysh.git",
+ "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d",
+ "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "nikic/php-parser": "^5.0 || ^4.0",
+ "php": "^8.0 || ^7.4",
+ "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4",
+ "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4"
+ },
+ "conflict": {
+ "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.2"
+ },
+ "suggest": {
+ "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
+ "ext-pdo-sqlite": "The doc command requires SQLite to work.",
+ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well."
+ },
+ "bin": [
+ "bin/psysh"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.12.x-dev"
+ },
+ "bamarni-bin": {
+ "bin-links": false,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Psy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Justin Hileman",
+ "email": "justin@justinhileman.info",
+ "homepage": "http://justinhileman.com"
+ }
+ ],
+ "description": "An interactive shell for modern PHP.",
+ "homepage": "http://psysh.org",
+ "keywords": [
+ "REPL",
+ "console",
+ "interactive",
+ "shell"
+ ],
+ "support": {
+ "issues": "https://github.com/bobthecow/psysh/issues",
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.0"
+ },
+ "time": "2023-12-20T15:28:09+00:00"
+ },
+ {
+ "name": "ralouphie/getallheaders",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^5 || ^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/getallheaders.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
+ }
+ ],
+ "description": "A polyfill for getallheaders.",
+ "support": {
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ },
+ "time": "2019-03-08T08:55:37+00:00"
+ },
+ {
+ "name": "ramsey/collection",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/collection.git",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "captainhook/plugin-composer": "^5.3",
+ "ergebnis/composer-normalize": "^2.28.3",
+ "fakerphp/faker": "^1.21",
+ "hamcrest/hamcrest-php": "^2.0",
+ "jangregor/phpstan-prophecy": "^1.0",
+ "mockery/mockery": "^1.5",
+ "php-parallel-lint/php-console-highlighter": "^1.0",
+ "php-parallel-lint/php-parallel-lint": "^1.3",
+ "phpcsstandards/phpcsutils": "^1.0.0-rc1",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpstan/extension-installer": "^1.2",
+ "phpstan/phpstan": "^1.9",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "psalm/plugin-mockery": "^1.1",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "ramsey/coding-standard": "^2.0.3",
+ "ramsey/conventional-commits": "^1.3",
+ "vimeo/psalm": "^5.4"
+ },
+ "type": "library",
+ "extra": {
+ "captainhook": {
+ "force-install": true
+ },
+ "ramsey/conventional-commits": {
+ "configFile": "conventional-commits.json"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Ramsey\\Collection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ben Ramsey",
+ "email": "ben@benramsey.com",
+ "homepage": "https://benramsey.com"
+ }
+ ],
+ "description": "A PHP library for representing and manipulating collections.",
+ "keywords": [
+ "array",
+ "collection",
+ "hash",
+ "map",
+ "queue",
+ "set"
+ ],
+ "support": {
+ "issues": "https://github.com/ramsey/collection/issues",
+ "source": "https://github.com/ramsey/collection/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-31T21:50:55+00:00"
+ },
+ {
+ "name": "ramsey/uuid",
+ "version": "4.7.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/uuid.git",
+ "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e",
+ "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e",
+ "shasum": ""
+ },
+ "require": {
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11",
+ "ext-json": "*",
+ "php": "^8.0",
+ "ramsey/collection": "^1.2 || ^2.0"
+ },
+ "replace": {
+ "rhumsaa/uuid": "self.version"
+ },
+ "require-dev": {
+ "captainhook/captainhook": "^5.10",
+ "captainhook/plugin-composer": "^5.3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
+ "doctrine/annotations": "^1.8",
+ "ergebnis/composer-normalize": "^2.15",
+ "mockery/mockery": "^1.3",
+ "paragonie/random-lib": "^2",
+ "php-mock/php-mock": "^2.2",
+ "php-mock/php-mock-mockery": "^1.3",
+ "php-parallel-lint/php-parallel-lint": "^1.1",
+ "phpbench/phpbench": "^1.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9",
+ "ramsey/composer-repl": "^1.4",
+ "slevomat/coding-standard": "^8.4",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "^4.9"
+ },
+ "suggest": {
+ "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
+ "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
+ "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
+ "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
+ "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
+ },
+ "type": "library",
+ "extra": {
+ "captainhook": {
+ "force-install": true
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Ramsey\\Uuid\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
+ "keywords": [
+ "guid",
+ "identifier",
+ "uuid"
+ ],
+ "support": {
+ "issues": "https://github.com/ramsey/uuid/issues",
+ "source": "https://github.com/ramsey/uuid/tree/4.7.5"
+ },
+ "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"
+ },
+ {
+ "name": "scrivo/highlight.php",
+ "version": "v9.18.1.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/scrivo/highlight.php.git",
+ "reference": "850f4b44697a2552e892ffe71490ba2733c2fc6e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/scrivo/highlight.php/zipball/850f4b44697a2552e892ffe71490ba2733c2fc6e",
+ "reference": "850f4b44697a2552e892ffe71490ba2733c2fc6e",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": ">=5.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8|^5.7",
+ "sabberworm/php-css-parser": "^8.3",
+ "symfony/finder": "^2.8|^3.4|^5.4",
+ "symfony/var-dumper": "^2.8|^3.4|^5.4"
+ },
+ "suggest": {
+ "ext-mbstring": "Allows highlighting code with unicode characters and supports language with unicode keywords"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "HighlightUtilities/functions.php"
+ ],
+ "psr-0": {
+ "Highlight\\": "",
+ "HighlightUtilities\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Geert Bergman",
+ "homepage": "http://www.scrivo.org/",
+ "role": "Project Author"
+ },
+ {
+ "name": "Vladimir Jimenez",
+ "homepage": "https://allejo.io",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Martin Folkers",
+ "homepage": "https://twobrain.io",
+ "role": "Contributor"
+ }
+ ],
+ "description": "Server side syntax highlighter that supports 185 languages. It's a PHP port of highlight.js",
+ "keywords": [
+ "code",
+ "highlight",
+ "highlight.js",
+ "highlight.php",
+ "syntax"
+ ],
+ "support": {
+ "issues": "https://github.com/scrivo/highlight.php/issues",
+ "source": "https://github.com/scrivo/highlight.php"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/allejo",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-17T21:53:22+00:00"
+ },
+ {
+ "name": "sentry/sentry",
+ "version": "4.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/getsentry/sentry-php.git",
+ "reference": "95a428a59ebddf786a27f09d19ec395a32f62082"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/95a428a59ebddf786a27f09d19ec395a32f62082",
+ "reference": "95a428a59ebddf786a27f09d19ec395a32f62082",
+ "shasum": ""
+ },
+ "require": {
+ "ext-curl": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "guzzlehttp/psr7": "^1.8.4|^2.1.1",
+ "jean85/pretty-package-versions": "^1.5|^2.0.4",
+ "php": "^7.2|^8.0",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "symfony/options-resolver": "^4.4.30|^5.0.11|^6.0|^7.0"
+ },
+ "conflict": {
+ "raven/raven": "*"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.4",
+ "guzzlehttp/promises": "^1.0|^2.0",
+ "guzzlehttp/psr7": "^1.8.4|^2.1.1",
+ "monolog/monolog": "^1.6|^2.0|^3.0",
+ "phpbench/phpbench": "^1.0",
+ "phpstan/phpstan": "^1.3",
+ "phpunit/phpunit": "^8.5.14|^9.4",
+ "symfony/phpunit-bridge": "^5.2|^6.0|^7.0",
+ "vimeo/psalm": "^4.17"
+ },
+ "suggest": {
+ "monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler."
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Sentry\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Sentry",
+ "email": "accounts@sentry.io"
+ }
+ ],
+ "description": "PHP SDK for Sentry (http://sentry.io)",
+ "homepage": "http://sentry.io",
+ "keywords": [
+ "crash-reporting",
+ "crash-reports",
+ "error-handler",
+ "error-monitoring",
+ "log",
+ "logging",
+ "profiling",
+ "sentry",
+ "tracing"
+ ],
+ "support": {
+ "issues": "https://github.com/getsentry/sentry-php/issues",
+ "source": "https://github.com/getsentry/sentry-php/tree/4.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://sentry.io/",
+ "type": "custom"
+ },
+ {
+ "url": "https://sentry.io/pricing/",
+ "type": "custom"
+ }
+ ],
+ "time": "2024-01-23T09:49:55+00:00"
+ },
+ {
+ "name": "sentry/sentry-laravel",
+ "version": "4.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/getsentry/sentry-laravel.git",
+ "reference": "fa38767be2f14505fd93bfa5acadb9dfec1fdeee"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/fa38767be2f14505fd93bfa5acadb9dfec1fdeee",
+ "reference": "fa38767be2f14505fd93bfa5acadb9dfec1fdeee",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0",
+ "nyholm/psr7": "^1.0",
+ "php": "^7.2 | ^8.0",
+ "sentry/sentry": "^4.3",
+ "symfony/psr-http-message-bridge": "^1.0 | ^2.0 | ^6.0 | ^7.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.11",
+ "guzzlehttp/guzzle": "^7.2",
+ "laravel/folio": "^1.0",
+ "laravel/framework": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0",
+ "livewire/livewire": "^2.0 | ^3.0",
+ "mockery/mockery": "^1.3",
+ "orchestra/testbench": "^4.7 | ^5.1 | ^6.0 | ^7.0 | ^8.0",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8.4 | ^9.3 | ^10.4"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Sentry\\Laravel\\ServiceProvider",
+ "Sentry\\Laravel\\Tracing\\ServiceProvider"
+ ],
+ "aliases": {
+ "Sentry": "Sentry\\Laravel\\Facade"
+ }
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Sentry\\Laravel\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Sentry",
+ "email": "accounts@sentry.io"
+ }
+ ],
+ "description": "Laravel SDK for Sentry (https://sentry.io)",
+ "homepage": "https://sentry.io",
+ "keywords": [
+ "crash-reporting",
+ "crash-reports",
+ "error-handler",
+ "error-monitoring",
+ "laravel",
+ "log",
+ "logging",
+ "profiling",
+ "sentry",
+ "tracing"
+ ],
+ "support": {
+ "issues": "https://github.com/getsentry/sentry-laravel/issues",
+ "source": "https://github.com/getsentry/sentry-laravel/tree/4.1.2"
+ },
+ "funding": [
+ {
+ "url": "https://sentry.io/",
+ "type": "custom"
+ },
+ {
+ "url": "https://sentry.io/pricing/",
+ "type": "custom"
+ }
+ ],
+ "time": "2024-01-16T12:46:27+00:00"
+ },
+ {
+ "name": "spatie/laravel-honeypot",
+ "version": "4.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/laravel-honeypot.git",
+ "reference": "85728128acb3ff53ffb23c86b9cc2c3d58355050"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/laravel-honeypot/zipball/85728128acb3ff53ffb23c86b9cc2c3d58355050",
+ "reference": "85728128acb3ff53ffb23c86b9cc2c3d58355050",
+ "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",
+ "php": "^8.0",
+ "spatie/laravel-package-tools": "^1.9",
+ "symfony/http-foundation": "^5.1.2|^6.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",
+ "spatie/test-time": "^1.2.1"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Spatie\\Honeypot\\HoneypotServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Honeypot\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "Preventing spam submitted through forms",
+ "homepage": "https://github.com/spatie/laravel-honeypot",
+ "keywords": [
+ "laravel-honeypot",
+ "spatie"
+ ],
+ "support": {
+ "source": "https://github.com/spatie/laravel-honeypot/tree/4.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "custom"
+ }
+ ],
+ "time": "2023-12-01T10:30:39+00:00"
+ },
+ {
+ "name": "spatie/laravel-package-tools",
+ "version": "1.16.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/laravel-package-tools.git",
+ "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15",
+ "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/contracts": "^9.28|^10.0|^11.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"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\LaravelPackageTools\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "Tools for creating Laravel packages",
+ "homepage": "https://github.com/spatie/laravel-package-tools",
+ "keywords": [
+ "laravel-package-tools",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/laravel-package-tools/issues",
+ "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2024-01-11T08:43:00+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v6.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/0254811a143e6bc6c8deea08b589a7e68a37f625",
+ "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^5.4|^6.0|^7.0"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<5.4",
+ "symfony/dotenv": "<5.4",
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/lock": "<5.4",
+ "symfony/process": "<5.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command-line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v6.4.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-10T16:15:48+00:00"
+ },
+ {
+ "name": "symfony/css-selector",
+ "version": "v7.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/css-selector.git",
+ "reference": "bb51d46e53ef8d50d523f0c5faedba056a27943e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/bb51d46e53ef8d50d523f0c5faedba056a27943e",
+ "reference": "bb51d46e53ef8d50d523f0c5faedba056a27943e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\CssSelector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Jean-François Simon",
+ "email": "jeanfrancois.simon@sensiolabs.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Converts CSS selectors to XPath expressions",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/css-selector/tree/v7.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T17:59:56+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-23T14:45:45+00:00"
+ },
+ {
+ "name": "symfony/error-handler",
+ "version": "v6.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/error-handler.git",
+ "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/c873490a1c97b3a0a4838afc36ff36c112d02788",
+ "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "conflict": {
+ "symfony/deprecation-contracts": "<2.5",
+ "symfony/http-kernel": "<6.4"
+ },
+ "require-dev": {
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/serializer": "^5.4|^6.0|^7.0"
+ },
+ "bin": [
+ "Resources/bin/patch-type-declarations"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ErrorHandler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to manage errors and ease debugging PHP code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/error-handler/tree/v6.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-18T09:43:34+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v7.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/098b62ae81fdd6cbf941f355059f617db28f4f9a",
+ "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<6.4",
+ "symfony/service-contracts": "<2.5"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-27T22:24:19+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "a76aed96a42d2b521153fb382d418e30d18b59df"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df",
+ "reference": "a76aed96a42d2b521153fb382d418e30d18b59df",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\EventDispatcher\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-23T14:45:45+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v6.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "11d736e97f116ac375a81f96e662911a34cd50ce"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce",
+ "reference": "11d736e97f116ac375a81f96e662911a34cd50ce",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v6.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T17:30:12+00:00"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v6.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/172d807f9ef3fc3fbed8377cc57c20d389269271",
+ "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.1",
+ "symfony/polyfill-php83": "^1.27"
+ },
+ "conflict": {
+ "symfony/cache": "<6.3"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^2.13.1|^3|^4",
+ "predis/predis": "^1.1|^2.0",
+ "symfony/cache": "^6.3|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0",
+ "symfony/mime": "^5.4|^6.0|^7.0",
+ "symfony/rate-limiter": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Defines an object-oriented layer for the HTTP specification",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-foundation/tree/v6.4.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-27T22:16:42+00:00"
+ },
+ {
+ "name": "symfony/http-kernel",
+ "version": "v6.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-kernel.git",
+ "reference": "13e8387320b5942d0dc408440c888e2d526efef4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/13e8387320b5942d0dc408440c888e2d526efef4",
+ "reference": "13e8387320b5942d0dc408440c888e2d526efef4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<5.4",
+ "symfony/cache": "<5.4",
+ "symfony/config": "<6.1",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/doctrine-bridge": "<5.4",
+ "symfony/form": "<5.4",
+ "symfony/http-client": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<5.4",
+ "symfony/translation": "<5.4",
+ "symfony/translation-contracts": "<2.5",
+ "symfony/twig-bridge": "<5.4",
+ "symfony/validator": "<6.4",
+ "symfony/var-dumper": "<6.3",
+ "twig/twig": "<2.13"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
+ },
+ "require-dev": {
+ "psr/cache": "^1.0|^2.0|^3.0",
+ "symfony/browser-kit": "^5.4|^6.0|^7.0",
+ "symfony/clock": "^6.2|^7.0",
+ "symfony/config": "^6.1|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/dom-crawler": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/property-access": "^5.4.5|^6.0.5|^7.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.3|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^5.4|^6.0|^7.0",
+ "symfony/translation-contracts": "^2.5|^3",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/var-exporter": "^6.2|^7.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpKernel\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a structured process for converting a Request into a Response",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-kernel/tree/v6.4.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-30T15:31:44+00:00"
+ },
+ {
+ "name": "symfony/mailer",
+ "version": "v6.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mailer.git",
+ "reference": "6da89e5c9202f129717a770a03183fb140720168"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/6da89e5c9202f129717a770a03183fb140720168",
+ "reference": "6da89e5c9202f129717a770a03183fb140720168",
+ "shasum": ""
+ },
+ "require": {
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1",
+ "psr/log": "^1|^2|^3",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/mime": "^6.2|^7.0",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/messenger": "<6.2",
+ "symfony/mime": "<6.2",
+ "symfony/twig-bridge": "<6.2.1"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^6.2|^7.0",
+ "symfony/twig-bridge": "^6.2|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mailer\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps sending emails",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/mailer/tree/v6.4.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-19T09:12:31+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v6.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/ca4f58b2ef4baa8f6cecbeca2573f88cd577d205",
+ "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0"
+ },
+ "conflict": {
+ "egulias/email-validator": "~3.0.0",
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/mailer": "<5.4",
+ "symfony/serializer": "<6.3.2"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10|^3.1|^4",
+ "league/html-to-markdown": "^5.0",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/property-access": "^5.4|^6.0|^7.0",
+ "symfony/property-info": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.3.2|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows manipulating MIME messages",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "mime",
+ "mime-type"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/mime/tree/v6.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-17T11:49:05+00:00"
+ },
+ {
+ "name": "symfony/options-resolver",
+ "version": "v7.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "700ff4096e346f54cb628ea650767c8130f1001f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/700ff4096e346f54cb628ea650767c8130f1001f",
+ "reference": "700ff4096e346f54cb628ea650767c8130f1001f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\OptionsResolver\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an improved replacement for the array_replace PHP function",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "config",
+ "configuration",
+ "options"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/options-resolver/tree/v7.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-08-08T10:20:21+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
+ "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-ctype": "*"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "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\\Ctype\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "875e90aeea2777b6f135677f618529449334a612"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612",
+ "reference": "875e90aeea2777b6f135677f618529449334a612",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "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"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-idn",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "ecaafce9f77234a6a449d29e49267ba10499116d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d",
+ "reference": "ecaafce9f77234a6a449d29e49267ba10499116d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "symfony/polyfill-intl-normalizer": "^1.10",
+ "symfony/polyfill-php72": "^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"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Trevor Rowbotham",
+ "email": "trevor.rowbotham@pm.me"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "idn",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:30:37+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
+ "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "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"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "42292d99c55abe617799667f454222c54c60e229"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
+ "reference": "42292d99c55abe617799667f454222c54c60e229",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "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\\Mbstring\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "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",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+ "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+ "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\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php83",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11",
+ "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "symfony/polyfill-php80": "^1.14"
+ },
+ "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\\Php83\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-08-16T06:22:46+00:00"
+ },
+ {
+ "name": "symfony/polyfill-uuid",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-uuid.git",
+ "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/9c44518a5aff8da565c8a55dbe85d2769e6f630e",
+ "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-uuid": "*"
+ },
+ "suggest": {
+ "ext-uuid": "For best performance"
+ },
+ "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\\Uuid\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for uuid functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "uuid"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-01-26T09:26:14+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v6.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/c4b1ef0bc80533d87a2e969806172f1c2a980241",
+ "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v6.4.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-22T16:42:54+00:00"
+ },
+ {
+ "name": "symfony/psr-http-message-bridge",
+ "version": "v7.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/psr-http-message-bridge.git",
+ "reference": "c5e973032e9a32c6f1bfa87d7832853b84cbaf22"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/c5e973032e9a32c6f1bfa87d7832853b84cbaf22",
+ "reference": "c5e973032e9a32c6f1bfa87d7832853b84cbaf22",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "psr/http-message": "^1.0|^2.0",
+ "symfony/http-foundation": "^6.4|^7.0"
+ },
+ "conflict": {
+ "php-http/discovery": "<1.15",
+ "symfony/http-kernel": "<6.4"
+ },
+ "require-dev": {
+ "nyholm/psr7": "^1.1",
+ "php-http/discovery": "^1.15",
+ "psr/log": "^1.1.4|^2|^3",
+ "symfony/browser-kit": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/framework-bundle": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0"
+ },
+ "type": "symfony-bridge",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bridge\\PsrHttpMessage\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "PSR HTTP message bridge",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-28T19:18:20+00:00"
+ },
+ {
+ "name": "symfony/routing",
+ "version": "v6.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "98eab13a07fddc85766f1756129c69f207ffbc21"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/98eab13a07fddc85766f1756129c69f207ffbc21",
+ "reference": "98eab13a07fddc85766f1756129c69f207ffbc21",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "doctrine/annotations": "<1.12",
+ "symfony/config": "<6.2",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/yaml": "<5.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.12|^2",
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^6.2|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Routing\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Maps an HTTP request to a set of configuration variables",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/routing/tree/v6.4.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-29T15:34:34+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v3.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0",
+ "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0"
+ },
+ "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"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v3.4.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-26T14:02:43+00:00"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v7.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/cc78f14f91f5e53b42044d0620961c48028ff9f5",
+ "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/translation-contracts": "<2.5"
+ },
+ "require-dev": {
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v7.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-10T16:54:46+00:00"
+ },
+ {
+ "name": "symfony/translation",
+ "version": "v6.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/a2ab2ec1a462e53016de8e8d5e8912bfd62ea681",
+ "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/translation-contracts": "^2.5|^3.0"
+ },
+ "conflict": {
+ "symfony/config": "<5.4",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/service-contracts": "<2.5",
+ "symfony/twig-bundle": "<5.4",
+ "symfony/yaml": "<5.4"
+ },
+ "provide": {
+ "symfony/translation-implementation": "2.3|3.0"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.13",
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
+ "symfony/polyfill-intl-icu": "^1.21",
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to internationalize your application",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/translation/tree/v6.4.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-18T09:25:29+00:00"
+ },
+ {
+ "name": "symfony/translation-contracts",
+ "version": "v3.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "06450585bf65e978026bda220cdebca3f867fde7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7",
+ "reference": "06450585bf65e978026bda220cdebca3f867fde7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to translation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-26T14:02:43+00:00"
+ },
+ {
+ "name": "symfony/uid",
+ "version": "v6.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/uid.git",
+ "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/8092dd1b1a41372110d06374f99ee62f7f0b9a92",
+ "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/polyfill-uuid": "^1.15"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Uid\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to generate and represent UIDs",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "UID",
+ "ulid",
+ "uuid"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/uid/tree/v6.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-10-31T08:18:17+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v6.4.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/68d6573ec98715ddcae5a0a85bee3c1c27a4c33f",
+ "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/console": "<5.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^6.3|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-dumper/tree/v6.4.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-28T19:16:56+00:00"
+ },
+ {
+ "name": "tijsverkoyen/css-to-inline-styles",
+ "version": "v2.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
+ "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb",
+ "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "php": "^5.5 || ^7.0 || ^8.0",
+ "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "TijsVerkoyen\\CssToInlineStyles\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Tijs Verkoyen",
+ "email": "css_to_inline_styles@verkoyen.eu",
+ "role": "Developer"
+ }
+ ],
+ "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
+ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
+ "support": {
+ "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
+ "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7"
+ },
+ "time": "2023-12-08T13:03:43+00:00"
+ },
+ {
+ "name": "ua-parser/uap-php",
+ "version": "v3.9.14",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ua-parser/uap-php.git",
+ "reference": "b796c5ea5df588e65aeb4e2c6cce3811dec4fed6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ua-parser/uap-php/zipball/b796c5ea5df588e65aeb4e2c6cce3811dec4fed6",
+ "reference": "b796c5ea5df588e65aeb4e2c6cce3811dec4fed6",
+ "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.9.14"
+ },
+ "time": "2020-10-02T23:36:20+00:00"
+ },
+ {
+ "name": "vlucas/phpdotenv",
+ "version": "v5.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vlucas/phpdotenv.git",
+ "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4",
+ "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4",
+ "shasum": ""
+ },
+ "require": {
+ "ext-pcre": "*",
+ "graham-campbell/result-type": "^1.1.2",
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.2",
+ "symfony/polyfill-ctype": "^1.24",
+ "symfony/polyfill-mbstring": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-filter": "*",
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
+ },
+ "suggest": {
+ "ext-filter": "Required to use the boolean validator."
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": true
+ },
+ "branch-alias": {
+ "dev-master": "5.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dotenv\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Vance Lucas",
+ "email": "vance@vancelucas.com",
+ "homepage": "https://github.com/vlucas"
+ }
+ ],
+ "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
+ "support": {
+ "issues": "https://github.com/vlucas/phpdotenv/issues",
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-12T22:43:29+00:00"
+ },
+ {
+ "name": "voku/portable-ascii",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/voku/portable-ascii.git",
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
+ },
+ "suggest": {
+ "ext-intl": "Use Intl for transliterator_transliterate() support"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "voku\\": "src/voku/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Lars Moelleken",
+ "homepage": "http://www.moelleken.org/"
+ }
+ ],
+ "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
+ "homepage": "https://github.com/voku/portable-ascii",
+ "keywords": [
+ "ascii",
+ "clean",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/voku/portable-ascii/issues",
+ "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.me/moelleken",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/voku",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/portable-ascii",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://www.patreon.com/voku",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-08T17:03:00+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.11.0"
+ },
+ "time": "2022-06-03T18:03:27+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "fakerphp/faker",
+ "version": "v1.23.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/FakerPHP/Faker.git",
+ "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b",
+ "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0",
+ "psr/container": "^1.0 || ^2.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "conflict": {
+ "fzaninotto/faker": "*"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.4.1",
+ "doctrine/persistence": "^1.3 || ^2.0",
+ "ext-intl": "*",
+ "phpunit/phpunit": "^9.5.26",
+ "symfony/phpunit-bridge": "^5.4.16"
+ },
+ "suggest": {
+ "doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
+ "ext-curl": "Required by Faker\\Provider\\Image to download images.",
+ "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
+ "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
+ "ext-mbstring": "Required for multibyte Unicode string functionality."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Faker\\": "src/Faker/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "François Zaninotto"
+ }
+ ],
+ "description": "Faker is a PHP library that generates fake data for you.",
+ "keywords": [
+ "data",
+ "faker",
+ "fixtures"
+ ],
+ "support": {
+ "issues": "https://github.com/FakerPHP/Faker/issues",
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1"
+ },
+ "time": "2024-01-02T13:46:09+00:00"
+ },
+ {
+ "name": "filp/whoops",
+ "version": "2.15.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/filp/whoops.git",
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546",
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5.9 || ^7.0 || ^8.0",
+ "psr/log": "^1.0.1 || ^2.0 || ^3.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^0.9 || ^1.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3",
+ "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0"
+ },
+ "suggest": {
+ "symfony/var-dumper": "Pretty print complex values better with var-dumper available",
+ "whoops/soap": "Formats errors as SOAP responses"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Whoops\\": "src/Whoops/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Filipe Dobreira",
+ "homepage": "https://github.com/filp",
+ "role": "Developer"
+ }
+ ],
+ "description": "php error handling for cool kids",
+ "homepage": "https://filp.github.io/whoops/",
+ "keywords": [
+ "error",
+ "exception",
+ "handling",
+ "library",
+ "throwable",
+ "whoops"
+ ],
+ "support": {
+ "issues": "https://github.com/filp/whoops/issues",
+ "source": "https://github.com/filp/whoops/tree/2.15.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/denis-sokolov",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-03T12:00:00+00:00"
+ },
+ {
+ "name": "hamcrest/hamcrest-php",
+ "version": "v2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3|^7.0|^8.0"
+ },
+ "replace": {
+ "cordoval/hamcrest-php": "*",
+ "davedevelopment/hamcrest-php": "*",
+ "kodova/hamcrest-php": "*"
+ },
+ "require-dev": {
+ "phpunit/php-file-iterator": "^1.4 || ^2.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "hamcrest"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "This is the PHP port of Hamcrest Matchers",
+ "keywords": [
+ "test"
+ ],
+ "support": {
+ "issues": "https://github.com/hamcrest/hamcrest-php/issues",
+ "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
+ },
+ "time": "2020-07-09T08:09:16+00:00"
+ },
+ {
+ "name": "laravel/pint",
+ "version": "v1.13.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/pint.git",
+ "reference": "e2b5060885694ca30ac008c05dc9d47f10ed1abf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/pint/zipball/e2b5060885694ca30ac008c05dc9d47f10ed1abf",
+ "reference": "e2b5060885694ca30ac008c05dc9d47f10ed1abf",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-tokenizer": "*",
+ "ext-xml": "*",
+ "php": "^8.1.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.47.1",
+ "illuminate/view": "^10.41.0",
+ "larastan/larastan": "^2.8.1",
+ "laravel-zero/framework": "^10.3.0",
+ "mockery/mockery": "^1.6.7",
+ "nunomaduro/termwind": "^1.15.1",
+ "pestphp/pest": "^2.31.0"
+ },
+ "bin": [
+ "builds/pint"
+ ],
+ "type": "project",
+ "autoload": {
+ "psr-4": {
+ "App\\": "app/",
+ "Database\\Seeders\\": "database/seeders/",
+ "Database\\Factories\\": "database/factories/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "An opinionated code formatter for PHP.",
+ "homepage": "https://laravel.com",
+ "keywords": [
+ "format",
+ "formatter",
+ "lint",
+ "linter",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/pint/issues",
+ "source": "https://github.com/laravel/pint"
+ },
+ "time": "2024-01-22T09:04:15+00:00"
+ },
+ {
+ "name": "laravel/sail",
+ "version": "v1.27.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/sail.git",
+ "reference": "2276a8d9d6cfdcaad98bf67a34331d100149d5b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/sail/zipball/2276a8d9d6cfdcaad98bf67a34331d100149d5b6",
+ "reference": "2276a8d9d6cfdcaad98bf67a34331d100149d5b6",
+ "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",
+ "php": "^8.0",
+ "symfony/yaml": "^6.0|^7.0"
+ },
+ "require-dev": {
+ "orchestra/testbench": "^7.0|^8.0|^9.0",
+ "phpstan/phpstan": "^1.10"
+ },
+ "bin": [
+ "bin/sail"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Laravel\\Sail\\SailServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Sail\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Docker files for running a basic Laravel application.",
+ "keywords": [
+ "docker",
+ "laravel"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/sail/issues",
+ "source": "https://github.com/laravel/sail"
+ },
+ "time": "2024-01-21T17:13:42+00:00"
+ },
+ {
+ "name": "mockery/mockery",
+ "version": "1.6.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mockery/mockery.git",
+ "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06",
+ "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06",
+ "shasum": ""
+ },
+ "require": {
+ "hamcrest/hamcrest-php": "^2.0.1",
+ "lib-pcre": ">=7.0",
+ "php": ">=7.3"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5 || ^9.6.10",
+ "symplify/easy-coding-standard": "^12.0.8"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "library/helpers.php",
+ "library/Mockery.php"
+ ],
+ "psr-4": {
+ "Mockery\\": "library/Mockery"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Pádraic Brady",
+ "email": "padraic.brady@gmail.com",
+ "homepage": "https://github.com/padraic",
+ "role": "Author"
+ },
+ {
+ "name": "Dave Marshall",
+ "email": "dave.marshall@atstsolutions.co.uk",
+ "homepage": "https://davedevelopment.co.uk",
+ "role": "Developer"
+ },
+ {
+ "name": "Nathanael Esayeas",
+ "email": "nathanael.esayeas@protonmail.com",
+ "homepage": "https://github.com/ghostwriter",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Mockery is a simple yet flexible PHP mock object framework",
+ "homepage": "https://github.com/mockery/mockery",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "library",
+ "mock",
+ "mock objects",
+ "mockery",
+ "stub",
+ "test",
+ "test double",
+ "testing"
+ ],
+ "support": {
+ "docs": "https://docs.mockery.io/",
+ "issues": "https://github.com/mockery/mockery/issues",
+ "rss": "https://github.com/mockery/mockery/releases.atom",
+ "security": "https://github.com/mockery/mockery/security/advisories",
+ "source": "https://github.com/mockery/mockery"
+ },
+ "time": "2023-12-10T02:24:34+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.11.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-03-08T13:26:56+00:00"
+ },
+ {
+ "name": "nunomaduro/collision",
+ "version": "v7.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/collision.git",
+ "reference": "49ec67fa7b002712da8526678abd651c09f375b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2",
+ "reference": "49ec67fa7b002712da8526678abd651c09f375b2",
+ "shasum": ""
+ },
+ "require": {
+ "filp/whoops": "^2.15.3",
+ "nunomaduro/termwind": "^1.15.1",
+ "php": "^8.1.0",
+ "symfony/console": "^6.3.4"
+ },
+ "conflict": {
+ "laravel/framework": ">=11.0.0"
+ },
+ "require-dev": {
+ "brianium/paratest": "^7.3.0",
+ "laravel/framework": "^10.28.0",
+ "laravel/pint": "^1.13.3",
+ "laravel/sail": "^1.25.0",
+ "laravel/sanctum": "^3.3.1",
+ "laravel/tinker": "^2.8.2",
+ "nunomaduro/larastan": "^2.6.4",
+ "orchestra/testbench-core": "^8.13.0",
+ "pestphp/pest": "^2.23.2",
+ "phpunit/phpunit": "^10.4.1",
+ "sebastian/environment": "^6.0.1",
+ "spatie/laravel-ignition": "^2.3.1"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "files": [
+ "./src/Adapters/Phpunit/Autoload.php"
+ ],
+ "psr-4": {
+ "NunoMaduro\\Collision\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Cli error handling for console/command-line PHP applications.",
+ "keywords": [
+ "artisan",
+ "cli",
+ "command-line",
+ "console",
+ "error",
+ "handling",
+ "laravel",
+ "laravel-zero",
+ "php",
+ "symfony"
+ ],
+ "support": {
+ "issues": "https://github.com/nunomaduro/collision/issues",
+ "source": "https://github.com/nunomaduro/collision"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/nunomaduro",
+ "type": "patreon"
+ }
+ ],
+ "time": "2023-10-11T15:45:01+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.3"
+ },
+ "time": "2021-07-20T11:28:43+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "10.1.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145",
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.18 || ^5.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"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.1"
+ },
+ "suggest": {
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "10.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-21T15:38:30+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "4.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-31T06:24:48+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^10.0"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:56:09+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-31T14:07:24+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "6.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "6.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:57:52+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "10.5.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
+ "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.10.1",
+ "phar-io/manifest": "^2.0.3",
+ "phar-io/version": "^3.0.2",
+ "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"
+ },
+ "suggest": {
+ "ext-soap": "To be able to generate mocks based on WSDL files"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "10.5-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.9"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-22T14:35:40+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae",
+ "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:58:15+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:58:43+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:59:15+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "5.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
+ "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/diff": "^5.0",
+ "sebastian/exporter": "^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "security": "https://github.com/sebastianbergmann/comparator/security/policy",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-14T13:18:12+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "security": "https://github.com/sebastianbergmann/complexity/security/policy",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-21T08:37:17+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "5.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "security": "https://github.com/sebastianbergmann/diff/security/policy",
+ "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T10:55:06+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "6.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951",
+ "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "6.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "https://github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "security": "https://github.com/sebastianbergmann/environment/security/policy",
+ "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-04-11T05:39:26+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "5.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc",
+ "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/recursion-context": "^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "security": "https://github.com/sebastianbergmann/exporter/security/policy",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-09-24T13:22:09+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "6.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4",
+ "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "6.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://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"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-07-19T07:19:23+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-21T08:38:20+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "5.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:08:32+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:06:18+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "5.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:05:40+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:10:45+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "4.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-07T11:34:05+00:00"
+ },
+ {
+ "name": "spatie/backtrace",
+ "version": "1.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/backtrace.git",
+ "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab",
+ "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3|^8.0"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "phpunit/phpunit": "^9.3",
+ "spatie/phpunit-snapshot-assertions": "^4.2",
+ "symfony/var-dumper": "^5.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Backtrace\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van de Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A better backtrace",
+ "homepage": "https://github.com/spatie/backtrace",
+ "keywords": [
+ "Backtrace",
+ "spatie"
+ ],
+ "support": {
+ "source": "https://github.com/spatie/backtrace/tree/1.5.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spatie",
+ "type": "github"
+ },
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "other"
+ }
+ ],
+ "time": "2023-06-28T12:59:17+00:00"
+ },
+ {
+ "name": "spatie/flare-client-php",
+ "version": "1.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/flare-client-php.git",
+ "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec",
+ "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0",
+ "nesbot/carbon": "^2.62.1",
+ "php": "^8.0",
+ "spatie/backtrace": "^1.5.2",
+ "symfony/http-foundation": "^5.2|^6.0|^7.0",
+ "symfony/mime": "^5.2|^6.0|^7.0",
+ "symfony/process": "^5.2|^6.0|^7.0",
+ "symfony/var-dumper": "^5.2|^6.0|^7.0"
+ },
+ "require-dev": {
+ "dms/phpunit-arraysubset-asserts": "^0.5.0",
+ "pestphp/pest": "^1.20|^2.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "spatie/phpunit-snapshot-assertions": "^4.0|^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.3.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Spatie\\FlareClient\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Send PHP errors to Flare",
+ "homepage": "https://github.com/spatie/flare-client-php",
+ "keywords": [
+ "exception",
+ "flare",
+ "reporting",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/flare-client-php/issues",
+ "source": "https://github.com/spatie/flare-client-php/tree/1.4.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2023-10-17T15:54:07+00:00"
+ },
+ {
+ "name": "spatie/ignition",
+ "version": "1.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/ignition.git",
+ "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/ignition/zipball/5b6f801c605a593106b623e45ca41496a6e7d56d",
+ "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "spatie/backtrace": "^1.5.3",
+ "spatie/flare-client-php": "^1.4.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "require-dev": {
+ "illuminate/cache": "^9.52|^10.0|^11.0",
+ "mockery/mockery": "^1.4",
+ "pestphp/pest": "^1.20|^2.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "psr/simple-cache-implementation": "*",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "vlucas/phpdotenv": "^5.5"
+ },
+ "suggest": {
+ "openai-php/client": "Require get solutions from OpenAI",
+ "simple-cache-implementation": "To cache solutions from OpenAI"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Ignition\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A beautiful error page for PHP applications.",
+ "homepage": "https://flareapp.io/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "support": {
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/ignition/issues",
+ "source": "https://github.com/spatie/ignition"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2024-01-03T15:49:39+00:00"
+ },
+ {
+ "name": "spatie/laravel-ignition",
+ "version": "2.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/laravel-ignition.git",
+ "reference": "005e1e7b1232f3b22d7e7be3f602693efc7dba67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/005e1e7b1232f3b22d7e7be3f602693efc7dba67",
+ "reference": "005e1e7b1232f3b22d7e7be3f602693efc7dba67",
+ "shasum": ""
+ },
+ "require": {
+ "ext-curl": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "illuminate/support": "^10.0|^11.0",
+ "php": "^8.1",
+ "spatie/flare-client-php": "^1.3.5",
+ "spatie/ignition": "^1.9",
+ "symfony/console": "^6.2.3|^7.0",
+ "symfony/var-dumper": "^6.2.3|^7.0"
+ },
+ "require-dev": {
+ "livewire/livewire": "^2.11|^3.3.5",
+ "mockery/mockery": "^1.5.1",
+ "openai-php/client": "^0.8.1",
+ "orchestra/testbench": "^8.0|^9.0",
+ "pestphp/pest": "^2.30",
+ "phpstan/extension-installer": "^1.2",
+ "phpstan/phpstan-deprecation-rules": "^1.1.1",
+ "phpstan/phpstan-phpunit": "^1.3.3",
+ "vlucas/phpdotenv": "^5.5"
+ },
+ "suggest": {
+ "openai-php/client": "Require get solutions from OpenAI",
+ "psr/simple-cache-implementation": "Needed to cache solutions from OpenAI"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Spatie\\LaravelIgnition\\IgnitionServiceProvider"
+ ],
+ "aliases": {
+ "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare"
+ }
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Spatie\\LaravelIgnition\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A beautiful error page for Laravel applications.",
+ "homepage": "https://flareapp.io/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "support": {
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/laravel-ignition/issues",
+ "source": "https://github.com/spatie/laravel-ignition"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2024-01-12T13:14:58+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v7.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "0055b230c408428b9b5cde7c55659555be5c0278"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/0055b230c408428b9b5cde7c55659555be5c0278",
+ "reference": "0055b230c408428b9b5cde7c55659555be5c0278",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/console": "<6.4"
+ },
+ "require-dev": {
+ "symfony/console": "^6.4|^7.0"
+ },
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v7.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-11-07T10:26:03+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-20T00:12:19+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^8.1"
+ },
+ "platform-dev": [],
+ "plugin-api-version": "2.6.0"
+}
diff --git a/computers/index.php b/computers/index.php
deleted file mode 100755
index e140dd4..0000000
--- a/computers/index.php
+++ /dev/null
@@ -1,304 +0,0 @@
-
-
-
-
-
-
-
-
- Computers
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Lenovo ThinkPad T430 (2012)
- Specifications
-
-
- OS
- Arch Linux x86_64 / Windows 7 Pro
-
-
- LCD Resolution
- 1600x900
-
-
- CPU
- Intel i7-3520M (4 cores) @ 3.6GHz
-
-
- GPU
- Intel 3rd Gen Core processor Graphics Controller
-
-
- Memory
- 16GB
-
-
- HDD0
- Crucial CT500MX500SSD1 (500GB, Linux)
-
-
- HDD1
- Crucial CT250MX500SSD1 (250GB, Windows)
-
-
-
-
-
- Macbook Pro (2018)
- Specifications
-
-
- OS
- macOS 12.5.1
-
-
- LCD Resolution
- 2560x1600 (Retina)
-
-
- CPU
- Intel i5-8259U (8 cores) @ 2.3GHz
-
-
- GPU
- Intel Iris Plus Graphics 655
-
-
- Memory
- 8GB
-
-
- HDD
- Apple SSD AP0256M (250GB)
-
-
-
-
-
-
-
- IBM ThinkPad T40 (2003)
- Specifications
-
-
- OS
- Windows XP Pro / Windows 2000 Pro (Extended)
-
-
- LCD Resolution
- 1024x768
-
-
- CPU
- Intel Pentium M (single core) @ 1.3GHz
-
-
- GPU
- ATI Mobility Radeon 7500 (32MB)
-
-
- Memory
- 1GB (DDR SDRAM)
-
-
- HDD
- Fujitsu MHS2030AT (30GB)
-
-
-
-
-
- IBM ThinkPad X41 (2005)
- Specifications
-
-
- OS
- Windows XP Tablet PC Edition (2005, SP3)
-
-
- LCD Resolution
- 1024x768 (TFT)
-
-
- CPU
- Intel Pentium M (single core) @ 1.6GHz
-
-
- GPU
- Mobile Intel 915GM/GMS 910GML Express Chipset Family (128MB)
-
-
- Memory
- 1.5GB (DDR SDRAM)
-
-
- HDD
- Hitachi HTC426040G9AT00 (40GB)
-
-
-
-
-
-
-
- Dell OptiPlex GX1 (400L+, 1999)
- Specifications
-
-
- OS
- Windows NT 4.0 (SP6)
-
-
- CPU
- Intel Pentium II (Deschutes) @ 400 MHz
-
-
- GPU
- ATI 3D Rage Pro (4MB)
-
-
- Memory
- 639MB (SDR SDRAM)
-
-
- HDD
- Maxtor 2F020J0 (20GB)
-
-
-
-
-
- Dell Inspiron 1525 (2008)
- Specifications
- TBD
-
-
-
-
-
- Dell OptiPlex 745 (USFF, 2007, x3)
- Specifications
-
-
- OS
- Various
-
-
- CPU
- Intel Pentium Dual Core
-
-
- Memory
- 4GB
-
-
-
-
-
- Compaq Armada M300 (2000)
- Specifications
- TBD
-
-
-
-
-
- Random Whitebox (???)
- Specifications
-
-
- OS
- Windows XP Pro (SP3)
-
-
- CPU
- AMD Athon-PECM (Thunderbird, 4 cores, 1.2GHz)
-
-
- GPU
- Hercules 3D Propher 9000 PCI (ATI Radeon 9000, 64MB)
-
-
- Memory
- 500MB
-
-
- HDD
- Seagate ST3160215ACE (150GB)
-
-
-
-
-
- Mac mini (2014)
- Specifications
-
-
- OS
- VMware ESXi 6.7.0u3
-
-
- CPU
- Intel i5-4278U (4 cores) @ 2.6GHz
-
-
- GPU
- Intel Iris Graphics
-
-
- Memory
- 8GB
-
-
- HDD
- Apple HDD HTS541 (1TB)
-
-
-
-
-
-
-
- Fujitsu Milan (1996)
- Specifications
-
-
- OS
- Windows 98 SE
-
-
- CPU
- Intel Pentium
-
-
- Memory
- 32MB
-
-
- HDD
- IBM DPRA-21215 (1215MB)
-
-
-
-
-
-
-
-
-
-
-
diff --git a/config/app.php b/config/app.php
new file mode 100644
index 0000000..650170a
--- /dev/null
+++ b/config/app.php
@@ -0,0 +1,32 @@
+ env('APP_NAME', 'diskfloppy.me'),
+ 'version' => '2024.02.08',
+ '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',
+ 'locale' => 'en',
+ 'fallback_locale' => 'en',
+ 'faker_locale' => 'en_US',
+ 'key' => env('APP_KEY'),
+ 'cipher' => 'AES-256-CBC',
+ 'maintenance' => [
+ 'driver' => 'file',
+ ],
+ 'providers' => ServiceProvider::defaultProviders()->merge([
+ App\Providers\AppServiceProvider::class,
+ App\Providers\AuthServiceProvider::class,
+ App\Providers\EventServiceProvider::class,
+ App\Providers\RouteServiceProvider::class,
+ ])->toArray(),
+ 'aliases' => Facade::defaultAliases()->merge([
+ ])->toArray(),
+];
diff --git a/config/auth.php b/config/auth.php
new file mode 100644
index 0000000..9548c15
--- /dev/null
+++ b/config/auth.php
@@ -0,0 +1,115 @@
+ [
+ 'guard' => 'web',
+ 'passwords' => 'users',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Authentication Guards
+ |--------------------------------------------------------------------------
+ |
+ | Next, you may define every authentication guard for your application.
+ | Of course, a great default configuration has been defined for you
+ | here which uses session storage and the Eloquent user provider.
+ |
+ | All authentication drivers have a user provider. This defines how the
+ | users are actually retrieved out of your database or other storage
+ | mechanisms used by this application to persist your user's data.
+ |
+ | Supported: "session"
+ |
+ */
+
+ 'guards' => [
+ 'web' => [
+ 'driver' => 'session',
+ 'provider' => 'users',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | User Providers
+ |--------------------------------------------------------------------------
+ |
+ | All authentication drivers have a user provider. This defines how the
+ | users are actually retrieved out of your database or other storage
+ | mechanisms used by this application to persist your user's data.
+ |
+ | If you have multiple user tables or models you may configure multiple
+ | sources which represent each model / table. These sources may then
+ | be assigned to any extra authentication guards you have defined.
+ |
+ | Supported: "database", "eloquent"
+ |
+ */
+
+ 'providers' => [
+ 'users' => [
+ 'driver' => 'eloquent',
+ 'model' => App\Models\User::class,
+ ],
+
+ // 'users' => [
+ // 'driver' => 'database',
+ // 'table' => 'users',
+ // ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Resetting Passwords
+ |--------------------------------------------------------------------------
+ |
+ | You may specify multiple password reset configurations if you have more
+ | than one user table or model in the application and you want to have
+ | separate password reset settings based on the specific user types.
+ |
+ | The expiry time is the number of minutes that each reset token will be
+ | considered valid. This security feature keeps tokens short-lived so
+ | they have less time to be guessed. You may change this as needed.
+ |
+ | The throttle setting is the number of seconds a user must wait before
+ | generating more password reset tokens. This prevents the user from
+ | quickly generating a very large amount of password reset tokens.
+ |
+ */
+
+ 'passwords' => [
+ 'users' => [
+ 'provider' => 'users',
+ 'table' => 'password_reset_tokens',
+ 'expire' => 60,
+ 'throttle' => 60,
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Password Confirmation Timeout
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define the amount of seconds before a password confirmation
+ | times out and the user is prompted to re-enter their password via the
+ | confirmation screen. By default, the timeout lasts for three hours.
+ |
+ */
+
+ 'password_timeout' => 10800,
+
+];
diff --git a/config/auth0.php b/config/auth0.php
new file mode 100644
index 0000000..7a5664f
--- /dev/null
+++ b/config/auth0.php
@@ -0,0 +1,56 @@
+ 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
new file mode 100644
index 0000000..db955d5
--- /dev/null
+++ b/config/bookmarks.php
@@ -0,0 +1,117 @@
+ "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/broadcasting.php b/config/broadcasting.php
new file mode 100644
index 0000000..98a0093
--- /dev/null
+++ b/config/broadcasting.php
@@ -0,0 +1,44 @@
+ env('BROADCAST_DRIVER', 'null'),
+ 'connections' => [
+ 'pusher' => [
+ 'driver' => 'pusher',
+ 'key' => env('PUSHER_APP_KEY'),
+ 'secret' => env('PUSHER_APP_SECRET'),
+ 'app_id' => env('PUSHER_APP_ID'),
+ 'options' => [
+ 'cluster' => env('PUSHER_APP_CLUSTER'),
+ 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com',
+ 'port' => env('PUSHER_PORT', 443),
+ 'scheme' => env('PUSHER_SCHEME', 'https'),
+ 'encrypted' => true,
+ 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https',
+ ],
+ 'client_options' => [
+ // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html
+ ],
+ ],
+
+ 'ably' => [
+ 'driver' => 'ably',
+ 'key' => env('ABLY_KEY'),
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'default',
+ ],
+
+ 'log' => [
+ 'driver' => 'log',
+ ],
+
+ 'null' => [
+ 'driver' => 'null',
+ ],
+
+ ],
+
+];
diff --git a/config/cache.php b/config/cache.php
new file mode 100644
index 0000000..d4171e2
--- /dev/null
+++ b/config/cache.php
@@ -0,0 +1,111 @@
+ env('CACHE_DRIVER', 'file'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Stores
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define all of the cache "stores" for your application as
+ | well as their drivers. You may even define multiple stores for the
+ | same cache driver to group types of items stored in your caches.
+ |
+ | Supported drivers: "apc", "array", "database", "file",
+ | "memcached", "redis", "dynamodb", "octane", "null"
+ |
+ */
+
+ 'stores' => [
+
+ 'apc' => [
+ 'driver' => 'apc',
+ ],
+
+ 'array' => [
+ 'driver' => 'array',
+ 'serialize' => false,
+ ],
+
+ 'database' => [
+ 'driver' => 'database',
+ 'table' => 'cache',
+ 'connection' => null,
+ 'lock_connection' => null,
+ ],
+
+ 'file' => [
+ 'driver' => 'file',
+ 'path' => storage_path('framework/cache/data'),
+ 'lock_path' => storage_path('framework/cache/data'),
+ ],
+
+ 'memcached' => [
+ 'driver' => 'memcached',
+ 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
+ 'sasl' => [
+ env('MEMCACHED_USERNAME'),
+ env('MEMCACHED_PASSWORD'),
+ ],
+ 'options' => [
+ // Memcached::OPT_CONNECT_TIMEOUT => 2000,
+ ],
+ 'servers' => [
+ [
+ 'host' => env('MEMCACHED_HOST', '127.0.0.1'),
+ 'port' => env('MEMCACHED_PORT', 11211),
+ 'weight' => 100,
+ ],
+ ],
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'cache',
+ 'lock_connection' => 'default',
+ ],
+
+ 'dynamodb' => [
+ 'driver' => 'dynamodb',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
+ 'endpoint' => env('DYNAMODB_ENDPOINT'),
+ ],
+
+ 'octane' => [
+ 'driver' => 'octane',
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Key Prefix
+ |--------------------------------------------------------------------------
+ |
+ | When utilizing the APC, database, memcached, Redis, or DynamoDB cache
+ | stores there might be other applications using the same cache. For
+ | that reason, you may prefix every cache key to avoid collisions.
+ |
+ */
+
+ 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'),
+
+];
diff --git a/config/cors.php b/config/cors.php
new file mode 100644
index 0000000..8a39e6d
--- /dev/null
+++ b/config/cors.php
@@ -0,0 +1,34 @@
+ ['api/*', 'sanctum/csrf-cookie'],
+
+ 'allowed_methods' => ['*'],
+
+ 'allowed_origins' => ['*'],
+
+ 'allowed_origins_patterns' => [],
+
+ 'allowed_headers' => ['*'],
+
+ 'exposed_headers' => [],
+
+ 'max_age' => 0,
+
+ 'supports_credentials' => false,
+
+];
diff --git a/config/database.php b/config/database.php
new file mode 100644
index 0000000..5e2b5d4
--- /dev/null
+++ b/config/database.php
@@ -0,0 +1,31 @@
+ env('DB_CONNECTION', 'mysql'),
+
+ 'connections' => [
+ 'mysql' => [
+ 'driver' => 'mysql',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '3306'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'unix_socket' => env('DB_SOCKET', ''),
+ 'charset' => 'utf8mb4',
+ 'collation' => 'utf8mb4_unicode_ci',
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ 'strict' => true,
+ 'engine' => null,
+ 'options' => extension_loaded('pdo_mysql') ? array_filter([
+ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+ ]) : [],
+ ],
+ ],
+
+ 'migrations' => 'migrations',
+];
diff --git a/config/filesystems.php b/config/filesystems.php
new file mode 100644
index 0000000..e9d9dbd
--- /dev/null
+++ b/config/filesystems.php
@@ -0,0 +1,76 @@
+ env('FILESYSTEM_DISK', 'local'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Filesystem Disks
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure as many filesystem "disks" as you wish, and you
+ | may even configure multiple disks of the same driver. Defaults have
+ | been set up for each driver as an example of the required values.
+ |
+ | Supported Drivers: "local", "ftp", "sftp", "s3"
+ |
+ */
+
+ 'disks' => [
+
+ 'local' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app'),
+ 'throw' => false,
+ ],
+
+ 'public' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app/public'),
+ 'url' => env('APP_URL').'/storage',
+ 'visibility' => 'public',
+ 'throw' => false,
+ ],
+
+ 's3' => [
+ 'driver' => 's3',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION'),
+ 'bucket' => env('AWS_BUCKET'),
+ 'url' => env('AWS_URL'),
+ 'endpoint' => env('AWS_ENDPOINT'),
+ 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
+ 'throw' => false,
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Symbolic Links
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the symbolic links that will be created when the
+ | `storage:link` Artisan command is executed. The array keys should be
+ | the locations of the links and the values should be their targets.
+ |
+ */
+
+ 'links' => [
+ public_path('storage') => storage_path('app/public'),
+ ],
+
+];
diff --git a/config/hashing.php b/config/hashing.php
new file mode 100644
index 0000000..eca4888
--- /dev/null
+++ b/config/hashing.php
@@ -0,0 +1,17 @@
+ 'bcrypt',
+
+ 'bcrypt' => [
+ 'rounds' => env('BCRYPT_ROUNDS', 10),
+ ],
+
+
+ 'argon' => [
+ 'memory' => 65536,
+ 'threads' => 1,
+ 'time' => 4,
+ ],
+];
diff --git a/config/logging.php b/config/logging.php
new file mode 100644
index 0000000..2da9712
--- /dev/null
+++ b/config/logging.php
@@ -0,0 +1,93 @@
+ env('LOG_CHANNEL', 'stack'),
+
+ 'deprecations' => [
+ 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
+ 'trace' => false,
+ ],
+
+ 'channels' => [
+ 'stack' => [
+ 'driver' => 'stack',
+ 'channels' => ['single'],
+ 'ignore_exceptions' => false,
+ ],
+
+ 'single' => [
+ 'driver' => 'single',
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'replace_placeholders' => true,
+ ],
+
+ 'daily' => [
+ 'driver' => 'daily',
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'days' => 14,
+ 'replace_placeholders' => true,
+ ],
+
+ 'slack' => [
+ 'driver' => 'slack',
+ 'url' => env('LOG_SLACK_WEBHOOK_URL'),
+ 'username' => 'Laravel Log',
+ 'emoji' => ':boom:',
+ 'level' => env('LOG_LEVEL', 'critical'),
+ 'replace_placeholders' => true,
+ ],
+
+ 'papertrail' => [
+ 'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class),
+ 'handler_with' => [
+ 'host' => env('PAPERTRAIL_URL'),
+ 'port' => env('PAPERTRAIL_PORT'),
+ 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'),
+ ],
+ 'processors' => [PsrLogMessageProcessor::class],
+ ],
+
+ 'stderr' => [
+ 'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'handler' => StreamHandler::class,
+ 'formatter' => env('LOG_STDERR_FORMATTER'),
+ 'with' => [
+ 'stream' => 'php://stderr',
+ ],
+ 'processors' => [PsrLogMessageProcessor::class],
+ ],
+
+ 'syslog' => [
+ 'driver' => 'syslog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'facility' => LOG_USER,
+ 'replace_placeholders' => true,
+ ],
+
+ 'errorlog' => [
+ 'driver' => 'errorlog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'replace_placeholders' => true,
+ ],
+
+ 'null' => [
+ 'driver' => 'monolog',
+ 'handler' => NullHandler::class,
+ ],
+
+ 'emergency' => [
+ 'path' => storage_path('logs/laravel.log'),
+ ],
+ ],
+
+];
diff --git a/config/mail.php b/config/mail.php
new file mode 100644
index 0000000..e652bd0
--- /dev/null
+++ b/config/mail.php
@@ -0,0 +1,125 @@
+ env('MAIL_MAILER', 'smtp'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Mailer Configurations
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure all of the mailers used by your application plus
+ | their respective settings. Several examples have been configured for
+ | you and you are free to add your own as your application requires.
+ |
+ | Laravel supports a variety of mail "transport" drivers to be used while
+ | sending an e-mail. You will specify which one you are using for your
+ | mailers below. You are free to add additional mailers as required.
+ |
+ | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2",
+ | "postmark", "log", "array", "failover"
+ |
+ */
+
+ 'mailers' => [
+ 'smtp' => [
+ 'transport' => 'smtp',
+ 'url' => env('MAIL_URL'),
+ 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
+ 'port' => env('MAIL_PORT', 587),
+ 'encryption' => env('MAIL_ENCRYPTION', 'tls'),
+ 'username' => env('MAIL_USERNAME'),
+ 'password' => env('MAIL_PASSWORD'),
+ 'timeout' => null,
+ 'local_domain' => env('MAIL_EHLO_DOMAIN'),
+ ],
+
+ 'ses' => [
+ 'transport' => 'ses',
+ ],
+
+ 'mailgun' => [
+ 'transport' => 'mailgun',
+ // 'client' => [
+ // 'timeout' => 5,
+ // ],
+ ],
+
+ 'postmark' => [
+ 'transport' => 'postmark',
+ // 'client' => [
+ // 'timeout' => 5,
+ // ],
+ ],
+
+ 'sendmail' => [
+ 'transport' => 'sendmail',
+ 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
+ ],
+
+ 'log' => [
+ 'transport' => 'log',
+ 'channel' => env('MAIL_LOG_CHANNEL'),
+ ],
+
+ 'array' => [
+ 'transport' => 'array',
+ ],
+
+ 'failover' => [
+ 'transport' => 'failover',
+ 'mailers' => [
+ 'smtp',
+ 'log',
+ ],
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Global "From" Address
+ |--------------------------------------------------------------------------
+ |
+ | You may wish for all e-mails sent by your application to be sent from
+ | the same address. Here, you may specify a name and address that is
+ | used globally for all e-mails that are sent by your application.
+ |
+ */
+
+ 'from' => [
+ 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
+ 'name' => env('MAIL_FROM_NAME', 'Example'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Markdown Mail Settings
+ |--------------------------------------------------------------------------
+ |
+ | If you are using Markdown based email rendering, you may configure your
+ | theme and component paths here, allowing you to customize the design
+ | of the emails. Or, you may simply stick with the Laravel defaults!
+ |
+ */
+
+ 'markdown' => [
+ 'theme' => 'default',
+
+ 'paths' => [
+ resource_path('views/vendor/mail'),
+ ],
+ ],
+
+];
diff --git a/config/projects.php b/config/projects.php
new file mode 100644
index 0000000..1c6c0f2
--- /dev/null
+++ b/config/projects.php
@@ -0,0 +1,71 @@
+ "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/queue.php b/config/queue.php
new file mode 100644
index 0000000..01c6b05
--- /dev/null
+++ b/config/queue.php
@@ -0,0 +1,109 @@
+ env('QUEUE_CONNECTION', 'sync'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Queue Connections
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the connection information for each server that
+ | is used by your application. A default configuration has been added
+ | for each back-end shipped with Laravel. You are free to add more.
+ |
+ | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null"
+ |
+ */
+
+ 'connections' => [
+
+ 'sync' => [
+ 'driver' => 'sync',
+ ],
+
+ 'database' => [
+ 'driver' => 'database',
+ 'table' => 'jobs',
+ 'queue' => 'default',
+ 'retry_after' => 90,
+ 'after_commit' => false,
+ ],
+
+ 'beanstalkd' => [
+ 'driver' => 'beanstalkd',
+ 'host' => 'localhost',
+ 'queue' => 'default',
+ 'retry_after' => 90,
+ 'block_for' => 0,
+ 'after_commit' => false,
+ ],
+
+ 'sqs' => [
+ 'driver' => 'sqs',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
+ 'queue' => env('SQS_QUEUE', 'default'),
+ 'suffix' => env('SQS_SUFFIX'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'after_commit' => false,
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'default',
+ 'queue' => env('REDIS_QUEUE', 'default'),
+ 'retry_after' => 90,
+ 'block_for' => null,
+ 'after_commit' => false,
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Job Batching
+ |--------------------------------------------------------------------------
+ |
+ | The following options configure the database and table that store job
+ | batching information. These options can be updated to any database
+ | connection and table which has been defined by your application.
+ |
+ */
+
+ 'batching' => [
+ 'database' => env('DB_CONNECTION', 'mysql'),
+ 'table' => 'job_batches',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Failed Queue Jobs
+ |--------------------------------------------------------------------------
+ |
+ | These options configure the behavior of failed queue job logging so you
+ | can control which database and table are used to store the jobs that
+ | have failed. You may change them to any database / table you wish.
+ |
+ */
+
+ 'failed' => [
+ 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'),
+ 'database' => env('DB_CONNECTION', 'mysql'),
+ 'table' => 'failed_jobs',
+ ],
+
+];
diff --git a/config/sentry.php b/config/sentry.php
new file mode 100644
index 0000000..2421325
--- /dev/null
+++ b/config/sentry.php
@@ -0,0 +1,108 @@
+ env('SENTRY_LARAVEL_DSN', env('SENTRY_DSN')),
+
+ // The release version of your application
+ // Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD'))
+ 'release' => env('SENTRY_RELEASE'),
+
+ // When left empty or `null` the Laravel environment will be used (usually discovered from `APP_ENV` in your `.env`)
+ 'environment' => env('SENTRY_ENVIRONMENT'),
+
+ // @see: https://docs.sentry.io/platforms/php/guides/laravel/configuration/options/#sample-rate
+ 'sample_rate' => env('SENTRY_SAMPLE_RATE') === null ? 1.0 : (float)env('SENTRY_SAMPLE_RATE'),
+
+ // @see: https://docs.sentry.io/platforms/php/guides/laravel/configuration/options/#traces-sample-rate
+ 'traces_sample_rate' => env('SENTRY_TRACES_SAMPLE_RATE') === null ? null : (float)env('SENTRY_TRACES_SAMPLE_RATE'),
+
+ // @see: https://docs.sentry.io/platforms/php/guides/laravel/configuration/options/#profiles-sample-rate
+ 'profiles_sample_rate' => env('SENTRY_PROFILES_SAMPLE_RATE') === null ? null : (float)env('SENTRY_PROFILES_SAMPLE_RATE'),
+
+ // @see: https://docs.sentry.io/platforms/php/guides/laravel/configuration/options/#send-default-pii
+ 'send_default_pii' => env('SENTRY_SEND_DEFAULT_PII', false),
+
+ // @see: https://docs.sentry.io/platforms/php/guides/laravel/configuration/options/#ignore-exceptions
+ // 'ignore_exceptions' => [],
+
+ // @see: https://docs.sentry.io/platforms/php/guides/laravel/configuration/options/#ignore-transactions
+ // 'ignore_transactions' => [],
+
+ // Breadcrumb specific configuration
+ 'breadcrumbs' => [
+ // Capture Laravel logs as breadcrumbs
+ 'logs' => env('SENTRY_BREADCRUMBS_LOGS_ENABLED', true),
+
+ // Capture Laravel cache events (hits, writes etc.) as breadcrumbs
+ 'cache' => env('SENTRY_BREADCRUMBS_CACHE_ENABLED', true),
+
+ // Capture Livewire components like routes as breadcrumbs
+ 'livewire' => env('SENTRY_BREADCRUMBS_LIVEWIRE_ENABLED', true),
+
+ // Capture SQL queries as breadcrumbs
+ 'sql_queries' => env('SENTRY_BREADCRUMBS_SQL_QUERIES_ENABLED', true),
+
+ // Capture SQL query bindings (parameters) in SQL query breadcrumbs
+ 'sql_bindings' => env('SENTRY_BREADCRUMBS_SQL_BINDINGS_ENABLED', false),
+
+ // Capture queue job information as breadcrumbs
+ 'queue_info' => env('SENTRY_BREADCRUMBS_QUEUE_INFO_ENABLED', true),
+
+ // Capture command information as breadcrumbs
+ 'command_info' => env('SENTRY_BREADCRUMBS_COMMAND_JOBS_ENABLED', true),
+
+ // Capture HTTP client request information as breadcrumbs
+ 'http_client_requests' => env('SENTRY_BREADCRUMBS_HTTP_CLIENT_REQUESTS_ENABLED', true),
+ ],
+
+ // Performance monitoring specific configuration
+ 'tracing' => [
+ // Trace queue jobs as their own transactions (this enables tracing for queue jobs)
+ 'queue_job_transactions' => env('SENTRY_TRACE_QUEUE_ENABLED', false),
+
+ // Capture queue jobs as spans when executed on the sync driver
+ 'queue_jobs' => env('SENTRY_TRACE_QUEUE_JOBS_ENABLED', true),
+
+ // Capture SQL queries as spans
+ 'sql_queries' => env('SENTRY_TRACE_SQL_QUERIES_ENABLED', true),
+
+ // Capture SQL query bindings (parameters) in SQL query spans
+ 'sql_bindings' => env('SENTRY_TRACE_SQL_BINDINGS_ENABLED', false),
+
+ // Capture where the SQL query originated from on the SQL query spans
+ 'sql_origin' => env('SENTRY_TRACE_SQL_ORIGIN_ENABLED', true),
+
+ // Capture views rendered as spans
+ 'views' => env('SENTRY_TRACE_VIEWS_ENABLED', true),
+
+ // Capture Livewire components as spans
+ 'livewire' => env('SENTRY_TRACE_LIVEWIRE_ENABLED', true),
+
+ // Capture HTTP client requests as spans
+ 'http_client_requests' => env('SENTRY_TRACE_HTTP_CLIENT_REQUESTS_ENABLED', true),
+
+ // Capture Redis operations as spans (this enables Redis events in Laravel)
+ 'redis_commands' => env('SENTRY_TRACE_REDIS_COMMANDS', false),
+
+ // Capture where the Redis command originated from on the Redis command spans
+ 'redis_origin' => env('SENTRY_TRACE_REDIS_ORIGIN_ENABLED', true),
+
+ // Enable tracing for requests without a matching route (404's)
+ 'missing_routes' => env('SENTRY_TRACE_MISSING_ROUTES_ENABLED', false),
+
+ // Configures if the performance trace should continue after the response has been sent to the user until the application terminates
+ // This is required to capture any spans that are created after the response has been sent like queue jobs dispatched using `dispatch(...)->afterResponse()` for example
+ 'continue_after_response' => env('SENTRY_TRACE_CONTINUE_AFTER_RESPONSE', true),
+
+ // Enable the tracing integrations supplied by Sentry (recommended)
+ 'default_integrations' => env('SENTRY_TRACE_DEFAULT_INTEGRATIONS_ENABLED', true),
+ ],
+
+];
diff --git a/config/services.php b/config/services.php
new file mode 100644
index 0000000..0acb16e
--- /dev/null
+++ b/config/services.php
@@ -0,0 +1,22 @@
+ [
+ 'key' => env('LASTFM_KEY'),
+ 'user' => env('LASTFM_USER'),
+ 'toptracks' => env('LASTFM_TOP_TRACKS')
+ ]
+];
diff --git a/config/session.php b/config/session.php
new file mode 100644
index 0000000..8fed97c
--- /dev/null
+++ b/config/session.php
@@ -0,0 +1,201 @@
+ env('SESSION_DRIVER', 'file'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Lifetime
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the number of minutes that you wish the session
+ | to be allowed to remain idle before it expires. If you want them
+ | to immediately expire on the browser closing, set that option.
+ |
+ */
+
+ 'lifetime' => env('SESSION_LIFETIME', 120),
+
+ 'expire_on_close' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Encryption
+ |--------------------------------------------------------------------------
+ |
+ | This option allows you to easily specify that all of your session data
+ | should be encrypted before it is stored. All encryption will be run
+ | automatically by Laravel and you can use the Session like normal.
+ |
+ */
+
+ 'encrypt' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session File Location
+ |--------------------------------------------------------------------------
+ |
+ | When using the native session driver, we need a location where session
+ | files may be stored. A default has been set for you but a different
+ | location may be specified. This is only needed for file sessions.
+ |
+ */
+
+ 'files' => storage_path('framework/sessions'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Database Connection
+ |--------------------------------------------------------------------------
+ |
+ | When using the "database" or "redis" session drivers, you may specify a
+ | connection that should be used to manage these sessions. This should
+ | correspond to a connection in your database configuration options.
+ |
+ */
+
+ 'connection' => env('SESSION_CONNECTION'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Database Table
+ |--------------------------------------------------------------------------
+ |
+ | When using the "database" session driver, you may specify the table we
+ | should use to manage the sessions. Of course, a sensible default is
+ | provided for you; however, you are free to change this as needed.
+ |
+ */
+
+ 'table' => 'sessions',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cache Store
+ |--------------------------------------------------------------------------
+ |
+ | While using one of the framework's cache driven session backends you may
+ | list a cache store that should be used for these sessions. This value
+ | must match with one of the application's configured cache "stores".
+ |
+ | Affects: "apc", "dynamodb", "memcached", "redis"
+ |
+ */
+
+ 'store' => env('SESSION_STORE'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Sweeping Lottery
+ |--------------------------------------------------------------------------
+ |
+ | Some session drivers must manually sweep their storage location to get
+ | rid of old sessions from storage. Here are the chances that it will
+ | happen on a given request. By default, the odds are 2 out of 100.
+ |
+ */
+
+ 'lottery' => [2, 100],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Name
+ |--------------------------------------------------------------------------
+ |
+ | Here you may change the name of the cookie used to identify a session
+ | instance by ID. The name specified here will get used every time a
+ | new session cookie is created by the framework for every driver.
+ |
+ */
+
+ 'cookie' => env(
+ 'SESSION_COOKIE',
+ Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
+ ),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Path
+ |--------------------------------------------------------------------------
+ |
+ | The session cookie path determines the path for which the cookie will
+ | be regarded as available. Typically, this will be the root path of
+ | your application but you are free to change this when necessary.
+ |
+ */
+
+ 'path' => '/',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Domain
+ |--------------------------------------------------------------------------
+ |
+ | Here you may change the domain of the cookie used to identify a session
+ | in your application. This will determine which domains the cookie is
+ | available to in your application. A sensible default has been set.
+ |
+ */
+
+ 'domain' => env('SESSION_DOMAIN'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTTPS Only Cookies
+ |--------------------------------------------------------------------------
+ |
+ | By setting this option to true, session cookies will only be sent back
+ | to the server if the browser has a HTTPS connection. This will keep
+ | the cookie from being sent to you when it can't be done securely.
+ |
+ */
+
+ 'secure' => env('SESSION_SECURE_COOKIE'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTTP Access Only
+ |--------------------------------------------------------------------------
+ |
+ | Setting this value to true will prevent JavaScript from accessing the
+ | value of the cookie and the cookie will only be accessible through
+ | the HTTP protocol. You are free to modify this option if needed.
+ |
+ */
+
+ 'http_only' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Same-Site Cookies
+ |--------------------------------------------------------------------------
+ |
+ | This option determines how your cookies behave when cross-site requests
+ | take place, and can be used to mitigate CSRF attacks. By default, we
+ | will set this value to "lax" since this is a secure default value.
+ |
+ | Supported: "lax", "strict", "none", null
+ |
+ */
+
+ 'same_site' => 'lax',
+
+];
diff --git a/config/view.php b/config/view.php
new file mode 100644
index 0000000..22b8a18
--- /dev/null
+++ b/config/view.php
@@ -0,0 +1,36 @@
+ [
+ resource_path('views'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Compiled View Path
+ |--------------------------------------------------------------------------
+ |
+ | This option determines where all the compiled Blade templates will be
+ | stored for your application. Typically, this is within the storage
+ | directory. However, as usual, you are free to change this value.
+ |
+ */
+
+ 'compiled' => env(
+ 'VIEW_COMPILED_PATH',
+ realpath(storage_path('framework/views'))
+ ),
+
+];
diff --git a/database/.gitignore b/database/.gitignore
new file mode 100644
index 0000000..9b19b93
--- /dev/null
+++ b/database/.gitignore
@@ -0,0 +1 @@
+*.sqlite*
diff --git a/database/migrations/2024_01_31_204730_create_bookmark__categories_table.php b/database/migrations/2024_01_31_204730_create_bookmark__categories_table.php
new file mode 100644
index 0000000..68bf949
--- /dev/null
+++ b/database/migrations/2024_01_31_204730_create_bookmark__categories_table.php
@@ -0,0 +1,29 @@
+increments('id');
+ $table->string('name');
+ $table->float('priority');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('bookmark__categories');
+ }
+};
diff --git a/database/migrations/2024_01_31_204742_create_bookmark__sites_table.php b/database/migrations/2024_01_31_204742_create_bookmark__sites_table.php
new file mode 100644
index 0000000..775c6bb
--- /dev/null
+++ b/database/migrations/2024_01_31_204742_create_bookmark__sites_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->string('name', 50);
+ $table->string('description', 150);
+ $table->string('url', 100);
+ $table->float('priority');
+ $table->integer('category_id')->unsigned();
+ $table->foreign('category_id')->references('id')->on('bookmark__categories');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('bookmark__sites');
+ }
+};
diff --git a/database/migrations/2024_01_31_204815_create_guestbook__bans_table.php b/database/migrations/2024_01_31_204815_create_guestbook__bans_table.php
new file mode 100644
index 0000000..6f0a959
--- /dev/null
+++ b/database/migrations/2024_01_31_204815_create_guestbook__bans_table.php
@@ -0,0 +1,29 @@
+increments('id');
+ $table->string('ip_address', 40);
+ $table->string('reason', 50);
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('guestbook__bans');
+ }
+};
diff --git a/database/migrations/2024_01_31_204820_create_guestbook__entries_table.php b/database/migrations/2024_01_31_204820_create_guestbook__entries_table.php
new file mode 100644
index 0000000..baaf862
--- /dev/null
+++ b/database/migrations/2024_01_31_204820_create_guestbook__entries_table.php
@@ -0,0 +1,33 @@
+increments('id');
+ $table->string('name', 255);
+ $table->bigInteger('timestamp');
+ $table->string('ip_address', 40);
+ $table->string('agent', 2048)->default('Agent unavailable');
+ $table->boolean('site_owner')->default(0);
+ $table->string('message', 512);
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('guestbook__entries');
+ }
+};
diff --git a/database/migrations/2024_01_31_210227_populate_bookmark__categories_table.php b/database/migrations/2024_01_31_210227_populate_bookmark__categories_table.php
new file mode 100644
index 0000000..fb81e1f
--- /dev/null
+++ b/database/migrations/2024_01_31_210227_populate_bookmark__categories_table.php
@@ -0,0 +1,34 @@
+count() == 0) {
+ // Insert placeholder categories
+ DB::table('bookmark__categories')->insert([
+ ['name' => 'Friends\' Websites', 'priority' => 1],
+ ['name' => 'Cool Projects', 'priority' => 2],
+ ['name' => 'Other Cool Sites', 'priority' => 3],
+ ['name' => 'Miscellaneous Resources', 'priority' => 4]
+ ]);
+ }
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ //
+ }
+};
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
new file mode 100644
index 0000000..a9f4519
--- /dev/null
+++ b/database/seeders/DatabaseSeeder.php
@@ -0,0 +1,22 @@
+create();
+
+ // \App\Models\User::factory()->create([
+ // 'name' => 'Test User',
+ // 'email' => 'test@example.com',
+ // ]);
+ }
+}
diff --git a/favicon.png b/favicon.png
deleted file mode 100755
index 3fe7961..0000000
Binary files a/favicon.png and /dev/null differ
diff --git a/guestbook/index.php b/guestbook/index.php
deleted file mode 100755
index f8e3085..0000000
--- a/guestbook/index.php
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-
- Guestbook
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- prepare('SELECT COUNT(*) FROM Entries');
- $count_query->execute();
- $count = $count_query->fetch()[0];
- echo '
Entries (' . $count . ' total) ';
- // Prepare SELECT statement.
- $select = "SELECT name, message, show_info, show_ip, ip, submitted, browser_info FROM Entries ORDER BY id DESC";
- $stmt = $db->prepare($select);
-
- // Execute statement.
- $stmt->execute(); // ID between 1 and 3.
-
- // Get the results.
- $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
-
- foreach($results as $row) {
- echo '
';
- $submittedRaw = $row['submitted'];
- $submittedDT = new DateTime("@$submittedRaw");
- $submitted = $submittedDT->format('H:i:s - Y-m-d');
-
- $browser = get_browser(null, true);
- $sys = $browser['parent'] . ' (' . $browser['platform_description'] . ' ' . $browser['platform_version'] . ')';
-
- echo 'Name: ' . $row['name'] . PHP_EOL;
- if ($row['show_ip']) echo 'IP: ' . $row['ip'] . PHP_EOL;
- if ($row['show_info']) echo 'Sys: ' . $row['browser_info'] . PHP_EOL;
- echo 'Date: ' . $submitted . PHP_EOL . PHP_EOL;
- echo $row['message'];
- echo '
';
- }
- ?>
-
-
-
-
-
-
-
-
diff --git a/guestbook/submit.php b/guestbook/submit.php
deleted file mode 100755
index 6c377b3..0000000
--- a/guestbook/submit.php
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
-
- Guestbook
-
-
-
-
-
-
-
-
-
- You must provide both a name and message!';
- } else {
- $db = new PDO("sqlite:/mnt/data1/webdata/floppydisk/guestbook.db");
-
- $showinfo = isset($_POST["showinfo"]) ? true : false;
- $showip = isset($_POST["showip"]) ? true : false;
- $ip = $_SERVER['REMOTE_ADDR'];
- $browser = get_browser(null, true);
- $sys = $browser['parent'] . ' (' . $browser['platform_description'] . ' ' . $browser['platform_version'] . ')';
-
- $data = array('name' => $name, 'message' => $msg, 'show_info' => $showinfo, 'show_ip' => $showip, 'ip' => $ip, 'submitted' => time(), 'sys' => $sys);
-
- $insert = "INSERT INTO Entries (name, message, show_info, show_ip, ip, submitted, browser_info) VALUES (:name, :message, :show_info, :show_ip, :ip, :submitted, :browser)";
- $stmt = $db->prepare($insert);
- $stmt->bindParam(':name', $data['name'], PDO::PARAM_STR);
- $stmt->bindParam(':message', $data['message'], PDO::PARAM_STR);
- $stmt->bindParam(':show_info', $data['show_info'], PDO::PARAM_STR);
- $stmt->bindParam(':show_ip', $data['show_ip'], PDO::PARAM_STR);
- $stmt->bindParam(':ip', $data['ip'], PDO::PARAM_STR);
- $stmt->bindParam(':submitted', $data['submitted'], PDO::PARAM_STR);
- $stmt->bindParam(':browser', $data['sys'], PDO::PARAM_STR);
- $stmt->execute();
- echo '
Success! ';
- }
- ?>
-
Back
-
-
-
-
-
-
-
diff --git a/hooks/post-recieve b/hooks/post-recieve
deleted file mode 100755
index 467c061..0000000
--- a/hooks/post-recieve
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-GIT_WORK_TREE=/var/www/main git checkout -f master
diff --git a/inc/config.example.inc.php b/inc/config.example.inc.php
deleted file mode 100644
index 433a60d..0000000
--- a/inc/config.example.inc.php
+++ /dev/null
@@ -1,5 +0,0 @@
- "key"
-);
diff --git a/inc/footer.inc.php b/inc/footer.inc.php
deleted file mode 100644
index 59babfc..0000000
--- a/inc/footer.inc.php
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
diff --git a/inc/header.inc.php b/inc/header.inc.php
deleted file mode 100644
index f891dca..0000000
--- a/inc/header.inc.php
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/inc/lastfm.inc.php b/inc/lastfm.inc.php
deleted file mode 100644
index b7bbde4..0000000
--- a/inc/lastfm.inc.php
+++ /dev/null
@@ -1,65 +0,0 @@
-
- "https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=".CONF['lastfm_user']."&nowplaying=true&format=json&api_key=".CONF['lastfm_key'],
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_ENCODING => "",
- CURLOPT_MAXREDIRS => 10,
- CURLOPT_TIMEOUT => 30,
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
- CURLOPT_CUSTOMREQUEST => "GET",
-]);
-
-$current_response = curl_exec($curl_current);
-$err = curl_error($curl_current);
-
-curl_close($curl_current);
-
-if ($err) {
- die("cURL Error #:" . $err);
-}
-$current_response = json_decode($current_response, true);
-$nowplaying = $current_response['recenttracks']['track'][0];
-
-echo ' Last/Current Track: '.$nowplaying['name'].' • '.$nowplaying['artist']['#text'].' '.PHP_EOL;
-
-$tracks_to_show = 10;
-
-$curl = curl_init();
-
-curl_setopt_array($curl, [
- CURLOPT_URL => "https://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=".CONF['lastfm_user']."&format=json&period=7day&api_key=".CONF['lastfm_key'],
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_ENCODING => "",
- CURLOPT_MAXREDIRS => 10,
- CURLOPT_TIMEOUT => 30,
- CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
- CURLOPT_CUSTOMREQUEST => "GET",
-]);
-
-$toptracks_response = curl_exec($curl);
-$err = curl_error($curl);
-
-curl_close($curl);
-
-if ($err) {
- die("cURL Error #:" . $err);
-}
-echo ' Top '.$tracks_to_show.' Tracks (Last 7 days) '.PHP_EOL;
-echo ' '.PHP_EOL;
-$toptracks_response = json_decode($toptracks_response, true);
-$tracks = $toptracks_response['toptracks']['track'];
-$count = 0;
-foreach ($tracks as $track) {
- echo ' '.PHP_EOL;
- echo ' '.$track['name'].' • '.$track['artist']['name'].' '.PHP_EOL;
- echo ' ('.$track['playcount'].' plays) '.PHP_EOL;
- echo ' '.PHP_EOL;
- if ($count >= $tracks_to_show - 1) break;
- $count++;
-}
-echo ' ';
\ No newline at end of file
diff --git a/inc/nav.inc.php b/inc/nav.inc.php
deleted file mode 100644
index e75445c..0000000
--- a/inc/nav.inc.php
+++ /dev/null
@@ -1,39 +0,0 @@
-
\ No newline at end of file
diff --git a/index.php b/index.php
deleted file mode 100755
index b1160c2..0000000
--- a/index.php
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-
-
-
- ~floppydisk
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Hi!
-
This is the personal homepage of floppydisk.
-
-
-
-
-
Contact
-
Mail : contact@diskfloppy.me
- IRC : floppydisk @ r-type
-
-
-
Elsewhere
-
Mastodon: @floppydisk_@mastodon.sdf.org
- Twitter: @floppydisk__
- GitHub: floppydisk05
- SDF: ~floppydisk
-
-
-
-
-
-
-
diff --git a/me/index.php b/me/index.php
deleted file mode 100755
index 7cfdff3..0000000
--- a/me/index.php
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
- Calculators
-
-
-
-
-
-
-
-
-
diff --git a/norton.png b/norton.png
deleted file mode 100644
index a898587..0000000
Binary files a/norton.png and /dev/null differ
diff --git a/oreilly.zip b/oreilly.zip
deleted file mode 100644
index d25c7a3..0000000
Binary files a/oreilly.zip and /dev/null differ
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..b1b6ee3
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,776 @@
+{
+ "name": "diskfloppy.me",
+ "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.2"
+ }
+ },
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "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,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@sentry-internal/feedback": {
+ "version": "7.91.0",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.91.0.tgz",
+ "integrity": "sha512-SJKTSaz68F5YIwF79EttBm915M2LnacgZMYRnRumyTmMKnebGhYQLwWbZdpaDvOa1U18dgRajDX8Qed/8A3tXw==",
+ "dependencies": {
+ "@sentry/core": "7.91.0",
+ "@sentry/types": "7.91.0",
+ "@sentry/utils": "7.91.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@sentry-internal/tracing": {
+ "version": "7.91.0",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.91.0.tgz",
+ "integrity": "sha512-JH5y6gs6BS0its7WF2DhySu7nkhPDfZcdpAXldxzIlJpqFkuwQKLU5nkYJpiIyZz1NHYYtW5aum2bV2oCOdDRA==",
+ "dependencies": {
+ "@sentry/core": "7.91.0",
+ "@sentry/types": "7.91.0",
+ "@sentry/utils": "7.91.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/browser": {
+ "version": "7.91.0",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.91.0.tgz",
+ "integrity": "sha512-lJv3x/xekzC/biiyAsVCioq2XnKNOZhI6jY3ZzLJZClYV8eKRi7D3KCsHRvMiCdGak1d/6sVp8F4NYY+YiWy1Q==",
+ "dependencies": {
+ "@sentry-internal/feedback": "7.91.0",
+ "@sentry-internal/tracing": "7.91.0",
+ "@sentry/core": "7.91.0",
+ "@sentry/replay": "7.91.0",
+ "@sentry/types": "7.91.0",
+ "@sentry/utils": "7.91.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/core": {
+ "version": "7.91.0",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.91.0.tgz",
+ "integrity": "sha512-tu+gYq4JrTdrR+YSh5IVHF0fJi/Pi9y0HZ5H9HnYy+UMcXIotxf6hIEaC6ZKGeLWkGXffz2gKpQLe/g6vy/lPA==",
+ "dependencies": {
+ "@sentry/types": "7.91.0",
+ "@sentry/utils": "7.91.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/replay": {
+ "version": "7.91.0",
+ "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.91.0.tgz",
+ "integrity": "sha512-XwbesnLLNtaVXKtDoyBB96GxJuhGi9zy3a662Ba/McmumCnkXrMQYpQPh08U7MgkTyDRgjDwm7PXDhiKpcb03g==",
+ "dependencies": {
+ "@sentry-internal/tracing": "7.91.0",
+ "@sentry/core": "7.91.0",
+ "@sentry/types": "7.91.0",
+ "@sentry/utils": "7.91.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@sentry/types": {
+ "version": "7.91.0",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.91.0.tgz",
+ "integrity": "sha512-bcQnb7J3P3equbCUc+sPuHog2Y47yGD2sCkzmnZBjvBT0Z1B4f36fI/5WjyZhTjLSiOdg3F2otwvikbMjmBDew==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@sentry/utils": {
+ "version": "7.91.0",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.91.0.tgz",
+ "integrity": "sha512-fvxjrEbk6T6Otu++Ax9ntlQ0sGRiwSC179w68aC3u26Wr30FAIRKqHTCCdc2jyWk7Gd9uWRT/cq+g8NG/8BfSg==",
+ "dependencies": {
+ "@sentry/types": "7.91.0"
+ },
+ "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
+ },
+ "node_modules/axios": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
+ "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
+ "dev": true,
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "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,
+ "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,
+ "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,
+ "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.4",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
+ "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/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,
+ "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/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.32",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz",
+ "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "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
+ },
+ "node_modules/rollup": {
+ "version": "3.29.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+ "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+ "dev": true,
+ "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.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz",
+ "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==",
+ "dev": true,
+ "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.1.0",
+ "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz",
+ "integrity": "sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^1.0.0",
+ "picomatch": "^2.3.1"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..e8ba17f
--- /dev/null
+++ b/package.json
@@ -0,0 +1,16 @@
+{
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build"
+ },
+ "devDependencies": {
+ "axios": "^1.1.2",
+ "laravel-vite-plugin": "^0.7.5",
+ "vite": "^4.5.2"
+ },
+ "dependencies": {
+ "@sentry/browser": "^7.40.0"
+ }
+}
diff --git a/phpunit.xml b/phpunit.xml
new file mode 100644
index 0000000..e9f533d
--- /dev/null
+++ b/phpunit.xml
@@ -0,0 +1,31 @@
+
+
+
+
+ ./tests/Unit
+
+
+ ./tests/Feature
+
+
+
+
+ ./app
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pics/index.php b/pics/index.php
deleted file mode 100755
index 7d578c2..0000000
--- a/pics/index.php
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
- Pictures
-
-
-
-
-
-
-
-
-
diff --git a/projects/index.php b/projects/index.php
deleted file mode 100755
index 52f1e3c..0000000
--- a/projects/index.php
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
-
- Projects
-
-
-
-
-
-
-
-
-
-
-
-
Personal Projects
-
Projects I prefer to work on solo
-
weather.diskfloppy.me
- A page to display data from my weather station
-
-
trivia.diskfloppy.me
- A REST API to get trivia questions
-
-
-
Projects I do/have done with friends
-
drivers.nickandfloppy.com (nickandfloppy)
- Driver indexing and storage website
-
-
PlexBot (NDFNet)
- A basic bot to play music from the configured Plex server in a Discord voice channel.
-
-
NetRunner (nickandfloppy)
- A fork of Starman0620's WinBot, modified for use in nick and floppy's corner.
-
-
-
-
-
-
-
diff --git a/public/.htaccess b/public/.htaccess
new file mode 100644
index 0000000..3aec5e2
--- /dev/null
+++ b/public/.htaccess
@@ -0,0 +1,21 @@
+
+
+ Options -MultiViews -Indexes
+
+
+ RewriteEngine On
+
+ # Handle Authorization Header
+ RewriteCond %{HTTP:Authorization} .
+ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+ # Redirect Trailing Slashes If Not A Folder...
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_URI} (.+)/$
+ RewriteRule ^ %1 [L,R=301]
+
+ # Send Requests To Front Controller...
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^ index.php [L]
+
diff --git a/public/css/colorschemes/c64.css b/public/css/colorschemes/c64.css
new file mode 100644
index 0000000..b3b7bf8
--- /dev/null
+++ b/public/css/colorschemes/c64.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #40318d;
+ --background-secondary: #483c8b;
+ --foreground: #f7f7f7;
+ --links: #67b6bd;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/catppuccin-frappe.css b/public/css/colorschemes/catppuccin-frappe.css
new file mode 100644
index 0000000..debb417
--- /dev/null
+++ b/public/css/colorschemes/catppuccin-frappe.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #232634;
+ --background-secondary: #414559;
+ --foreground: #c6d0f5;
+ --links: #8caaee;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/catppuccin-latte.css b/public/css/colorschemes/catppuccin-latte.css
new file mode 100644
index 0000000..5990649
--- /dev/null
+++ b/public/css/colorschemes/catppuccin-latte.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #dce0e8;
+ --background-secondary: #ccd0da;
+ --foreground: #4c4f69;
+ --links: #1e66f5;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: light;
+}
diff --git a/public/css/colorschemes/catppuccin-macchiato.css b/public/css/colorschemes/catppuccin-macchiato.css
new file mode 100644
index 0000000..5d69ee6
--- /dev/null
+++ b/public/css/colorschemes/catppuccin-macchiato.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #181926;
+ --background-secondary: #363a4f;
+ --foreground: #cad3f5;
+ --links: #8aadf4;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/catppuccin-mocha.css b/public/css/colorschemes/catppuccin-mocha.css
new file mode 100644
index 0000000..7d91e5e
--- /dev/null
+++ b/public/css/colorschemes/catppuccin-mocha.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #11111b;
+ --background-secondary: #313244;
+ --foreground: #cdd6f4;
+ --links: #89b4fa;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/gruvbox-dark.css b/public/css/colorschemes/gruvbox-dark.css
new file mode 100644
index 0000000..783303a
--- /dev/null
+++ b/public/css/colorschemes/gruvbox-dark.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #282828;
+ --background-secondary: #928374;
+ --foreground: #ebdbb2;
+ --links: #458588;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/gruvbox-material.css b/public/css/colorschemes/gruvbox-material.css
new file mode 100644
index 0000000..db83475
--- /dev/null
+++ b/public/css/colorschemes/gruvbox-material.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #282828;
+ --background-secondary: #3c3836;
+ --foreground: #d4be98;
+ --links: #7daea3;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/gruvbox.css b/public/css/colorschemes/gruvbox.css
new file mode 100644
index 0000000..5d02951
--- /dev/null
+++ b/public/css/colorschemes/gruvbox.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #fbf1c7;
+ --background-secondary: #928374;
+ --foreground: #3c3836;
+ --links: #458588;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: light;
+}
diff --git a/public/css/colorschemes/maia.css b/public/css/colorschemes/maia.css
new file mode 100644
index 0000000..4717327
--- /dev/null
+++ b/public/css/colorschemes/maia.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #31363a;
+ --background-secondary: #4c4f4d;
+ --foreground: #e8e8e8;
+ --links: #13bf9d;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/man-page.css b/public/css/colorschemes/man-page.css
new file mode 100644
index 0000000..6a75bbe
--- /dev/null
+++ b/public/css/colorschemes/man-page.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #fef49c;
+ --background-secondary: #e5e500;
+ --foreground: #000000;
+ --links: #b200b2;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: light;
+}
diff --git a/public/css/colorschemes/mono-amber.css b/public/css/colorschemes/mono-amber.css
new file mode 100644
index 0000000..364900b
--- /dev/null
+++ b/public/css/colorschemes/mono-amber.css
@@ -0,0 +1,17 @@
+:root {
+ --background: #2b1900;
+ --background-secondary: #402500;
+ --foreground: #ff9400;
+ --links: #ffc28a;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
+
+a {
+ text-decoration: underline !important;
+}
diff --git a/public/css/colorschemes/mono-cyan.css b/public/css/colorschemes/mono-cyan.css
new file mode 100644
index 0000000..e31971f
--- /dev/null
+++ b/public/css/colorschemes/mono-cyan.css
@@ -0,0 +1,17 @@
+:root {
+ --background: #00222B;
+ --background-secondary: #003340;
+ --foreground: #00CCFF;
+ --links: #ccf0ff;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
+
+a {
+ text-decoration: underline !important;
+}
diff --git a/public/css/colorschemes/mono-green.css b/public/css/colorschemes/mono-green.css
new file mode 100644
index 0000000..ed40158
--- /dev/null
+++ b/public/css/colorschemes/mono-green.css
@@ -0,0 +1,17 @@
+:root {
+ --background: #022B00;
+ --background-secondary: #034000;
+ --foreground: #0BFF00;
+ --links: #b6ffb1;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
+
+a {
+ text-decoration: underline !important;
+}
diff --git a/public/css/colorschemes/mono-red.css b/public/css/colorschemes/mono-red.css
new file mode 100644
index 0000000..d20690a
--- /dev/null
+++ b/public/css/colorschemes/mono-red.css
@@ -0,0 +1,17 @@
+:root {
+ --background: #2B0C00;
+ --background-secondary: #401200;
+ --foreground: #FF3600;
+ --links: #ffb09c;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
+
+a {
+ text-decoration: underline !important;
+}
diff --git a/public/css/colorschemes/mono-white.css b/public/css/colorschemes/mono-white.css
new file mode 100644
index 0000000..e921ece
--- /dev/null
+++ b/public/css/colorschemes/mono-white.css
@@ -0,0 +1,17 @@
+:root {
+ --background: #262626;
+ --background-secondary: #3B3B3B;
+ --foreground: #FAFAFA;
+ --links: #a9a9a9;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
+
+a {
+ text-decoration: underline !important;
+}
diff --git a/public/css/colorschemes/mono-yellow.css b/public/css/colorschemes/mono-yellow.css
new file mode 100644
index 0000000..b979c4b
--- /dev/null
+++ b/public/css/colorschemes/mono-yellow.css
@@ -0,0 +1,17 @@
+:root {
+ --background: #2B2400;
+ --background-secondary: #403500;
+ --foreground: #FFD300;
+ --links: #ffe8a2;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
+
+a {
+ text-decoration: underline !important;
+}
diff --git a/public/css/colorschemes/papercolor-dark.css b/public/css/colorschemes/papercolor-dark.css
new file mode 100644
index 0000000..1f5fe91
--- /dev/null
+++ b/public/css/colorschemes/papercolor-dark.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #1C1C1C;
+ --background-secondary: #585858;
+ --foreground: #D0D0D0;
+ --links: #5FAFD7;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/papercolor-light.css b/public/css/colorschemes/papercolor-light.css
new file mode 100644
index 0000000..19edd87
--- /dev/null
+++ b/public/css/colorschemes/papercolor-light.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #EEEEEE;
+ --background-secondary: #BCBCBC;
+ --foreground: #444444;
+ --links: #0087AF;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: light;
+}
diff --git a/public/css/colorschemes/rose-pine-dawn.css b/public/css/colorschemes/rose-pine-dawn.css
new file mode 100644
index 0000000..a74f80e
--- /dev/null
+++ b/public/css/colorschemes/rose-pine-dawn.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #F2E9E1;
+ --background-secondary: #9893A5;
+ --foreground: #575279;
+ --links: #907AA9;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: light;
+}
diff --git a/public/css/colorschemes/rose-pine-moon.css b/public/css/colorschemes/rose-pine-moon.css
new file mode 100644
index 0000000..dc5012a
--- /dev/null
+++ b/public/css/colorschemes/rose-pine-moon.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #393552;
+ --background-secondary: #6E6A86;
+ --foreground: #E0DEF4;
+ --links: #C4A7E7;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: light;
+}
diff --git a/public/css/colorschemes/rose-pine.css b/public/css/colorschemes/rose-pine.css
new file mode 100644
index 0000000..f45e235
--- /dev/null
+++ b/public/css/colorschemes/rose-pine.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #26233A;
+ --background-secondary: #6E6A86;
+ --foreground: #E0DEF4;
+ --links: #C4A7E7;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/shel.css b/public/css/colorschemes/shel.css
new file mode 100644
index 0000000..6ea4e5d
--- /dev/null
+++ b/public/css/colorschemes/shel.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #2C2423;
+ --background-secondary: #918988;
+ --foreground: #F5EEEC;
+ --links: #2C64A2;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/slate.css b/public/css/colorschemes/slate.css
new file mode 100644
index 0000000..df41859
--- /dev/null
+++ b/public/css/colorschemes/slate.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #222222;
+ --background-secondary: #494949;
+ --foreground: #E0E0E0;
+ --links: #02C5E0;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/solarized-dark.css b/public/css/colorschemes/solarized-dark.css
new file mode 100644
index 0000000..d3a2aa9
--- /dev/null
+++ b/public/css/colorschemes/solarized-dark.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #073642;
+ --background-secondary: #657B83;
+ --foreground: #FDF6E3;
+ --links: #2699FF;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: dark;
+}
diff --git a/public/css/colorschemes/solarized-light.css b/public/css/colorschemes/solarized-light.css
new file mode 100644
index 0000000..70d747a
--- /dev/null
+++ b/public/css/colorschemes/solarized-light.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #FDF6E3;
+ --background-secondary: #EEE8D5;
+ --foreground: #073642;
+ --links: #268BD2;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: light;
+}
diff --git a/public/css/colorschemes/terminal-basic.css b/public/css/colorschemes/terminal-basic.css
new file mode 100644
index 0000000..929a613
--- /dev/null
+++ b/public/css/colorschemes/terminal-basic.css
@@ -0,0 +1,13 @@
+:root {
+ --background: #FFFFFF;
+ --background-secondary: #bfbfbf;
+ --foreground: #000000;
+ --links: #0000ff;
+ --warning: #ff7272;
+ --warning-box-bg: #f64a3c;
+ --warning-box-border: #c81a11;
+}
+
+html {
+ color-scheme: light;
+}
diff --git a/public/css/dirlist.css b/public/css/dirlist.css
new file mode 100644
index 0000000..73d10b9
--- /dev/null
+++ b/public/css/dirlist.css
@@ -0,0 +1,40 @@
+@import "colorschemes/catppuccin-macchiato.css";
+
+body {
+ background-color: var(--background);
+ color: var(--foreground);
+}
+
+img {
+ image-rendering: pixelated;
+}
+
+a {
+ color: #99f;
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+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;
+}
+
+tr, th, td {
+ font-family: monospace;
+ font-size: 12pt;
+ padding: 0 5px;
+}
+
+address {
+ font-family: sans-serif;
+ font-size: 12pt
+}
+
+.description {
+ font-style: italic;
+ font-size: 90%;
+}
diff --git a/public/css/master.css b/public/css/master.css
new file mode 100644
index 0000000..4b4fbc3
--- /dev/null
+++ b/public/css/master.css
@@ -0,0 +1,509 @@
+/*@import "colorschemes/catppuccin-macchiato.css";*/
+
+body {
+ font-family: sans-serif;
+ margin: 0;
+ color: var(--foreground);
+ background-color: var(--background);
+ text-align: left;
+}
+
+ul {
+ list-style-type: square;
+}
+
+hr {
+ border: 1px solid var(--foreground);
+ border-bottom: none;
+}
+
+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;
+}
+
+h1,
+h2,
+h3 {
+ margin-top: 1em;
+ clear: left;
+}
+
+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 {
+ 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%;
+}
+
+table.computers td:first-child {
+ text-align: center;
+ font-weight: bold;
+}
+table.computers td ul {
+ margin: 0;
+ padding-left: 20px;
+}
+
+table.computers section-title {
+ text-decoration: underline;
+ font-style: italic;
+ font-weight: bold;
+}
+
+table.computers p.description {
+ font-style: italic;
+ margin: 5px 0 2px 0;
+}
+
+table.computers th {
+ background-color: var(--background-secondary);
+}
+
+table.computers td,
+table.computers th {
+ border: var(--foreground) solid 1px;
+ padding: 5px;
+}
+
+
+
+img.pixel {
+ image-rendering: pixelated;
+}
+
+div.footer {
+ text-align: center;
+ margin-bottom: 5px;
+}
+
+div.footer a.button {
+ text-decoration: none;
+}
+
+table.commits tr td {
+ border: none;
+ padding-right: 5px;
+}
+
+a {
+ color: var(--links);
+ text-decoration: underline dotted;
+}
+
+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,
+table.gb-entry-form tr td button{
+ margin-bottom: 5px;
+ margin-left: 10px;
+ background-color: var(--background);
+ border: var(--foreground) solid 1px;
+}
+
+table.gb-entry-form tr td button {
+ color: var(--foreground);
+ background-color: var(--background-secondary);
+}
+
+table.gb-entry-form tr td button:hover {
+ color: var(--background);
+ background-color: var(--foreground);
+}
+
+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-entry hr {
+ border: 1px dotted var(--foreground);
+ border-bottom: none;
+}
+
+table.gb-entry address {
+ font-size: 0.8pc;
+}
+
+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 {
+ width: 100%;
+}
+
+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;
+}
+.me img {
+ float: right;
+ margin: 5px;
+}
+
+.me p {
+ text-align: justify;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+.spec {
+ padding-left: 20px;
+}
+
+.spec-title {
+ font-weight: bold;
+}
+
+.project-grid {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ grid-template-rows: repeat(0, 1fr);
+ grid-column-gap: 0;
+ grid-row-gap: 0;
+ height: 100%;
+}
+
+.project-grid div {
+ padding: 5px;
+}
+
+.project-section-title,
+.project-grid div h1,
+.project-grid div p {
+ margin: 5px 0;
+}
+
+.project-section-title {
+ margin-top: 20px;
+ padding-bottom: 5px;
+ border-bottom: 1px solid var(--foreground);
+}
+
+.project-grid div h1 {
+ margin-top: 10px;
+}
+
+.project-grid div a {
+ text-decoration: underline dotted;
+ padding: 2px 2px 0 2px;
+ margin: 0;
+ font-size: 10pt;
+}
+
+.project-grid .project-links a {
+ color: var(--links);
+ border: 1px solid var(--foreground);
+ border-left: none;
+}
+
+.project-grid .project-links a:first-child {
+ border: 1px solid var(--foreground);
+}
+
+.project-grid .project-links a:hover {
+ background-color: var(--foreground);
+ color: var(--background);
+}
+
+.error-box {
+ width: 500px;
+ border: 5px solid var(--warning-box-border);
+ background-color: var(--warning-box-bg);
+ padding: 5px;
+}
+.error-box a,
+.error-box p {
+ margin: 0;
+ color: var(--foreground)
+}
+
+label[for="scheme-selector"] {
+ font-weight: bold;
+}
+
+#scheme-selector {
+ border: var(--foreground) solid 1px;
+ background-color: var(--background-secondary);
+ color: var(--foreground)
+}
+
+
+.music-top10 td {
+ border: none;
+ border-left: 1px dotted var(--foreground);
+ padding: 2px 5px
+}
+
+.music-top10 tr:nth-child(2) td {
+ border-bottom: 1px dotted var(--foreground);
+}
+
+.music-top10 tr:nth-child(3) td {
+ padding-top: 5px;
+}
+
+.music-top10 td:first-child {
+ border: none;
+}
diff --git a/public/css/minimal.css b/public/css/minimal.css
new file mode 100644
index 0000000..b64e0e9
--- /dev/null
+++ b/public/css/minimal.css
@@ -0,0 +1,12 @@
+* { 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, 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; }
+code.addr { font-size: 24px; }
+table { border: 1px solid #cad3f5; }
diff --git a/public/favicon-128x128.png b/public/favicon-128x128.png
new file mode 100644
index 0000000..0d6300c
Binary files /dev/null and b/public/favicon-128x128.png differ
diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png
new file mode 100644
index 0000000..0d067a5
Binary files /dev/null and b/public/favicon-16x16.png differ
diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png
new file mode 100644
index 0000000..f6a32dc
Binary files /dev/null and b/public/favicon-32x32.png differ
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..28434f3
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/images/buttons/browser.gif b/public/images/buttons/browser.gif
new file mode 100644
index 0000000..3f73e3f
Binary files /dev/null and b/public/images/buttons/browser.gif differ
diff --git a/public/images/buttons/debian.gif b/public/images/buttons/debian.gif
new file mode 100644
index 0000000..6a51e15
Binary files /dev/null and b/public/images/buttons/debian.gif differ
diff --git a/public/images/buttons/evaluatedWAVE.png b/public/images/buttons/evaluatedWAVE.png
new file mode 100644
index 0000000..a9d3bb9
Binary files /dev/null and b/public/images/buttons/evaluatedWAVE.png differ
diff --git a/public/images/buttons/html_learn_it_today.gif b/public/images/buttons/html_learn_it_today.gif
new file mode 100644
index 0000000..dd832a0
Binary files /dev/null and b/public/images/buttons/html_learn_it_today.gif differ
diff --git a/public/images/buttons/linuxnow.gif b/public/images/buttons/linuxnow.gif
new file mode 100644
index 0000000..61de1c3
Binary files /dev/null and b/public/images/buttons/linuxnow.gif differ
diff --git a/public/images/buttons/nukeieani.gif b/public/images/buttons/nukeieani.gif
new file mode 100644
index 0000000..e110127
Binary files /dev/null and b/public/images/buttons/nukeieani.gif differ
diff --git a/res/img/buttons/valid-html401-blue.png b/public/images/buttons/valid-html401-blue.png
similarity index 100%
rename from res/img/buttons/valid-html401-blue.png
rename to public/images/buttons/valid-html401-blue.png
diff --git a/public/images/buttons/vcss-blue.gif b/public/images/buttons/vcss-blue.gif
new file mode 100644
index 0000000..3ab6b83
Binary files /dev/null and b/public/images/buttons/vcss-blue.gif differ
diff --git a/public/images/buttons/vim.gif b/public/images/buttons/vim.gif
new file mode 100644
index 0000000..3fd0e9e
Binary files /dev/null and b/public/images/buttons/vim.gif differ
diff --git a/public/images/buttons/wiby.gif b/public/images/buttons/wiby.gif
new file mode 100644
index 0000000..87a6a75
Binary files /dev/null and b/public/images/buttons/wiby.gif differ
diff --git a/public/images/calculators/casio-fx-120/1s.jpeg b/public/images/calculators/casio-fx-120/1s.jpeg
new file mode 100644
index 0000000..6b84854
Binary files /dev/null and b/public/images/calculators/casio-fx-120/1s.jpeg differ
diff --git a/public/images/calculators/casio-fx-120/2s.jpeg b/public/images/calculators/casio-fx-120/2s.jpeg
new file mode 100644
index 0000000..1a663bb
Binary files /dev/null and b/public/images/calculators/casio-fx-120/2s.jpeg differ
diff --git a/public/images/calculators/casio-fx-120/3s.jpeg b/public/images/calculators/casio-fx-120/3s.jpeg
new file mode 100644
index 0000000..076d147
Binary files /dev/null and b/public/images/calculators/casio-fx-120/3s.jpeg differ
diff --git a/public/images/calculators/casio-fx-120/4s.jpeg b/public/images/calculators/casio-fx-120/4s.jpeg
new file mode 100644
index 0000000..988ab31
Binary files /dev/null and b/public/images/calculators/casio-fx-120/4s.jpeg differ
diff --git a/public/images/calculators/casio-fx-82/1s.jpeg b/public/images/calculators/casio-fx-82/1s.jpeg
new file mode 100644
index 0000000..69216ac
Binary files /dev/null and b/public/images/calculators/casio-fx-82/1s.jpeg differ
diff --git a/public/images/calculators/casio-fx-82/2s.jpeg b/public/images/calculators/casio-fx-82/2s.jpeg
new file mode 100644
index 0000000..adf3e2e
Binary files /dev/null and b/public/images/calculators/casio-fx-82/2s.jpeg differ
diff --git a/public/images/calculators/casio-fx-82/3s.jpeg b/public/images/calculators/casio-fx-82/3s.jpeg
new file mode 100644
index 0000000..87c6f16
Binary files /dev/null and b/public/images/calculators/casio-fx-82/3s.jpeg differ
diff --git a/public/images/calculators/casio-fx-82/4s.jpeg b/public/images/calculators/casio-fx-82/4s.jpeg
new file mode 100644
index 0000000..5a09e97
Binary files /dev/null and b/public/images/calculators/casio-fx-82/4s.jpeg differ
diff --git a/public/images/calculators/casio-fx-cg50/1s.jpeg b/public/images/calculators/casio-fx-cg50/1s.jpeg
new file mode 100644
index 0000000..6850678
Binary files /dev/null and b/public/images/calculators/casio-fx-cg50/1s.jpeg differ
diff --git a/public/images/calculators/casio-fx-cg50/2s.jpeg b/public/images/calculators/casio-fx-cg50/2s.jpeg
new file mode 100644
index 0000000..14dd3cf
Binary files /dev/null and b/public/images/calculators/casio-fx-cg50/2s.jpeg differ
diff --git a/public/images/calculators/casio-fx-cg50/3s.jpeg b/public/images/calculators/casio-fx-cg50/3s.jpeg
new file mode 100644
index 0000000..c0c87e1
Binary files /dev/null and b/public/images/calculators/casio-fx-cg50/3s.jpeg differ
diff --git a/public/images/calculators/casio-fx-cg50/4s.jpeg b/public/images/calculators/casio-fx-cg50/4s.jpeg
new file mode 100644
index 0000000..fcdac2a
Binary files /dev/null and b/public/images/calculators/casio-fx-cg50/4s.jpeg differ
diff --git a/public/images/calculators/texet-880/1s.jpeg b/public/images/calculators/texet-880/1s.jpeg
new file mode 100644
index 0000000..8454640
Binary files /dev/null and b/public/images/calculators/texet-880/1s.jpeg differ
diff --git a/public/images/calculators/texet-880/2s.jpeg b/public/images/calculators/texet-880/2s.jpeg
new file mode 100644
index 0000000..707b37c
Binary files /dev/null and b/public/images/calculators/texet-880/2s.jpeg differ
diff --git a/public/images/calculators/texet-880/3s.jpeg b/public/images/calculators/texet-880/3s.jpeg
new file mode 100644
index 0000000..a5e5f1e
Binary files /dev/null and b/public/images/calculators/texet-880/3s.jpeg differ
diff --git a/public/images/calculators/texet-880/4s.jpeg b/public/images/calculators/texet-880/4s.jpeg
new file mode 100644
index 0000000..eedc9be
Binary files /dev/null and b/public/images/calculators/texet-880/4s.jpeg differ
diff --git a/public/images/calculators/ti-30/1s.jpeg b/public/images/calculators/ti-30/1s.jpeg
new file mode 100644
index 0000000..fd34a30
Binary files /dev/null and b/public/images/calculators/ti-30/1s.jpeg differ
diff --git a/public/images/calculators/ti-30/2s.jpeg b/public/images/calculators/ti-30/2s.jpeg
new file mode 100644
index 0000000..23804f5
Binary files /dev/null and b/public/images/calculators/ti-30/2s.jpeg differ
diff --git a/public/images/calculators/ti-30/3s.jpeg b/public/images/calculators/ti-30/3s.jpeg
new file mode 100644
index 0000000..e0d1c27
Binary files /dev/null and b/public/images/calculators/ti-30/3s.jpeg differ
diff --git a/public/images/calculators/ti-30/4s.jpeg b/public/images/calculators/ti-30/4s.jpeg
new file mode 100644
index 0000000..b0c3d44
Binary files /dev/null and b/public/images/calculators/ti-30/4s.jpeg differ
diff --git a/public/images/computers/icons/display.png b/public/images/computers/icons/display.png
new file mode 100644
index 0000000..7df70e9
Binary files /dev/null and b/public/images/computers/icons/display.png differ
diff --git a/public/images/computers/icons/expansion1.png b/public/images/computers/icons/expansion1.png
new file mode 100644
index 0000000..cbde656
Binary files /dev/null and b/public/images/computers/icons/expansion1.png differ
diff --git a/public/images/computers/icons/expansion2.png b/public/images/computers/icons/expansion2.png
new file mode 100644
index 0000000..67452fa
Binary files /dev/null and b/public/images/computers/icons/expansion2.png differ
diff --git a/public/images/computers/icons/floppy35.png b/public/images/computers/icons/floppy35.png
new file mode 100644
index 0000000..9c2b5e6
Binary files /dev/null and b/public/images/computers/icons/floppy35.png differ
diff --git a/public/images/computers/icons/floppy525.png b/public/images/computers/icons/floppy525.png
new file mode 100644
index 0000000..511bcd9
Binary files /dev/null and b/public/images/computers/icons/floppy525.png differ
diff --git a/public/images/computers/icons/hdd.png b/public/images/computers/icons/hdd.png
new file mode 100644
index 0000000..cf02818
Binary files /dev/null and b/public/images/computers/icons/hdd.png differ
diff --git a/public/images/computers/icons/mem1.png b/public/images/computers/icons/mem1.png
new file mode 100644
index 0000000..1f61096
Binary files /dev/null and b/public/images/computers/icons/mem1.png differ
diff --git a/public/images/computers/icons/mem2.png b/public/images/computers/icons/mem2.png
new file mode 100644
index 0000000..9f4eca6
Binary files /dev/null and b/public/images/computers/icons/mem2.png differ
diff --git a/public/images/computers/icons/msdos.png b/public/images/computers/icons/msdos.png
new file mode 100644
index 0000000..61251a7
Binary files /dev/null and b/public/images/computers/icons/msdos.png differ
diff --git a/public/images/computers/icons/network.png b/public/images/computers/icons/network.png
new file mode 100644
index 0000000..108fcc6
Binary files /dev/null and b/public/images/computers/icons/network.png differ
diff --git a/public/images/computers/icons/printer.png b/public/images/computers/icons/printer.png
new file mode 100644
index 0000000..b60c2f1
Binary files /dev/null and b/public/images/computers/icons/printer.png differ
diff --git a/public/images/computers/icons/proc.png b/public/images/computers/icons/proc.png
new file mode 100644
index 0000000..2b38b71
Binary files /dev/null and b/public/images/computers/icons/proc.png differ
diff --git a/public/images/computers/icons/scsi.png b/public/images/computers/icons/scsi.png
new file mode 100644
index 0000000..0446891
Binary files /dev/null and b/public/images/computers/icons/scsi.png differ
diff --git a/public/images/computers/icons/win311.png b/public/images/computers/icons/win311.png
new file mode 100644
index 0000000..572511d
Binary files /dev/null and b/public/images/computers/icons/win311.png differ
diff --git a/public/images/computers/icons/windows9x.png b/public/images/computers/icons/windows9x.png
new file mode 100644
index 0000000..1fee0a5
Binary files /dev/null and b/public/images/computers/icons/windows9x.png differ
diff --git a/res/img/icons/ico/calc.ico b/public/images/icons/fav/ico/calc.ico
similarity index 100%
rename from res/img/icons/ico/calc.ico
rename to public/images/icons/fav/ico/calc.ico
diff --git a/public/images/icons/fav/ico/computer.ico b/public/images/icons/fav/ico/computer.ico
new file mode 100644
index 0000000..01f4a74
Binary files /dev/null and b/public/images/icons/fav/ico/computer.ico differ
diff --git a/favicon.ico b/public/images/icons/fav/ico/favicon.ico
similarity index 100%
rename from favicon.ico
rename to public/images/icons/fav/ico/favicon.ico
diff --git a/public/images/icons/fav/ico/globe.ico b/public/images/icons/fav/ico/globe.ico
new file mode 100644
index 0000000..55ae5a3
Binary files /dev/null and b/public/images/icons/fav/ico/globe.ico differ
diff --git a/public/images/icons/fav/ico/help-book.ico b/public/images/icons/fav/ico/help-book.ico
new file mode 100644
index 0000000..a156820
Binary files /dev/null and b/public/images/icons/fav/ico/help-book.ico differ
diff --git a/public/images/icons/fav/png/calc.png b/public/images/icons/fav/png/calc.png
new file mode 100644
index 0000000..fcbf0ea
Binary files /dev/null and b/public/images/icons/fav/png/calc.png differ
diff --git a/res/img/icons/png/computer.png b/public/images/icons/fav/png/computer.png
similarity index 100%
rename from res/img/icons/png/computer.png
rename to public/images/icons/fav/png/computer.png
diff --git a/public/images/icons/fav/png/globe.png b/public/images/icons/fav/png/globe.png
new file mode 100644
index 0000000..21b4b17
Binary files /dev/null and b/public/images/icons/fav/png/globe.png differ
diff --git a/public/images/icons/fav/png/help-book.png b/public/images/icons/fav/png/help-book.png
new file mode 100644
index 0000000..845863a
Binary files /dev/null and b/public/images/icons/fav/png/help-book.png differ
diff --git a/public/images/icons/nav/bookmarks.png b/public/images/icons/nav/bookmarks.png
new file mode 100644
index 0000000..1409930
Binary files /dev/null and b/public/images/icons/nav/bookmarks.png differ
diff --git a/public/images/icons/nav/computers.png b/public/images/icons/nav/computers.png
new file mode 100644
index 0000000..e6dda18
Binary files /dev/null and b/public/images/icons/nav/computers.png differ
diff --git a/public/images/icons/nav/guestbook.png b/public/images/icons/nav/guestbook.png
new file mode 100644
index 0000000..a1f7fc4
Binary files /dev/null and b/public/images/icons/nav/guestbook.png differ
diff --git a/public/images/icons/nav/home.png b/public/images/icons/nav/home.png
new file mode 100644
index 0000000..304ab01
Binary files /dev/null and b/public/images/icons/nav/home.png differ
diff --git a/public/images/icons/nav/login.png b/public/images/icons/nav/login.png
new file mode 100644
index 0000000..77f7e71
Binary files /dev/null and b/public/images/icons/nav/login.png differ
diff --git a/public/images/icons/nav/mail.png b/public/images/icons/nav/mail.png
new file mode 100644
index 0000000..5249691
Binary files /dev/null and b/public/images/icons/nav/mail.png differ
diff --git a/public/images/icons/nav/music.png b/public/images/icons/nav/music.png
new file mode 100644
index 0000000..748094a
Binary files /dev/null and b/public/images/icons/nav/music.png differ
diff --git a/public/images/icons/nav/pubfiles.png b/public/images/icons/nav/pubfiles.png
new file mode 100644
index 0000000..06ba84a
Binary files /dev/null and b/public/images/icons/nav/pubfiles.png differ
diff --git a/public/images/icons/nav/repo.png b/public/images/icons/nav/repo.png
new file mode 100644
index 0000000..27ade1c
Binary files /dev/null and b/public/images/icons/nav/repo.png differ
diff --git a/public/images/icons/nav/weather.png b/public/images/icons/nav/weather.png
new file mode 100644
index 0000000..f087e56
Binary files /dev/null and b/public/images/icons/nav/weather.png differ
diff --git a/public/images/login-background.png b/public/images/login-background.png
new file mode 100644
index 0000000..0dc7bfc
Binary files /dev/null and b/public/images/login-background.png differ
diff --git a/public/images/logo.png b/public/images/logo.png
new file mode 100644
index 0000000..a20bab1
Binary files /dev/null and b/public/images/logo.png differ
diff --git a/public/index.php b/public/index.php
new file mode 100644
index 0000000..1d69f3a
--- /dev/null
+++ b/public/index.php
@@ -0,0 +1,55 @@
+make(Kernel::class);
+
+$response = $kernel->handle(
+ $request = Request::capture()
+)->send();
+
+$kernel->terminate($request, $response);
diff --git a/public/js/christmas/snow.js b/public/js/christmas/snow.js
new file mode 100644
index 0000000..3d2d7af
--- /dev/null
+++ b/public/js/christmas/snow.js
@@ -0,0 +1,113 @@
+/*!
+// 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 = Math.max(document.body.scrollHeight, window.innerHeight) - 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 = Math.max(document.body.scrollHeight, window.innerHeight) - 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/neverSaid.js b/public/js/neverSaid.js
new file mode 100644
index 0000000..5b58d60
--- /dev/null
+++ b/public/js/neverSaid.js
@@ -0,0 +1,35 @@
+// 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..3baa09b
--- /dev/null
+++ b/public/js/schemeSwap.js
@@ -0,0 +1,70 @@
+/**
+ * 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://www.diskfloppy.me/pub
+ 2023-10-10
+ always
+ 0.5
+
+
+ https://www.diskfloppy.me/computers
+ 2023-10-10
+ always
+ 0.5
+
+
+ https://www.diskfloppy.me/guestbook
+ 2023-10-10
+ always
+ 0.5
+
+
+ https://www.diskfloppy.me/weather
+ 2023-10-10
+ always
+ 0.5
+
+
+ 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/public/videos/silly.mp4 b/public/videos/silly.mp4
new file mode 100644
index 0000000..720dbb1
Binary files /dev/null and b/public/videos/silly.mp4 differ
diff --git a/res/css/dark.css b/res/css/dark.css
deleted file mode 100755
index 1eeaf43..0000000
--- a/res/css/dark.css
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-This stylesheet contains only colors which are
-different depending on theme. All other styles have
-been moved to global.css and imported below.
-*/
-@import url('global.css');
-
-html {
- color-scheme: dark;
-}
-
-div.project pre {
- border: 1px solid #666666
-}
-
-body {
- color: #ddd;
- background-color: #333;
-}
-
-h1 {
- color: #fff;
-}
-
-
-h2 {
- color: #fff;
-}
-
-h3 {
- color: #fff;
-}
-
-div.preview pre, div.project pre {
- background-color: #222;
- color: #ccc;
-}
-
-a {
- color: #99f;
- text-decoration: none
-}
-.header {
- color: #fff;
-}
-
-
-.header .pagetree {
- color: #fff;
-}
-
-.header .pagetree .title {
- color: #fff
-}
-
-/*table td {
- border: 1px solid black
-}*/
-
-
-/*table.skami {
- border-color: #eeeeee
-}*/
-table.skami .semiused {
- color: #ccc;
- background-color: #444;
- border-color: #FFF;
-}
-
-table.skami .unused {
- color: #bbb;
- background-color: #555
-}
-
-table {
- border-color: #fff
-}
diff --git a/res/css/global.css b/res/css/global.css
deleted file mode 100755
index 693452b..0000000
--- a/res/css/global.css
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
-This stylesheet contains all styles which are
-the same across both themes.
-*/
-ul {
- list-style-type: square;
-}
-
-table.banner {
- margin-left: auto;
- margin-right: auto;
- border: 2px solid #E04A38;
- background-color: #E6897E;
- width: 95%;
- /* Passes both WCAG AA and WCAG AAA contrast tests */
- color: #0F0F0F;
-}
-
-td.banner {
- padding: 5px;
-}
-
-a.bannerlink {
- color: #0F0F0F;
-}
-
-a.bannerlink:hover {
- text-decoration: underline;
-}
-
-div.page {
- min-width: 700px;
- max-width: 1024px;
- /*margin-left: 0.5em;
- margin-right: 0.5em;*/
- padding-left: 0.5em;
- padding-right: 0.5em;
- margin: auto
-}
-
-h1.inline {
- font-family: sans-serif;
- font-weight: normal;
- margin-top: 0em;
- clear: none;
- font-size: 100%;
- display: inline
-}
-
-h1.inline:before {
- content: ""
-}
-
-h1:before {
- content: "> "
-}
-
-h2:before {
- content: ">> "
-}
-
-h3:before {
- content: ">>> "
-}
-
-.toplinks span:after {
- content: " >"
-}
-
-h1, h2, h3 {
- font-family: Monospace;
- font-weight: normal;
- margin-top: 1em;
- clear: left
-}
-
-img {
- border: none;
- max-width: 100%;
-}
-
-img.right {
- float: right;
- margin-left: 0.5em
-}
-
-table.form, td.form {
- border: none;
-}
-
-div.preview {
- display: inline-block;
- width: 30em;
- max-width: 100%;
- text-align: center;
- vertical-align: top;
- margin-bottom: 2em
-}
-
-div.project {
- display: inline-block;
- width: 40em;
- max-width: 100%;
- text-align: center;
- vertical-align: top;
- margin-bottom: 2em
-}
-
-div.preview .heading .name, div.project .heading .name {
- font-size: 120%
-}
-
-div.preview img, div.project img {
- width: auto;
- max-width: 90%;
- max-height: 15em
-}
-
-div.preview pre.small, div.project pre.small {
- font-size: 75%;
- overflow: hidden
-}
-
-pre {
- display: inline;
- max-width: 95%;
- overflow: auto
-}
-
-.header a {
- text-decoration: none
-}
-
-nav {
- margin-bottom: 0.3em
-}
-
-div.ddate {
- text-align: center
-}
-
-div.note {
- font-style: italic
-}
-
-table {
- border-collapse: collapse
-}
-
-table.noborder td {
- border: none
-}
-
-table.skami a {
- text-decoration: none
-}
-
-table.weather th {
- font-weight: normal
-}
-
-table.weather td {
- font-weight: bold;
- text-align: right
-}
-
-.project .name {
- font-weight: bold
-}
-
-.toplinks a {
- margin-right: 0.5em;
- text-decoration: none
-}
-
-div.inlinepage {
- margin-top: 2em;
- border: 0;
- padding: 0
-}
-
-div.pheader {
- font-size: 120%
-}
-
-div.pheader span.date {
- margin-right: 1em;
- font-weight: normal
-}
-
-div.pheader a {
- font-weight: bold;
- text-decoration: none
-}
-
-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%
-}
-
-.toplinks span {
- display: block;
- text-align: right;
- float: left;
- width: 8em;
- margin-right: 0.5em
-}
-
-.deprecated {
- line-height: 140%;
- width: 100%;
- color: #aa0000;
- text-align: center;
- padding-bottom: 0.5em;
- border-bottom: 2px dashed #aa0000
-}
-
-.project .attributes {
- font-style: italic
-}
-
-.project .attribbracket {
- margin-left: 0.5em
-}
-
-.toplinks {
- line-height: 140%;
- width: 100%;
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-bottom: 1px solid #cccccc
-}
-
-table td {
- border: 1px solid white
-}
-
-td {
- padding: 3px;
- vertical-align: top;
-}
-
-table.skami {
- border-color: #eeeeee !important
-}
-
-.header .pagetree {
- font-size: 80%;
- display: block;
- text-align: center;
- width: 100%;
- padding-top: 0.1em;
- padding-bottom: 0.1em;
- border-top: 1px solid #cccccc
-}
-
-.header {
- font-size: 100%;
- font-weight: normal;
- padding-bottom: 0em;
- border-bottom: 1px solid #cccccc;
- text-align: center
-}
-
-div.preview pre, div.project pre {
- display: inline-block;
- text-align: left;
- padding: 0.2em;
- max-width: 90%
-}
-
-h1 {
- font-size: 150%
-}
-
-
-h2 {
- font-size: 130%
-}
-
-h3 {
- font-size: 115%
-}
-
-body {
- font-family: sans-serif;
- margin: 0px;
-}
-
-table.computers {
- width: 100%;
-}
-
-td.computer {
- width: 50%;
- border: 0px;
-}
diff --git a/res/img/buttons/browser.gif b/res/img/buttons/browser.gif
deleted file mode 100644
index 28a63e3..0000000
Binary files a/res/img/buttons/browser.gif and /dev/null differ
diff --git a/res/img/buttons/linuxnow.gif b/res/img/buttons/linuxnow.gif
deleted file mode 100644
index 9851014..0000000
Binary files a/res/img/buttons/linuxnow.gif and /dev/null differ
diff --git a/res/img/buttons/vcss-blue.gif b/res/img/buttons/vcss-blue.gif
deleted file mode 100644
index c373b2a..0000000
Binary files a/res/img/buttons/vcss-blue.gif and /dev/null differ
diff --git a/res/img/buttons/vim.gif b/res/img/buttons/vim.gif
deleted file mode 100644
index 01f09f1..0000000
Binary files a/res/img/buttons/vim.gif and /dev/null differ
diff --git a/res/img/calculators/casio-fx-120/1s.jpeg b/res/img/calculators/casio-fx-120/1s.jpeg
deleted file mode 100755
index 9b253d7..0000000
Binary files a/res/img/calculators/casio-fx-120/1s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-120/2s.jpeg b/res/img/calculators/casio-fx-120/2s.jpeg
deleted file mode 100755
index 0cdb616..0000000
Binary files a/res/img/calculators/casio-fx-120/2s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-120/3s.jpeg b/res/img/calculators/casio-fx-120/3s.jpeg
deleted file mode 100755
index c87c2db..0000000
Binary files a/res/img/calculators/casio-fx-120/3s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-120/4s.jpeg b/res/img/calculators/casio-fx-120/4s.jpeg
deleted file mode 100755
index 3981a43..0000000
Binary files a/res/img/calculators/casio-fx-120/4s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-120/pspbrwse.jbf b/res/img/calculators/casio-fx-120/pspbrwse.jbf
deleted file mode 100755
index e9f587f..0000000
Binary files a/res/img/calculators/casio-fx-120/pspbrwse.jbf and /dev/null differ
diff --git a/res/img/calculators/casio-fx-82/1s.jpeg b/res/img/calculators/casio-fx-82/1s.jpeg
deleted file mode 100755
index d5ba32f..0000000
Binary files a/res/img/calculators/casio-fx-82/1s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-82/2s.jpeg b/res/img/calculators/casio-fx-82/2s.jpeg
deleted file mode 100755
index 29c8469..0000000
Binary files a/res/img/calculators/casio-fx-82/2s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-82/3s.jpeg b/res/img/calculators/casio-fx-82/3s.jpeg
deleted file mode 100755
index 9aa97bb..0000000
Binary files a/res/img/calculators/casio-fx-82/3s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-82/4s.jpeg b/res/img/calculators/casio-fx-82/4s.jpeg
deleted file mode 100755
index de0714c..0000000
Binary files a/res/img/calculators/casio-fx-82/4s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-82/pspbrwse.jbf b/res/img/calculators/casio-fx-82/pspbrwse.jbf
deleted file mode 100755
index 2c4f9a7..0000000
Binary files a/res/img/calculators/casio-fx-82/pspbrwse.jbf and /dev/null differ
diff --git a/res/img/calculators/casio-fx-cg50/1s.jpeg b/res/img/calculators/casio-fx-cg50/1s.jpeg
deleted file mode 100755
index 6526f7c..0000000
Binary files a/res/img/calculators/casio-fx-cg50/1s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-cg50/2s.jpeg b/res/img/calculators/casio-fx-cg50/2s.jpeg
deleted file mode 100755
index 9feb772..0000000
Binary files a/res/img/calculators/casio-fx-cg50/2s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-cg50/3s.jpeg b/res/img/calculators/casio-fx-cg50/3s.jpeg
deleted file mode 100755
index 21c8066..0000000
Binary files a/res/img/calculators/casio-fx-cg50/3s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-cg50/4s.jpeg b/res/img/calculators/casio-fx-cg50/4s.jpeg
deleted file mode 100755
index c09618e..0000000
Binary files a/res/img/calculators/casio-fx-cg50/4s.jpeg and /dev/null differ
diff --git a/res/img/calculators/casio-fx-cg50/pspbrwse.jbf b/res/img/calculators/casio-fx-cg50/pspbrwse.jbf
deleted file mode 100755
index 471fc12..0000000
Binary files a/res/img/calculators/casio-fx-cg50/pspbrwse.jbf and /dev/null differ
diff --git a/res/img/calculators/texet-880/1s.jpeg b/res/img/calculators/texet-880/1s.jpeg
deleted file mode 100755
index 14f849c..0000000
Binary files a/res/img/calculators/texet-880/1s.jpeg and /dev/null differ
diff --git a/res/img/calculators/texet-880/2s.jpeg b/res/img/calculators/texet-880/2s.jpeg
deleted file mode 100755
index 836997c..0000000
Binary files a/res/img/calculators/texet-880/2s.jpeg and /dev/null differ
diff --git a/res/img/calculators/texet-880/3s.jpeg b/res/img/calculators/texet-880/3s.jpeg
deleted file mode 100755
index 2312952..0000000
Binary files a/res/img/calculators/texet-880/3s.jpeg and /dev/null differ
diff --git a/res/img/calculators/texet-880/4s.jpeg b/res/img/calculators/texet-880/4s.jpeg
deleted file mode 100755
index 0b9fee8..0000000
Binary files a/res/img/calculators/texet-880/4s.jpeg and /dev/null differ
diff --git a/res/img/calculators/texet-880/pspbrwse.jbf b/res/img/calculators/texet-880/pspbrwse.jbf
deleted file mode 100755
index 67f6254..0000000
Binary files a/res/img/calculators/texet-880/pspbrwse.jbf and /dev/null differ
diff --git a/res/img/calculators/ti-30/1s.jpeg b/res/img/calculators/ti-30/1s.jpeg
deleted file mode 100755
index 80133d5..0000000
Binary files a/res/img/calculators/ti-30/1s.jpeg and /dev/null differ
diff --git a/res/img/calculators/ti-30/2s.jpeg b/res/img/calculators/ti-30/2s.jpeg
deleted file mode 100755
index 1b18bac..0000000
Binary files a/res/img/calculators/ti-30/2s.jpeg and /dev/null differ
diff --git a/res/img/calculators/ti-30/3s.jpeg b/res/img/calculators/ti-30/3s.jpeg
deleted file mode 100755
index d51f4bd..0000000
Binary files a/res/img/calculators/ti-30/3s.jpeg and /dev/null differ
diff --git a/res/img/calculators/ti-30/4s.jpeg b/res/img/calculators/ti-30/4s.jpeg
deleted file mode 100755
index 027f74d..0000000
Binary files a/res/img/calculators/ti-30/4s.jpeg and /dev/null differ
diff --git a/res/img/calculators/ti-30/pspbrwse.jbf b/res/img/calculators/ti-30/pspbrwse.jbf
deleted file mode 100755
index dc20900..0000000
Binary files a/res/img/calculators/ti-30/pspbrwse.jbf and /dev/null differ
diff --git a/res/img/icons/ico/favicon.ico b/res/img/icons/ico/favicon.ico
deleted file mode 100755
index 848cc6f..0000000
Binary files a/res/img/icons/ico/favicon.ico and /dev/null differ
diff --git a/res/img/icons/png/calc.png b/res/img/icons/png/calc.png
deleted file mode 100755
index bdc9e06..0000000
Binary files a/res/img/icons/png/calc.png and /dev/null differ
diff --git a/resources/js/app.js b/resources/js/app.js
new file mode 100644
index 0000000..e59d6a0
--- /dev/null
+++ b/resources/js/app.js
@@ -0,0 +1 @@
+import './bootstrap';
diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js
new file mode 100644
index 0000000..846d350
--- /dev/null
+++ b/resources/js/bootstrap.js
@@ -0,0 +1,32 @@
+/**
+ * We'll load the axios HTTP library which allows us to easily issue requests
+ * to our Laravel back-end. This library automatically handles sending the
+ * CSRF token as a header based on the value of the "XSRF" token cookie.
+ */
+
+import axios from 'axios';
+window.axios = axios;
+
+window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
+
+/**
+ * Echo exposes an expressive API for subscribing to channels and listening
+ * for events that are broadcast by Laravel. Echo and event broadcasting
+ * allows your team to easily build robust real-time web applications.
+ */
+
+// import Echo from 'laravel-echo';
+
+// import Pusher from 'pusher-js';
+// window.Pusher = Pusher;
+
+// window.Echo = new Echo({
+// broadcaster: 'pusher',
+// key: import.meta.env.VITE_PUSHER_APP_KEY,
+// cluster: import.meta.env.VITE_PUSHER_APP_CLUSTER ?? 'mt1',
+// wsHost: import.meta.env.VITE_PUSHER_HOST ? import.meta.env.VITE_PUSHER_HOST : `ws-${import.meta.env.VITE_PUSHER_APP_CLUSTER}.pusher.com`,
+// wsPort: import.meta.env.VITE_PUSHER_PORT ?? 80,
+// wssPort: import.meta.env.VITE_PUSHER_PORT ?? 443,
+// forceTLS: (import.meta.env.VITE_PUSHER_SCHEME ?? 'https') === 'https',
+// enabledTransports: ['ws', 'wss'],
+// });
diff --git a/resources/views/components/errors/api-error.blade.php b/resources/views/components/errors/api-error.blade.php
new file mode 100644
index 0000000..1d4609a
--- /dev/null
+++ b/resources/views/components/errors/api-error.blade.php
@@ -0,0 +1,4 @@
+
+
API Error: There was an error connecting to the API.
+
If this error persists, please notify me via e-mail .
+
diff --git a/resources/views/components/errors/db-error.blade.php b/resources/views/components/errors/db-error.blade.php
new file mode 100644
index 0000000..45f6157
--- /dev/null
+++ b/resources/views/components/errors/db-error.blade.php
@@ -0,0 +1,4 @@
+
+
DB Error: There was an error connecting to the database.
+
If this error persists, please notify me via e-mail .
+
diff --git a/resources/views/components/git.blade.php b/resources/views/components/git.blade.php
new file mode 100644
index 0000000..e66a6eb
--- /dev/null
+++ b/resources/views/components/git.blade.php
@@ -0,0 +1,48 @@
+@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/errors/401.blade.php b/resources/views/errors/401.blade.php
new file mode 100644
index 0000000..5c586db
--- /dev/null
+++ b/resources/views/errors/401.blade.php
@@ -0,0 +1,5 @@
+@extends('errors::minimal')
+
+@section('title', __('Unauthorized'))
+@section('code', '401')
+@section('message', __('Unauthorized'))
diff --git a/resources/views/errors/402.blade.php b/resources/views/errors/402.blade.php
new file mode 100644
index 0000000..3bc23ef
--- /dev/null
+++ b/resources/views/errors/402.blade.php
@@ -0,0 +1,5 @@
+@extends('errors::minimal')
+
+@section('title', __('Payment Required'))
+@section('code', '402')
+@section('message', __('Payment Required'))
diff --git a/resources/views/errors/403.blade.php b/resources/views/errors/403.blade.php
new file mode 100644
index 0000000..a5506f0
--- /dev/null
+++ b/resources/views/errors/403.blade.php
@@ -0,0 +1,5 @@
+@extends('errors::minimal')
+
+@section('title', __('Forbidden'))
+@section('code', '403')
+@section('message', __($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..ebd22b7
--- /dev/null
+++ b/resources/views/errors/404.blade.php
@@ -0,0 +1,27 @@
+@extends('errors::minimal')
+@section('content')
+
+Error 404 | Page not found!
+
+The page /{{ Request::path() }}/ doesn't exist! Did you mean...
+
+Still haven't found what you were looking for or believe this is a server error? Contact the webmaster !
+
+Diagnostic Info
+
+
+ Server: {{ gethostname() }}
+ Your IP: {{ Request::ip() }}
+ Epoch: {{ now()->timestamp }}
+ Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0
+
+
+© floppydisk 2021-2024
+@endsection
diff --git a/resources/views/errors/418.blade.php b/resources/views/errors/418.blade.php
new file mode 100644
index 0000000..412ea92
--- /dev/null
+++ b/resources/views/errors/418.blade.php
@@ -0,0 +1,5 @@
+@extends('errors::minimal')
+
+@section('title', __('I\'m a teapot'))
+@section('code', '418')
+@section('message', __('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..c09216e
--- /dev/null
+++ b/resources/views/errors/419.blade.php
@@ -0,0 +1,5 @@
+@extends('errors::minimal')
+
+@section('title', __('Page Expired'))
+@section('code', '419')
+@section('message', __('Page Expired'))
diff --git a/resources/views/errors/429.blade.php b/resources/views/errors/429.blade.php
new file mode 100644
index 0000000..f01b07b
--- /dev/null
+++ b/resources/views/errors/429.blade.php
@@ -0,0 +1,5 @@
+@extends('errors::minimal')
+
+@section('title', __('Too Many Requests'))
+@section('code', '429')
+@section('message', __('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..d9e95d9
--- /dev/null
+++ b/resources/views/errors/500.blade.php
@@ -0,0 +1,5 @@
+@extends('errors::minimal')
+
+@section('title', __('Server Error'))
+@section('code', '500')
+@section('message', __('Server Error'))
diff --git a/resources/views/errors/503.blade.php b/resources/views/errors/503.blade.php
new file mode 100644
index 0000000..c5a9dde
--- /dev/null
+++ b/resources/views/errors/503.blade.php
@@ -0,0 +1,5 @@
+@extends('errors::minimal')
+
+@section('title', __('Service Unavailable'))
+@section('code', '503')
+@section('message', __('Service Unavailable'))
diff --git a/resources/views/errors/generic-error.blade.php b/resources/views/errors/generic-error.blade.php
new file mode 100644
index 0000000..6f08ea5
--- /dev/null
+++ b/resources/views/errors/generic-error.blade.php
@@ -0,0 +1,9 @@
+@extends('layouts.minimal')
+@section('title', 'Error 401: Unauthorized User!')
+@section('content')
+ {{ $error }}
+
+ @if(isset($description))
+ {{ $description }}
+ @endif
+@stop
diff --git a/resources/views/errors/guestbook-ipban.blade.php b/resources/views/errors/guestbook-ipban.blade.php
new file mode 100644
index 0000000..386d22a
--- /dev/null
+++ b/resources/views/errors/guestbook-ipban.blade.php
@@ -0,0 +1,12 @@
+@extends('layouts.minimal')
+@section('title', 'Error 403: IP Blocked!')
+@section('content')
+ Error 403: IP Blocked!
+
+ Your IP has been banned from submitting to the guestbook.
+ @if (isset($reason))
+ Reason: {{ $reason }}
+ @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
new file mode 100644
index 0000000..7fecd97
--- /dev/null
+++ b/resources/views/errors/guestbook-ratelimit.blade.php
@@ -0,0 +1,10 @@
+@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
diff --git a/resources/views/errors/layout.blade.php b/resources/views/errors/layout.blade.php
new file mode 100644
index 0000000..019c2cd
--- /dev/null
+++ b/resources/views/errors/layout.blade.php
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+ @yield('title')
+
+
+
+
+
+
+
+
+ @yield('message')
+
+
+
+
+
diff --git a/resources/views/errors/minimal.blade.php b/resources/views/errors/minimal.blade.php
new file mode 100644
index 0000000..e15c833
--- /dev/null
+++ b/resources/views/errors/minimal.blade.php
@@ -0,0 +1,21 @@
+@extends('layouts.minimal')
+@section('content')
+ Error @yield('code') | @yield('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: /{{ Request::path() }}/
+ Epoch: {{ now()->timestamp }}
+ Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0
+
+
+ © floppydisk 2021-2024
+@endsection
diff --git a/resources/views/errors/no-auth.blade.php b/resources/views/errors/no-auth.blade.php
new file mode 100644
index 0000000..1d99498
--- /dev/null
+++ b/resources/views/errors/no-auth.blade.php
@@ -0,0 +1,8 @@
+@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/includes/admin/header.blade.php b/resources/views/includes/admin/header.blade.php
new file mode 100644
index 0000000..edb2fd7
--- /dev/null
+++ b/resources/views/includes/admin/header.blade.php
@@ -0,0 +1,12 @@
+
+
+
diff --git a/resources/views/includes/footer.blade.php b/resources/views/includes/footer.blade.php
new file mode 100644
index 0000000..b606564
--- /dev/null
+++ b/resources/views/includes/footer.blade.php
@@ -0,0 +1,66 @@
+
+
diff --git a/resources/views/includes/head.blade.php b/resources/views/includes/head.blade.php
new file mode 100644
index 0000000..d6d1280
--- /dev/null
+++ b/resources/views/includes/head.blade.php
@@ -0,0 +1,21 @@
+@php // Get colorscheme from cookie and apply immediately
+ $colorscheme = request()->cookie('colorscheme', 'catppuccin-macchiato');
+@endphp
+
+
+
+
+
+
+
+
+
+
+ {!! (intval(date('n')) == 12) ? '' : '' !!}
+
+
+ @yield('title') - diskfloppy.me
+
+
+
+
diff --git a/resources/views/includes/header.blade.php b/resources/views/includes/header.blade.php
new file mode 100644
index 0000000..fd80877
--- /dev/null
+++ b/resources/views/includes/header.blade.php
@@ -0,0 +1,17 @@
+
+ diskfloppy.me | @yield('title')
+
+
+
diff --git a/resources/views/layouts/default-admin.blade.php b/resources/views/layouts/default-admin.blade.php
new file mode 100644
index 0000000..5a16524
--- /dev/null
+++ b/resources/views/layouts/default-admin.blade.php
@@ -0,0 +1,23 @@
+
+
+
+ @include('includes.head')
+
+
+
+
+
+
+
+
+@yield('content')
+
+
+
+
+
+
diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php
new file mode 100644
index 0000000..0945b9c
--- /dev/null
+++ b/resources/views/layouts/default.blade.php
@@ -0,0 +1,20 @@
+
+
+
+ @include('includes.head')
+
+
+
+
+
+
+@yield('content')
+
+
+
+
+
diff --git a/resources/views/layouts/minimal.blade.php b/resources/views/layouts/minimal.blade.php
new file mode 100644
index 0000000..5cef094
--- /dev/null
+++ b/resources/views/layouts/minimal.blade.php
@@ -0,0 +1,11 @@
+
+
+
+ @yield('title')
+
+
+
+
+@yield('content')
+
+
diff --git a/resources/views/pages/admin/guestbook-del-confirm.blade.php b/resources/views/pages/admin/guestbook-del-confirm.blade.php
new file mode 100644
index 0000000..de920e0
--- /dev/null
+++ b/resources/views/pages/admin/guestbook-del-confirm.blade.php
@@ -0,0 +1,33 @@
+@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
+
+ Confirm Delete
+
+@stop
diff --git a/resources/views/pages/admin/guestbook.blade.php b/resources/views/pages/admin/guestbook.blade.php
new file mode 100644
index 0000000..85460cc
--- /dev/null
+++ b/resources/views/pages/admin/guestbook.blade.php
@@ -0,0 +1,32 @@
+@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
new file mode 100644
index 0000000..fd34313
--- /dev/null
+++ b/resources/views/pages/admin/index.blade.php
@@ -0,0 +1,9 @@
+@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
new file mode 100644
index 0000000..55cc801
--- /dev/null
+++ b/resources/views/pages/bookmarks.blade.php
@@ -0,0 +1,52 @@
+@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)
+
+
+
+ {{ $category->name }}
+
+
+
+ @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)
+
+ {{ $site->name }}
+ - {{ $site->description }}
+
+ @endforeach
+
+
+ @endforeach
+ @endif
+@stop
diff --git a/resources/views/pages/bot.blade.php b/resources/views/pages/bot.blade.php
new file mode 100644
index 0000000..b9475fc
--- /dev/null
+++ b/resources/views/pages/bot.blade.php
@@ -0,0 +1,7 @@
+@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
new file mode 100644
index 0000000..5d629ed
--- /dev/null
+++ b/resources/views/pages/calculators.blade.php
@@ -0,0 +1,110 @@
+@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
+
+
+ Size
+ 8.4cm x 16.2cm x 2.4cm
+
+
+ Weight (w/ battery)
+ 209g
+
+
+ Type
+ Scientific
+
+
+ CPU
+ Hitachi HD38111A
+
+
+ Registers
+ 2 standard 1 constant 4 bracket 1 memory
+
+
+ Features
+ %, +/-, RV, F, Sci, ab ⁄c , Sqr, x2 , pi, 1 ⁄x , trig, hyp, DMS-DD, log, yx , SD, nCr, P-R, n!
+
+
+ Display
+ 12-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
+
+
+ Size
+ 7.4cm x 13.5cm x 2.2cm
+
+
+ Weight (w/o battery)
+ 86
+
+
+ Type
+ Arithmetic
+
+
+ Logic
+ Algebraic
+
+
+ Power Source
+ PP3 9v
+
+
+ Display
+ 8-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
new file mode 100644
index 0000000..a7cec24
--- /dev/null
+++ b/resources/views/pages/computers.blade.php
@@ -0,0 +1,442 @@
+@extends('layouts.default')
+@section('title', 'Computers')
+@section('description', 'Computers I own or have owned.')
+@section('content')
+
+
+ PICTURES
+ SPECS & DESCRIPTION
+
+
+ 2023 MacBook Pro 14"
+
+ Quick Specs
+
+ Apple M3 Pro
+ 18GB RAM
+ 500GB SSD
+ macOS Sonoma
+
+ WHAT
+
+
+
+ 2018 MacBook Pro 13"
+
+ Quick Specs
+
+ Intel i5-8259U @ 2.3GHz
+ Intel Iris Plus Graphics 655
+ 8GB RAM
+ 250GB SSD
+ macOS Sonoma
+
+
+
+
+ 2012 Lenovo ThinkPad T430
+
+ Quick Specs
+
+ Intel Core i7
+ 16GB RAM
+ Windows 7 Professional
+
+
+
+
+ 2005 IBM ThinkPad X41T
+
+ Quick Specs
+
+ Intel Pentium M @ 1.6GHz
+ Mobile Intel Express Chipset Family (128MB)
+ 1.5GB RAM
+ 40GB HDD
+ Windows XP Tablet PC Edition
+
+
+
+
+ 1999 Dell OptiPlex GX1
+
+ Quick Specs
+
+ Intel Pentium II (Deschutes) @ 400MHz
+ ATI 3D Rage Pro (4MB)
+ 639MB
+ 40GB HDD
+ MS-DOS 6.22 & WFW 3.10
+
+
+
+
+ 2003 IBM ThinkPad T40
+
+ Quick Specs
+
+ Intel Pentium M @ 1.3GHz
+ ATI Mobility Radeon 7500 (32MB)
+ 1GB RAM
+ 30GB HDD
+ Windows 2000 Professional
+
+
+
+
+ 2010 HP Compaq Elite 8100
+
+ Quick Specs
+
+ Intel Core i7
+ 16GB RAM
+ some SSD and an HDD
+ Windows Vista Ultimate (64-bit)
+
+
+
+
+ 2014 Mac mini
+
+ Quick Specs
+
+ Intel Core i5-4278U @ 2.6GHz
+ Intel Iris Graphics
+ 8GB RAM
+ 1TB HDD
+ VMware ESXi 6.7.0u3
+
+
+
+
+ 1996 Fujitsu Milan
+
+ Quick Specs
+
+ Intel Pentium
+ 32MB RAM
+ 1215MB HDD
+ Windows 98 SE
+
+
+
+
+ 1999 Compaq Armada M300
+
+ Quick Specs
+
+
+
+
+
+
+@stop
diff --git a/resources/views/pages/guestbook.blade.php b/resources/views/pages/guestbook.blade.php
new file mode 100644
index 0000000..a2c39fb
--- /dev/null
+++ b/resources/views/pages/guestbook.blade.php
@@ -0,0 +1,102 @@
+@extends('layouts.default')
+@section('title', 'Guestbook')
+@section('content')
+ @php
+ use UAParser\Parser;
+ $parser = Parser::create();
+ $db_alive = true;
+ try {
+ DB::connection()->getPdo();
+ } catch (Exception $e) {
+ $db_alive = false;
+ }
+ @endphp
+ @if (!$db_alive)
+ @include('components.errors.db-error')
+ @else
+
+
+
+
+
+ @csrf
+
+
+
+
+
+ A few things to note:
+
+ You can submit an entry once every hour .
+ Your IP address is logged but not publicly displayed.
+ Any entries that appear to be spam will be removed.
+
+
+
+
+
+
+
+ @php
+ $entries = DB::select('
+ SELECT name, timestamp, message, agent
+ FROM guestbook__entries
+ ORDER BY id DESC
+ ');
+ @endphp
+ Entries ({{ count($entries) }} total)
+ @foreach ($entries as $entry)
+ @php
+ $user_agent = $parser->parse($entry->agent);
+ @endphp
+
+
+
+ Submitted by {{ $entry->name }}
+ on {{ gmdate('Y-m-d', $entry->timestamp) }}
+ at {{ gmdate('h:i:s A (e)', $entry->timestamp) }}
+
+ {{ $entry->message }}
+
+ @if($entry->agent === "Agent Unavailable")
+ Agent unavailable
+ @else
+ Posted using {{ $user_agent->ua->toString() }}
+ on {{ $user_agent->os->toString() }}
+ @endif
+
+
+
+
+ @endforeach
+ @endif
+@stop
diff --git a/resources/views/pages/home.blade.php b/resources/views/pages/home.blade.php
new file mode 100644
index 0000000..01831d6
--- /dev/null
+++ b/resources/views/pages/home.blade.php
@@ -0,0 +1,88 @@
+@extends('layouts.default')
+@section('title', 'Home')
+@section('description', 'This is the personal homepage of floppydisk.')
+@section('content')
+
+ Hi! This is my personal homepage on the W orld W ide W eb.
+
+
+
+ QuickFacts™
+
+
+
+ ◆ 18 y/o, he/him, British
+
+
+ ◆ Theatre Technician, "Web Developer" and NixOS User
+
+
+ ◆ 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
+
+
+
+
+
+
+ Interests
+
+
+
+ ◆ Tech Theatre
+ - Lighting, Stage Management, etc. (ControlBooth )
+
+
+ ◆ Programming
+ - HTML, CSS, JavaScript, C#, Java, PHP, Ruby, Python (GitHub )
+
+
+ ◆ Photography
+ - Flickr
+
+
+ ◆ Gaming
+ - Steam Profile
+
+
+
+
+
+
+ Things they never said
+
+
+
+
+ Oops! You need JavaScript enabled to view this content.
+
+
+
+
+
+@stop
diff --git a/resources/views/pages/music.blade.php b/resources/views/pages/music.blade.php
new file mode 100644
index 0000000..dba0750
--- /dev/null
+++ b/resources/views/pages/music.blade.php
@@ -0,0 +1,66 @@
+@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
+
+
+
+
+
+ Top {{ $cfg['toptracks'] }} Tracks (Last 7 days)
+
+
+
+ #
+ Track
+ Artist
+ Plays
+
+ @foreach ($top_tracks as $track)
+ @php $count++ @endphp
+ @if ($count >= $cfg['toptracks']+1)
+ @break
+ @endif
+
+ {{ $count }}
+ {{ $track->title }}
+ {{ $track->artist }}
+ {{ $track->playcount }}
+
+ @endforeach
+
+ @endif
+@stop
diff --git a/resources/views/pages/projects.blade.php b/resources/views/pages/projects.blade.php
new file mode 100644
index 0000000..aad454b
--- /dev/null
+++ b/resources/views/pages/projects.blade.php
@@ -0,0 +1,16 @@
+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
new file mode 100644
index 0000000..18fe585
--- /dev/null
+++ b/resources/views/pages/template.blade.php
@@ -0,0 +1,6 @@
+@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
new file mode 100644
index 0000000..a759534
--- /dev/null
+++ b/resources/views/pages/weather.blade.php
@@ -0,0 +1,61 @@
+@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
+
+
+ Local Weather
+
+
+
+ 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 }}%
+
+
+
+(Last Update: {{ $updated }})
+@endif
+@stop
diff --git a/robots.txt b/robots.txt
deleted file mode 100755
index 3909d3c..0000000
--- a/robots.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# robots.txt for http://www.codenet.ru
-User-Agent: *
-Disallow: /oreilly/java/langref/index/index/
diff --git a/routes/api.php b/routes/api.php
new file mode 100644
index 0000000..fa84410
--- /dev/null
+++ b/routes/api.php
@@ -0,0 +1,15 @@
+name('guestbook');
+
+Route::post('/guestbook', 'App\Http\Controllers\GuestbookController@guestbookpost')
+ ->name('guestbookPost')
+ ->middleware('rate_limit');
+
+Route::get('/weather', function () {
+ return View::make('pages.weather');
+});
+
+Route::get('/music', function () {
+ return View::make('pages.music');
+});
+
+Route::get('/bot', function () {
+ return View::make('pages.bot');
+});
+
+/* ------------------------------ Admin Routes ------------------------------ */
+
+//Route::get('/admin', function () {
+// if (!auth()->check()) {
+// return View::make('errors.no-auth');
+// }
+// return View::make('pages.admin.index');
+//});
+//
+//Route::get('/admin/guestbook', function () {
+// if (!auth()->check()) {
+// return View::make('errors.no-auth');
+// }
+// return View::make('pages.admin.guestbook');
+//});
+//
+//Route::get('/admin/guestbook/delete', function () {
+// if (!auth()->check()) {
+// return View::make('errors.no-auth');
+// }
+//
+// $id = request()->input('id');
+// $entry = DB::table('guestbook__entries')->find($id);
+//
+// if ($entry) {
+// // Render a confirmation view
+// return View::make('pages.admin.guestbook-del-confirm', compact('entry'));
+// } else {
+// return View::make('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::make('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.sh b/scripts/updatecache.sh
new file mode 100755
index 0000000..53dad65
--- /dev/null
+++ b/scripts/updatecache.sh
@@ -0,0 +1,4 @@
+php artisan config:cache
+php artisan route:cache
+php artisan view:cache
+php artisan event:cache
diff --git a/storage/app/.gitignore b/storage/app/.gitignore
new file mode 100644
index 0000000..8f4803c
--- /dev/null
+++ b/storage/app/.gitignore
@@ -0,0 +1,3 @@
+*
+!public/
+!.gitignore
diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/storage/app/public/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore
new file mode 100644
index 0000000..05c4471
--- /dev/null
+++ b/storage/framework/.gitignore
@@ -0,0 +1,9 @@
+compiled.php
+config.php
+down
+events.scanned.php
+maintenance.php
+routes.php
+routes.scanned.php
+schedule-*
+services.json
diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore
new file mode 100644
index 0000000..01e4a6c
--- /dev/null
+++ b/storage/framework/cache/.gitignore
@@ -0,0 +1,3 @@
+*
+!data/
+!.gitignore
diff --git a/storage/framework/cache/data/.gitignore b/storage/framework/cache/data/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/storage/framework/cache/data/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/storage/framework/sessions/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/storage/framework/testing/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/storage/framework/views/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/storage/logs/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/tests/CreatesApplication.php b/tests/CreatesApplication.php
new file mode 100644
index 0000000..cc68301
--- /dev/null
+++ b/tests/CreatesApplication.php
@@ -0,0 +1,21 @@
+make(Kernel::class)->bootstrap();
+
+ return $app;
+ }
+}
diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php
new file mode 100644
index 0000000..8364a84
--- /dev/null
+++ b/tests/Feature/ExampleTest.php
@@ -0,0 +1,19 @@
+get('/');
+
+ $response->assertStatus(200);
+ }
+}
diff --git a/tests/TestCase.php b/tests/TestCase.php
new file mode 100644
index 0000000..2932d4a
--- /dev/null
+++ b/tests/TestCase.php
@@ -0,0 +1,10 @@
+assertTrue(true);
+ }
+}
diff --git a/vite.config.js b/vite.config.js
new file mode 100644
index 0000000..421b569
--- /dev/null
+++ b/vite.config.js
@@ -0,0 +1,11 @@
+import { defineConfig } from 'vite';
+import laravel from 'laravel-vite-plugin';
+
+export default defineConfig({
+ plugins: [
+ laravel({
+ input: ['resources/css/app.css', 'resources/js/app.js'],
+ refresh: true,
+ }),
+ ],
+});