diff --git a/.idea/develop.iml b/.idea/develop.iml
index d5243986813..550267486ca 100644
--- a/.idea/develop.iml
+++ b/.idea/develop.iml
@@ -56,6 +56,13 @@
+
+
+
+
+
+
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index f832763ba9c..7d493c3d6cc 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -81,6 +81,8 @@
+
+
@@ -160,5 +162,7 @@
+
+
\ No newline at end of file
diff --git a/.idea/php.xml b/.idea/php.xml
index 2316b07ff5a..22fd55dc899 100644
--- a/.idea/php.xml
+++ b/.idea/php.xml
@@ -135,8 +135,6 @@
-
-
@@ -188,6 +186,13 @@
+
+
+
+
+
+
+
diff --git a/.idea/phpspec.xml b/.idea/phpspec.xml
index 41f23c4c83d..c5034e93f2a 100644
--- a/.idea/phpspec.xml
+++ b/.idea/phpspec.xml
@@ -14,6 +14,9 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/phpunit.xml b/.idea/phpunit.xml
index 1aef5dbe234..c900718cad8 100644
--- a/.idea/phpunit.xml
+++ b/.idea/phpunit.xml
@@ -8,8 +8,8 @@
-
+
diff --git a/composer.json b/composer.json
index fdcd56c5487..2716d0b496a 100644
--- a/composer.json
+++ b/composer.json
@@ -32,9 +32,14 @@
"pestphp/pest-plugin-type-coverage": "^2.8",
"php-parallel-lint/php-parallel-lint": "^1.3",
"phpstan/phpstan": "^1.8",
+ "psalm/plugin-laravel": "^2.11",
"rector/rector": "^1.2.1",
"squizlabs/php_codesniffer": "^3.7"
},
+ "replace": {
+ "symfony/polyfill-php72": "*",
+ "symfony/polyfill-php80": "*"
+ },
"conflict": {
"symfony/string": ">=7.0"
},
diff --git a/composer.lock b/composer.lock
index b568753158d..dd2d6192165 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "456a940034f98973b71cc83c67ff3563",
+ "content-hash": "dd20ed0dc33c413deadf7b4543376db1",
"packages": [
{
"name": "brick/math",
@@ -68,26 +68,26 @@
},
{
"name": "carbonphp/carbon-doctrine-types",
- "version": "3.2.0",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
- "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
+ "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
- "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
+ "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
"shasum": ""
},
"require": {
- "php": "^8.1"
+ "php": "^7.4 || ^8.0"
},
"conflict": {
- "doctrine/dbal": "<4.0.0 || >=5.0.0"
+ "doctrine/dbal": "<3.7.0 || >=4.0.0"
},
"require-dev": {
- "doctrine/dbal": "^4.0.0",
+ "doctrine/dbal": "^3.7.0",
"nesbot/carbon": "^2.71.0 || ^3.0.0",
"phpunit/phpunit": "^10.3"
},
@@ -117,7 +117,7 @@
],
"support": {
"issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
- "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0"
},
"funding": [
{
@@ -133,7 +133,7 @@
"type": "tidelift"
}
],
- "time": "2024-02-09T16:56:22+00:00"
+ "time": "2023-12-11T17:09:12+00:00"
},
{
"name": "dflydev/dot-access-data",
@@ -1123,11 +1123,11 @@
},
{
"name": "hyde/framework",
- "version": "dev-main",
+ "version": "dev-master",
"dist": {
"type": "path",
"url": "./packages/framework",
- "reference": "784479be93b9882e4416fcec249de2e839f72df4"
+ "reference": "4512c1ec8a45b9ab81ab3f97efb1c1184e91ced6"
},
"require": {
"illuminate/support": "^10.0",
@@ -1173,7 +1173,7 @@
},
{
"name": "hyde/publications",
- "version": "dev-main",
+ "version": "dev-increase-type-coverage",
"dist": {
"type": "path",
"url": "./packages/publications",
@@ -1220,7 +1220,7 @@
},
{
"name": "hyde/ui-kit",
- "version": "dev-main",
+ "version": "dev-increase-type-coverage",
"dist": {
"type": "path",
"url": "./packages/ui-kit",
@@ -5616,159 +5616,6 @@
],
"time": "2024-06-19T12:30:46+00:00"
},
- {
- "name": "symfony/polyfill-php72",
- "version": "v1.30.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "10112722600777e02d2745716b70c5db4ca70442"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/10112722600777e02d2745716b70c5db4ca70442",
- "reference": "10112722600777e02d2745716b70c5db4ca70442",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "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.30.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-06-19T12:30:46+00:00"
- },
- {
- "name": "symfony/polyfill-php80",
- "version": "v1.30.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433",
- "reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-31T15:07:36+00:00"
- },
{
"name": "symfony/polyfill-php83",
"version": "v1.30.0",
@@ -6903,6 +6750,152 @@
],
"time": "2024-04-13T18:00:56+00:00"
},
+ {
+ "name": "barryvdh/laravel-ide-helper",
+ "version": "v3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/barryvdh/laravel-ide-helper.git",
+ "reference": "591e7d665fbab8a3b682e451641706341573eb80"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/591e7d665fbab8a3b682e451641706341573eb80",
+ "reference": "591e7d665fbab8a3b682e451641706341573eb80",
+ "shasum": ""
+ },
+ "require": {
+ "barryvdh/reflection-docblock": "^2.1.1",
+ "composer/class-map-generator": "^1.0",
+ "ext-json": "*",
+ "illuminate/console": "^10 || ^11",
+ "illuminate/database": "^10.38 || ^11",
+ "illuminate/filesystem": "^10 || ^11",
+ "illuminate/support": "^10 || ^11",
+ "nikic/php-parser": "^4.18 || ^5",
+ "php": "^8.1",
+ "phpdocumentor/type-resolver": "^1.1.0"
+ },
+ "require-dev": {
+ "ext-pdo_sqlite": "*",
+ "friendsofphp/php-cs-fixer": "^3",
+ "illuminate/config": "^9 || ^10 || ^11",
+ "illuminate/view": "^9 || ^10 || ^11",
+ "mockery/mockery": "^1.4",
+ "orchestra/testbench": "^8 || ^9",
+ "phpunit/phpunit": "^10.5",
+ "spatie/phpunit-snapshot-assertions": "^4 || ^5",
+ "vimeo/psalm": "^5.4"
+ },
+ "suggest": {
+ "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10|^11)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Barryvdh\\LaravelIdeHelper\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Barry vd. Heuvel",
+ "email": "barryvdh@gmail.com"
+ }
+ ],
+ "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.",
+ "keywords": [
+ "autocomplete",
+ "codeintel",
+ "helper",
+ "ide",
+ "laravel",
+ "netbeans",
+ "phpdoc",
+ "phpstorm",
+ "sublime"
+ ],
+ "support": {
+ "issues": "https://github.com/barryvdh/laravel-ide-helper/issues",
+ "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://fruitcake.nl",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/barryvdh",
+ "type": "github"
+ }
+ ],
+ "time": "2024-07-12T14:20:51+00:00"
+ },
+ {
+ "name": "barryvdh/reflection-docblock",
+ "version": "v2.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/barryvdh/ReflectionDocBlock.git",
+ "reference": "e6811e927f0ecc37cc4deaa6627033150343e597"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/e6811e927f0ecc37cc4deaa6627033150343e597",
+ "reference": "e6811e927f0ecc37cc4deaa6627033150343e597",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.14|^9"
+ },
+ "suggest": {
+ "dflydev/markdown": "~1.0",
+ "erusev/parsedown": "~1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Barryvdh": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "mike.vanriel@naenius.com"
+ }
+ ],
+ "support": {
+ "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.1"
+ },
+ "time": "2023-06-14T05:06:27+00:00"
+ },
{
"name": "brianium/paratest",
"version": "v7.3.1",
@@ -6999,36 +6992,109 @@
"time": "2023-10-31T09:24:17+00:00"
},
{
- "name": "composer/package-versions-deprecated",
- "version": "1.11.99.5",
+ "name": "composer/class-map-generator",
+ "version": "1.3.4",
"source": {
"type": "git",
- "url": "https://github.com/composer/package-versions-deprecated.git",
- "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d"
+ "url": "https://github.com/composer/class-map-generator.git",
+ "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d",
- "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d",
+ "url": "https://api.github.com/repos/composer/class-map-generator/zipball/b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3",
+ "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3",
"shasum": ""
},
"require": {
- "composer-plugin-api": "^1.1.0 || ^2.0",
- "php": "^7 || ^8"
- },
- "replace": {
- "ocramius/package-versions": "1.11.99"
+ "composer/pcre": "^2.1 || ^3.1",
+ "php": "^7.2 || ^8.0",
+ "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7"
},
"require-dev": {
- "composer/composer": "^1.9.3 || ^2.0@dev",
- "ext-zip": "^1.13",
- "phpunit/phpunit": "^6.5 || ^7"
+ "phpstan/phpstan": "^1.6",
+ "phpstan/phpstan-deprecation-rules": "^1",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "symfony/filesystem": "^5.4 || ^6",
+ "symfony/phpunit-bridge": "^5"
},
- "type": "composer-plugin",
+ "type": "library",
"extra": {
- "class": "PackageVersions\\Installer",
"branch-alias": {
- "dev-master": "1.x-dev"
+ "dev-main": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\ClassMapGenerator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "Utilities to scan PHP code and generate class maps.",
+ "keywords": [
+ "classmap"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/class-map-generator/issues",
+ "source": "https://github.com/composer/class-map-generator/tree/1.3.4"
+ },
+ "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": "2024-06-12T14:13:04+00:00"
+ },
+ {
+ "name": "composer/package-versions-deprecated",
+ "version": "1.11.99.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/package-versions-deprecated.git",
+ "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d",
+ "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.1.0 || ^2.0",
+ "php": "^7 || ^8"
+ },
+ "replace": {
+ "ocramius/package-versions": "1.11.99"
+ },
+ "require-dev": {
+ "composer/composer": "^1.9.3 || ^2.0@dev",
+ "ext-zip": "^1.13",
+ "phpunit/phpunit": "^6.5 || ^7"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "PackageVersions\\Installer",
+ "branch-alias": {
+ "dev-master": "1.x-dev"
}
},
"autoload": {
@@ -7832,7 +7898,7 @@
},
{
"name": "hyde/monorepo-dev-tools",
- "version": "dev-main",
+ "version": "dev-increase-type-coverage",
"dist": {
"type": "path",
"url": "./monorepo/DevTools",
@@ -7858,11 +7924,11 @@
},
{
"name": "hyde/realtime-compiler",
- "version": "dev-main",
+ "version": "dev-master",
"dist": {
"type": "path",
"url": "./packages/realtime-compiler",
- "reference": "6a68a736b9cb318aaaa6ee9c82ea508b0d45a985"
+ "reference": "8dede06db83f19a82dd542ca52504a8f2327acfa"
},
"require": {
"desilva/microserve": "^2.0",
@@ -7914,7 +7980,7 @@
},
{
"name": "hyde/testing",
- "version": "dev-main",
+ "version": "dev-increase-type-coverage",
"dist": {
"type": "path",
"url": "./packages/testing",
@@ -7963,6 +8029,143 @@
"relative": true
}
},
+ {
+ "name": "illuminate/database",
+ "version": "v10.48.16",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/illuminate/database.git",
+ "reference": "ec00738a49e9fb0db4fc19b5d70310e214b32bff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/illuminate/database/zipball/ec00738a49e9fb0db4fc19b5d70310e214b32bff",
+ "reference": "ec00738a49e9fb0db4fc19b5d70310e214b32bff",
+ "shasum": ""
+ },
+ "require": {
+ "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12",
+ "ext-pdo": "*",
+ "illuminate/collections": "^10.0",
+ "illuminate/container": "^10.0",
+ "illuminate/contracts": "^10.0",
+ "illuminate/macroable": "^10.0",
+ "illuminate/support": "^10.0",
+ "php": "^8.1"
+ },
+ "conflict": {
+ "carbonphp/carbon-doctrine-types": ">=3.0",
+ "doctrine/dbal": ">=4.0"
+ },
+ "suggest": {
+ "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).",
+ "ext-filter": "Required to use the Postgres database driver.",
+ "fakerphp/faker": "Required to use the eloquent factory builder (^1.21).",
+ "illuminate/console": "Required to use the database commands (^10.0).",
+ "illuminate/events": "Required to use the observers with Eloquent (^10.0).",
+ "illuminate/filesystem": "Required to use the migrations (^10.0).",
+ "illuminate/pagination": "Required to paginate the result set (^10.0).",
+ "symfony/finder": "Required to use Eloquent model factories (^6.2)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "10.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Illuminate\\Database\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Illuminate Database package.",
+ "homepage": "https://laravel.com",
+ "keywords": [
+ "database",
+ "laravel",
+ "orm",
+ "sql"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2024-07-03T21:35:00+00:00"
+ },
+ {
+ "name": "illuminate/routing",
+ "version": "v10.48.16",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/illuminate/routing.git",
+ "reference": "db74937fd10c0b2cbbe095a34f9c73e6f19c3d16"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/illuminate/routing/zipball/db74937fd10c0b2cbbe095a34f9c73e6f19c3d16",
+ "reference": "db74937fd10c0b2cbbe095a34f9c73e6f19c3d16",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "ext-hash": "*",
+ "illuminate/collections": "^10.0",
+ "illuminate/container": "^10.0",
+ "illuminate/contracts": "^10.0",
+ "illuminate/http": "^10.0",
+ "illuminate/macroable": "^10.0",
+ "illuminate/pipeline": "^10.0",
+ "illuminate/session": "^10.0",
+ "illuminate/support": "^10.0",
+ "php": "^8.1",
+ "symfony/http-foundation": "^6.4",
+ "symfony/http-kernel": "^6.2",
+ "symfony/routing": "^6.2"
+ },
+ "suggest": {
+ "illuminate/console": "Required to use the make commands (^10.0).",
+ "nyholm/psr7": "Required to use PSR-7 bridging features (^1.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": {
+ "psr-4": {
+ "Illuminate\\Routing\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Illuminate Routing package.",
+ "homepage": "https://laravel.com",
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2024-05-27T13:41:52+00:00"
+ },
{
"name": "jean85/pretty-package-versions",
"version": "2.0.6",
@@ -8456,6 +8659,98 @@
},
"time": "2024-03-17T08:10:35+00:00"
},
+ {
+ "name": "orchestra/testbench-core",
+ "version": "v8.25.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/orchestral/testbench-core.git",
+ "reference": "17cbaf568fe6c84039295b3de09a1b049339d928"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/17cbaf568fe6c84039295b3de09a1b049339d928",
+ "reference": "17cbaf568fe6c84039295b3de09a1b049339d928",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.2",
+ "php": "^8.1",
+ "symfony/polyfill-php83": "^1.28"
+ },
+ "conflict": {
+ "brianium/paratest": "<6.4.0 || >=7.0.0 <7.1.4 || >=8.0.0",
+ "laravel/framework": "<10.48.2 || >=11.0.0",
+ "nunomaduro/collision": "<6.4.0 || >=7.0.0 <7.4.0 || >=8.0.0",
+ "orchestra/testbench-dusk": "<8.21.0 || >=9.0.0",
+ "orchestra/workbench": "<1.0.0",
+ "phpunit/phpunit": "<9.6.0 || >=10.6.0"
+ },
+ "require-dev": {
+ "fakerphp/faker": "^1.21",
+ "laravel/framework": "^10.48.2",
+ "laravel/pint": "^1.6",
+ "mockery/mockery": "^1.5.1",
+ "phpstan/phpstan": "^1.11",
+ "phpunit/phpunit": "^10.1",
+ "spatie/laravel-ray": "^1.32.4",
+ "symfony/process": "^6.2",
+ "symfony/yaml": "^6.2",
+ "vlucas/phpdotenv": "^5.4.1"
+ },
+ "suggest": {
+ "brianium/paratest": "Allow using parallel testing (^6.4 || ^7.1.4).",
+ "ext-pcntl": "Required to use all features of the console signal trapping.",
+ "fakerphp/faker": "Allow using Faker for testing (^1.21).",
+ "laravel/framework": "Required for testing (^10.48.2).",
+ "mockery/mockery": "Allow using Mockery for testing (^1.5.1).",
+ "nunomaduro/collision": "Allow using Laravel style tests output and parallel testing (^6.4 || ^7.4).",
+ "orchestra/testbench-browser-kit": "Allow using legacy Laravel BrowserKit for testing (^8.0).",
+ "orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^8.0).",
+ "phpunit/phpunit": "Allow using PHPUnit for testing (^9.6 || ^10.1).",
+ "symfony/process": "Required to use Orchestra\\Testbench\\remote function (^6.2).",
+ "symfony/yaml": "Required for Testbench CLI (^6.2).",
+ "vlucas/phpdotenv": "Required for Testbench CLI (^5.4.1)."
+ },
+ "bin": [
+ "testbench"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Orchestra\\Testbench\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mior Muhammad Zaki",
+ "email": "crynobone@gmail.com",
+ "homepage": "https://github.com/crynobone"
+ }
+ ],
+ "description": "Testing Helper for Laravel Development",
+ "homepage": "https://packages.tools/testbench",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "dev",
+ "laravel",
+ "laravel-packages",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/orchestral/testbench/issues",
+ "source": "https://github.com/orchestral/testbench-core"
+ },
+ "time": "2024-07-13T06:54:00+00:00"
+ },
{
"name": "pestphp/pest",
"version": "v2.34.9",
@@ -9725,6 +10020,78 @@
],
"time": "2024-04-05T04:39:01+00:00"
},
+ {
+ "name": "psalm/plugin-laravel",
+ "version": "v2.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/psalm/psalm-plugin-laravel.git",
+ "reference": "ffd51399b672959331ed3ef4eaae13984474e2f0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/psalm/psalm-plugin-laravel/zipball/ffd51399b672959331ed3ef4eaae13984474e2f0",
+ "reference": "ffd51399b672959331ed3ef4eaae13984474e2f0",
+ "shasum": ""
+ },
+ "require": {
+ "barryvdh/laravel-ide-helper": "^2.13 || ^3.0",
+ "ext-simplexml": "*",
+ "illuminate/config": "^10.48 || ^11.0",
+ "illuminate/container": "^10.48 || ^11.0",
+ "illuminate/contracts": "^10.48 || ^11.0",
+ "illuminate/database": "^10.48 || ^11.0",
+ "illuminate/events": "^10.48 || ^11.0",
+ "illuminate/http": "^10.48 || ^11.0",
+ "illuminate/routing": "^10.48 || ^11.0",
+ "illuminate/support": "^10.48 || ^11.0",
+ "illuminate/view": "^10.48 || ^11.0",
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "orchestra/testbench-core": "^8.22 || ^9.0",
+ "php": "^8.1",
+ "symfony/console": "^6.0 || ^7.0",
+ "symfony/finder": "^6.0 || ^7.0",
+ "vimeo/psalm": "^5.20"
+ },
+ "require-dev": {
+ "laravel/framework": "^10.48 || ^11.0",
+ "phpunit/phpunit": "^10.5 || ^11.0",
+ "phpyh/psalm-tester": "^0.1.0",
+ "ramsey/collection": "^1.3",
+ "rector/rector": "^1.0",
+ "slevomat/coding-standard": "^8.8",
+ "squizlabs/php_codesniffer": "*",
+ "symfony/http-foundation": "^6.0 || ^7.0"
+ },
+ "type": "psalm-plugin",
+ "extra": {
+ "psalm": {
+ "pluginClass": "Psalm\\LaravelPlugin\\Plugin"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psalm\\LaravelPlugin\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matthew Brown",
+ "email": "github@muglug.com"
+ }
+ ],
+ "description": "Psalm plugin for Laravel",
+ "homepage": "https://github.com/psalm/psalm-plugin-laravel",
+ "support": {
+ "issues": "https://github.com/psalm/psalm-plugin-laravel/issues",
+ "source": "https://github.com/psalm/psalm-plugin-laravel/tree/v2.11.0"
+ },
+ "time": "2024-03-19T21:40:03+00:00"
+ },
{
"name": "psy/psysh",
"version": "v0.12.4",
@@ -10989,6 +11356,89 @@
],
"time": "2024-06-28T09:49:33+00:00"
},
+ {
+ "name": "symfony/routing",
+ "version": "v6.4.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58",
+ "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58",
+ "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.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:49:08+00:00"
+ },
{
"name": "ta-tikoma/phpunit-architecture-test",
"version": "0.8.4",
@@ -11154,6 +11604,116 @@
}
],
"time": "2024-04-26T13:56:40+00:00"
+ },
+ {
+ "name": "vimeo/psalm",
+ "version": "5.25.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vimeo/psalm.git",
+ "reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vimeo/psalm/zipball/01a8eb06b9e9cc6cfb6a320bf9fb14331919d505",
+ "reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505",
+ "shasum": ""
+ },
+ "require": {
+ "amphp/amp": "^2.4.2",
+ "amphp/byte-stream": "^1.5",
+ "composer-runtime-api": "^2",
+ "composer/semver": "^1.4 || ^2.0 || ^3.0",
+ "composer/xdebug-handler": "^2.0 || ^3.0",
+ "dnoegel/php-xdg-base-dir": "^0.1.1",
+ "ext-ctype": "*",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-simplexml": "*",
+ "ext-tokenizer": "*",
+ "felixfbecker/advanced-json-rpc": "^3.1",
+ "felixfbecker/language-server-protocol": "^1.5.2",
+ "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0",
+ "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
+ "nikic/php-parser": "^4.16",
+ "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
+ "sebastian/diff": "^4.0 || ^5.0 || ^6.0",
+ "spatie/array-to-xml": "^2.17.0 || ^3.0",
+ "symfony/console": "^4.1.6 || ^5.0 || ^6.0 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7.0"
+ },
+ "conflict": {
+ "nikic/php-parser": "4.17.0"
+ },
+ "provide": {
+ "psalm/psalm": "self.version"
+ },
+ "require-dev": {
+ "amphp/phpunit-util": "^2.0",
+ "bamarni/composer-bin-plugin": "^1.4",
+ "brianium/paratest": "^6.9",
+ "ext-curl": "*",
+ "mockery/mockery": "^1.5",
+ "nunomaduro/mock-final-classes": "^1.1",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpdoc-parser": "^1.6",
+ "phpunit/phpunit": "^9.6",
+ "psalm/plugin-mockery": "^1.1",
+ "psalm/plugin-phpunit": "^0.18",
+ "slevomat/coding-standard": "^8.4",
+ "squizlabs/php_codesniffer": "^3.6",
+ "symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "suggest": {
+ "ext-curl": "In order to send data to shepherd",
+ "ext-igbinary": "^2.0.5 is required, used to serialize caching data"
+ },
+ "bin": [
+ "psalm",
+ "psalm-language-server",
+ "psalm-plugin",
+ "psalm-refactor",
+ "psalter"
+ ],
+ "type": "project",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev",
+ "dev-4.x": "4.x-dev",
+ "dev-3.x": "3.x-dev",
+ "dev-2.x": "2.x-dev",
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psalm\\": "src/Psalm/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matthew Brown"
+ }
+ ],
+ "description": "A static analysis tool for finding errors in PHP applications",
+ "keywords": [
+ "code",
+ "inspection",
+ "php",
+ "static analysis"
+ ],
+ "support": {
+ "docs": "https://psalm.dev/docs",
+ "issues": "https://github.com/vimeo/psalm/issues",
+ "source": "https://github.com/vimeo/psalm"
+ },
+ "time": "2024-06-16T15:08:35+00:00"
}
],
"aliases": [],
diff --git a/docs/_data/partials/hyde-pages-api/hyde-kernel-foundation-methods.md b/docs/_data/partials/hyde-pages-api/hyde-kernel-foundation-methods.md
index b328574b419..9085ef46086 100644
--- a/docs/_data/partials/hyde-pages-api/hyde-kernel-foundation-methods.md
+++ b/docs/_data/partials/hyde-pages-api/hyde-kernel-foundation-methods.md
@@ -1,14 +1,14 @@
-
+
#### `files()`
No description provided.
```php
-Hyde::files(): \Hyde\Foundation\Kernel\FileCollection
+Hyde::files(): Hyde\Foundation\Kernel\FileCollection
```
#### `pages()`
@@ -16,7 +16,7 @@ Hyde::files(): \Hyde\Foundation\Kernel\FileCollection
+Hyde::pages(): Hyde\Foundation\Kernel\PageCollection
```
#### `routes()`
@@ -24,7 +24,7 @@ Hyde::pages(): \Hyde\Foundation\Kernel\PageCollection
+Hyde::routes(): Hyde\Foundation\Kernel\RouteCollection
```
diff --git a/monorepo/stubs/Application.php b/monorepo/stubs/Application.php
new file mode 100644
index 00000000000..aeb29f35484
--- /dev/null
+++ b/monorepo/stubs/Application.php
@@ -0,0 +1,16 @@
+ $abstract
+ * @return T
+ */
+ public function make(string $abstract)
+ {
+ }
+}
diff --git a/monorepo/stubs/helpers.php b/monorepo/stubs/helpers.php
new file mode 100644
index 00000000000..821a819bebd
--- /dev/null
+++ b/monorepo/stubs/helpers.php
@@ -0,0 +1,50 @@
+ $abstract
+ * @return T
+ */
+function app(string $abstract)
+{
+}
+
+/**
+ * @template T
+ *
+ * @param T $value
+ * @param (callable(T): mixed)|null $callback
+ * @return ($callback is null ? HigherOrderTapProxy : T)
+ *
+ * @psalm-assert-if-true !null $callback
+ *
+ * @psalm-suppress ImplicitToStringCast
+ */
+function tap($value, $callback = null)
+{
+}
+
+/**
+ * @template T
+ */
+class HigherOrderTapProxy
+{
+ /**
+ * @param T $target
+ */
+ public function __construct($target)
+ {
+ }
+
+ /**
+ * @param string $method
+ * @param array $parameters
+ * @return T
+ *
+ * @psalm-suppress MixedInferredReturnType, MixedReturnStatement
+ */
+ public function __call($method, $parameters)
+ {
+ }
+}
diff --git a/packages/framework/src/Foundation/Concerns/BaseFoundationCollection.php b/packages/framework/src/Foundation/Concerns/BaseFoundationCollection.php
index c11dbe9c431..0b97b626d19 100644
--- a/packages/framework/src/Foundation/Concerns/BaseFoundationCollection.php
+++ b/packages/framework/src/Foundation/Concerns/BaseFoundationCollection.php
@@ -13,6 +13,11 @@
/**
* Base class for the kernel auto-discovery collections.
*
+ * @template TKey of array-key
+ * @template TValue
+ *
+ * @extends \Illuminate\Support\Collection
+ *
* These collections are the heart of the discovery process.
*
* They are responsible for discovering the files, pages, and routes,
diff --git a/packages/framework/src/Foundation/Concerns/HandlesFoundationCollections.php b/packages/framework/src/Foundation/Concerns/HandlesFoundationCollections.php
index 3192ee0ced9..58b137ed02a 100644
--- a/packages/framework/src/Foundation/Concerns/HandlesFoundationCollections.php
+++ b/packages/framework/src/Foundation/Concerns/HandlesFoundationCollections.php
@@ -15,7 +15,6 @@
*/
trait HandlesFoundationCollections
{
- /** @return \Hyde\Foundation\Kernel\FileCollection */
public function files(): FileCollection
{
$this->needsToBeBooted();
@@ -23,7 +22,6 @@ public function files(): FileCollection
return $this->files;
}
- /** @return \Hyde\Foundation\Kernel\PageCollection */
public function pages(): PageCollection
{
$this->needsToBeBooted();
@@ -31,7 +29,6 @@ public function pages(): PageCollection
return $this->pages;
}
- /** @return \Hyde\Foundation\Kernel\RouteCollection */
public function routes(): RouteCollection
{
$this->needsToBeBooted();
diff --git a/packages/framework/src/Foundation/Facades/Files.php b/packages/framework/src/Foundation/Facades/Files.php
index 79d2acdc005..65e78467e9f 100644
--- a/packages/framework/src/Foundation/Facades/Files.php
+++ b/packages/framework/src/Foundation/Facades/Files.php
@@ -13,7 +13,6 @@
*/
class Files extends Facade
{
- /** @return \Hyde\Foundation\Kernel\FileCollection */
public static function getFacadeRoot(): FileCollection
{
return HydeKernel::getInstance()->files();
diff --git a/packages/framework/src/Foundation/Facades/Pages.php b/packages/framework/src/Foundation/Facades/Pages.php
index a06577b799c..42b37c664c4 100644
--- a/packages/framework/src/Foundation/Facades/Pages.php
+++ b/packages/framework/src/Foundation/Facades/Pages.php
@@ -13,7 +13,6 @@
*/
class Pages extends Facade
{
- /** @return \Hyde\Foundation\Kernel\PageCollection */
public static function getFacadeRoot(): PageCollection
{
return HydeKernel::getInstance()->pages();
diff --git a/packages/framework/src/Foundation/Facades/Routes.php b/packages/framework/src/Foundation/Facades/Routes.php
index 1a211480f2e..f82acc2695e 100644
--- a/packages/framework/src/Foundation/Facades/Routes.php
+++ b/packages/framework/src/Foundation/Facades/Routes.php
@@ -19,7 +19,6 @@
*/
class Routes extends Facade
{
- /** @return \Hyde\Foundation\Kernel\RouteCollection */
public static function getFacadeRoot(): RouteCollection
{
return HydeKernel::getInstance()->routes();
@@ -41,7 +40,6 @@ public static function getOrFail(string $routeKey): Route
return static::getFacadeRoot()->getRoute($routeKey);
}
- /** @return \Hyde\Foundation\Kernel\RouteCollection<\Hyde\Support\Models\Route> */
public static function all(): RouteCollection
{
return static::getFacadeRoot()->getRoutes();
diff --git a/packages/framework/src/Foundation/Internal/LoadYamlConfiguration.php b/packages/framework/src/Foundation/Internal/LoadYamlConfiguration.php
index d5d75accb3c..aae50195185 100644
--- a/packages/framework/src/Foundation/Internal/LoadYamlConfiguration.php
+++ b/packages/framework/src/Foundation/Internal/LoadYamlConfiguration.php
@@ -26,6 +26,8 @@
class LoadYamlConfiguration
{
protected YamlConfigurationRepository $yaml;
+
+ /** @var array> */
protected array $config;
public function bootstrap(Application $app): void
@@ -33,7 +35,10 @@ public function bootstrap(Application $app): void
$this->yaml = $app->make(YamlConfigurationRepository::class);
if ($this->yaml->hasYamlConfigFile()) {
- tap($app->make('config'), function (Repository $config): void {
+ /** @var Repository $config */
+ $config = $app->make('config');
+
+ tap($config, function (Repository $config): void {
$this->config = $config->all();
$this->mergeParsedConfiguration();
})->set($this->config);
diff --git a/packages/framework/src/Foundation/Kernel/FileCollection.php b/packages/framework/src/Foundation/Kernel/FileCollection.php
index 063d04b05d6..9013be74f77 100644
--- a/packages/framework/src/Foundation/Kernel/FileCollection.php
+++ b/packages/framework/src/Foundation/Kernel/FileCollection.php
@@ -18,7 +18,7 @@
*
* @template T of \Hyde\Support\Filesystem\SourceFile
*
- * @template-extends \Hyde\Foundation\Concerns\BaseFoundationCollection
+ * @extends \Hyde\Foundation\Concerns\BaseFoundationCollection
*
* @property array $items The files in the collection.
*
@@ -71,10 +71,7 @@ public function getFile(string $path): SourceFile
return $this->get($path) ?? throw new FileNotFoundException($path);
}
- /**
- * @param class-string<\Hyde\Pages\Concerns\HydePage>|null $pageClass
- * @return \Hyde\Foundation\Kernel\FileCollection
- */
+ /** @param class-string<\Hyde\Pages\Concerns\HydePage>|null $pageClass */
public function getFiles(?string $pageClass = null): FileCollection
{
return $pageClass ? $this->filter(function (SourceFile $file) use ($pageClass): bool {
diff --git a/packages/framework/src/Foundation/Kernel/PageCollection.php b/packages/framework/src/Foundation/Kernel/PageCollection.php
index 4739a17743b..4cc4d85eac2 100644
--- a/packages/framework/src/Foundation/Kernel/PageCollection.php
+++ b/packages/framework/src/Foundation/Kernel/PageCollection.php
@@ -14,7 +14,7 @@
*
* @template T of \Hyde\Pages\Concerns\HydePage
*
- * @template-extends \Hyde\Foundation\Concerns\BaseFoundationCollection
+ * @extends \Hyde\Foundation\Concerns\BaseFoundationCollection
*
* @property array $items The pages in the collection.
*
@@ -59,10 +59,7 @@ public function getPage(string $sourcePath): HydePage
return $this->get($sourcePath) ?? throw new FileNotFoundException($sourcePath);
}
- /**
- * @param class-string<\Hyde\Pages\Concerns\HydePage>|null $pageClass
- * @return \Hyde\Foundation\Kernel\PageCollection
- */
+ /** @param class-string<\Hyde\Pages\Concerns\HydePage>|null $pageClass */
public function getPages(?string $pageClass = null): PageCollection
{
return $pageClass ? $this->filter(function (HydePage $page) use ($pageClass): bool {
diff --git a/packages/framework/src/Foundation/Kernel/RouteCollection.php b/packages/framework/src/Foundation/Kernel/RouteCollection.php
index a93b8eab995..fe71995adb6 100644
--- a/packages/framework/src/Foundation/Kernel/RouteCollection.php
+++ b/packages/framework/src/Foundation/Kernel/RouteCollection.php
@@ -15,7 +15,7 @@
*
* @template T of \Hyde\Support\Models\Route
*
- * @template-extends \Hyde\Foundation\Concerns\BaseFoundationCollection
+ * @extends \Hyde\Foundation\Concerns\BaseFoundationCollection
*
* @property array $items The routes in the collection.
*
@@ -53,10 +53,7 @@ public function getRoute(string $routeKey): Route
return $this->get($routeKey) ?? throw new RouteNotFoundException($routeKey);
}
- /**
- * @param class-string<\Hyde\Pages\Concerns\HydePage>|null $pageClass
- * @return \Hyde\Foundation\Kernel\RouteCollection
- */
+ /** @param class-string<\Hyde\Pages\Concerns\HydePage>|null $pageClass */
public function getRoutes(?string $pageClass = null): RouteCollection
{
return $pageClass ? $this->filter(function (Route $route) use ($pageClass): bool {
diff --git a/packages/framework/src/Framework/Features/Metadata/MetadataBag.php b/packages/framework/src/Framework/Features/Metadata/MetadataBag.php
index ff8a036d516..51e55491691 100644
--- a/packages/framework/src/Framework/Features/Metadata/MetadataBag.php
+++ b/packages/framework/src/Framework/Features/Metadata/MetadataBag.php
@@ -54,26 +54,19 @@ public function get(): array
public function add(MetadataElementContract|string $element): static
{
- return match (true) {
- $element instanceof LinkElement => $this->addElement('links', $element),
- $element instanceof MetadataElement => $this->addElement('metadata', $element),
- $element instanceof OpenGraphElement => $this->addElement('properties', $element),
+ match (true) {
+ $element instanceof LinkElement => $this->links[$element->uniqueKey()] = $element,
+ $element instanceof MetadataElement => $this->metadata[$element->uniqueKey()] = $element,
+ $element instanceof OpenGraphElement => $this->properties[$element->uniqueKey()] = $element,
default => $this->addGenericElement((string) $element),
};
- }
-
- protected function addElement(string $type, MetadataElementContract $element): static
- {
- $this->{$type}[$element->uniqueKey()] = $element;
return $this;
}
- protected function addGenericElement(string $element): static
+ protected function addGenericElement(string $element): void
{
$this->generics[] = $element;
-
- return $this;
}
/** @return array */
diff --git a/packages/framework/src/Hyde.php b/packages/framework/src/Hyde.php
index 01167b102a6..860bd77cccb 100644
--- a/packages/framework/src/Hyde.php
+++ b/packages/framework/src/Hyde.php
@@ -13,7 +13,6 @@
use Hyde\Foundation\Kernel\RouteCollection;
use Hyde\Pages\Concerns\HydePage;
use Hyde\Support\Models\Route;
-use Hyde\Support\Filesystem\SourceFile;
use Illuminate\Support\Facades\Facade;
use Illuminate\Support\HtmlString;
use JetBrains\PhpStorm\Pure;
@@ -53,9 +52,9 @@
* @method static string getMediaDirectory()
* @method static string getMediaOutputDirectory()
* @method static Features features()
- * @method static FileCollection files()
- * @method static PageCollection pages()
- * @method static RouteCollection routes()
+ * @method static FileCollection files()
+ * @method static PageCollection pages()
+ * @method static RouteCollection routes()
* @method static Route|null currentRoute()
* @method static HydeKernel getInstance()
* @method static Filesystem filesystem()
diff --git a/psalm.xml b/psalm.xml
index 1b04e852b4b..dc8a912cb04 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -16,4 +16,16 @@
+
+
+
+
+
+
+
+
+
+
+
+