diff --git a/CHANGELOG.md b/CHANGELOG.md index 40197deb..8877ab68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Releases +## [1.1.1](https://github.com/shadow81627/daim-api/compare/v1.1.0...v1.1.1) (2022-05-14) + + +### Bug Fixes + +* **deps:** Laravel 9 ([#70](https://github.com/shadow81627/daim-api/issues/70)) ([bf28514](https://github.com/shadow81627/daim-api/commit/bf28514d7b0dd345055efb5db2e87a3ed791deb8)) + # [1.1.0](https://github.com/shadow81627/daim-api/compare/v1.0.18...v1.1.0) (2022-05-13) diff --git a/app/Models/User.php b/app/Models/User.php index 89963686..b68725b7 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -8,7 +8,7 @@ use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; -class User extends Authenticatable +class User extends \TCG\Voyager\Models\User { use HasApiTokens, HasFactory, Notifiable; diff --git a/composer.json b/composer.json index 15af6959..9e4af0f3 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,8 @@ "laravel/framework": "9.12.2", "laravel/sanctum": "2.15.1", "laravel/tinker": "2.7.2", - "stancl/tenancy": "^3.5" + "stancl/tenancy": "3.5.6", + "tcg/voyager": "1.6.x-dev" }, "require-dev": { "spatie/laravel-ignition": "1.0", diff --git a/composer.lock b/composer.lock index a80ee2f2..3ccc03ba 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,74 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e40926ca497512fbf38c6ce35e92525b", + "content-hash": "a455ed846a68489d6216a57b5eabd0df", "packages": [ + { + "name": "arrilot/laravel-widgets", + "version": "3.13.1", + "source": { + "type": "git", + "url": "https://github.com/arrilot/laravel-widgets.git", + "reference": "ae0e44ce625026ae71c6ab9259f89f13af227e37" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/arrilot/laravel-widgets/zipball/ae0e44ce625026ae71c6ab9259f89f13af227e37", + "reference": "ae0e44ce625026ae71c6ab9259f89f13af227e37", + "shasum": "" + }, + "require": { + "illuminate/cache": ">=5.5", + "illuminate/console": ">=5.5", + "illuminate/container": ">=5.5", + "illuminate/contracts": ">=5.5", + "illuminate/support": ">=5.5", + "illuminate/view": ">=5.5", + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Arrilot\\Widgets\\ServiceProvider" + ], + "aliases": { + "Widget": "Arrilot\\Widgets\\Facade", + "AsyncWidget": "Arrilot\\Widgets\\AsyncFacade" + } + } + }, + "autoload": { + "psr-4": { + "Arrilot\\Widgets\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nekrasov Ilya", + "email": "nekrasov.ilya90@gmail.com" + } + ], + "description": "A powerful alternative to view composers. Asynchronous widgets, reloadable widgets, console generator, caching - everything you can think of.", + "homepage": "https://github.com/arrilot/laravel-widgets", + "keywords": [ + "ajax", + "laravel", + "widgets" + ], + "support": { + "issues": "https://github.com/arrilot/laravel-widgets/issues", + "source": "https://github.com/arrilot/laravel-widgets/tree/3.13.1" + }, + "time": "2020-09-20T19:56:38+00:00" + }, { "name": "brick/math", "version": "0.9.3", @@ -141,6 +207,351 @@ }, "time": "2021-08-13T13:06:58+00:00" }, + { + "name": "doctrine/cache", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/331b4d5dbaeab3827976273e9356b3b453c300ce", + "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce", + "shasum": "" + }, + "require": { + "php": "~7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "cache/integration-tests": "dev-master", + "doctrine/coding-standard": "^8.0", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "predis/predis": "~1.0", + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "symfony/cache": "^4.4 || ^5.2 || ^6.0@dev", + "symfony/var-exporter": "^4.4 || ^5.2 || ^6.0@dev" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "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 Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/2.1.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "type": "tidelift" + } + ], + "time": "2021-07-17T14:49:29+00:00" + }, + { + "name": "doctrine/dbal", + "version": "2.13.9", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c480849ca3ad6706a39c970cdfe6888fa8a058b8", + "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.0|^2.0", + "doctrine/deprecations": "^0.5.3|^1", + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.1 || ^8" + }, + "require-dev": { + "doctrine/coding-standard": "9.0.0", + "jetbrains/phpstorm-stubs": "2021.1", + "phpstan/phpstan": "1.4.6", + "phpunit/phpunit": "^7.5.20|^8.5|9.5.16", + "psalm/plugin-phpunit": "0.16.1", + "squizlabs/php_codesniffer": "3.6.2", + "symfony/cache": "^4.4", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", + "vimeo/psalm": "4.22.0" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" + } + }, + "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" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlanywhere", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/2.13.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%2Fdbal", + "type": "tidelift" + } + ], + "time": "2022-05-02T20:28:55+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5|^8.5|^9.5", + "psr/log": "^1|^2|^3" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/v1.0.0" + }, + "time": "2022-05-02T15:47:09+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "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" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + }, + "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%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2020-05-29T18:28:51+00:00" + }, { "name": "doctrine/inflector", "version": "2.0.4", @@ -371,27 +782,27 @@ }, { "name": "egulias/email-validator", - "version": "2.1.25", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" + "reference": "ee0db30118f661fb166bcffbf5d82032df484697" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ee0db30118f661fb166bcffbf5d82032df484697", + "reference": "ee0db30118f661fb166bcffbf5d82032df484697", "shasum": "" }, "require": { - "doctrine/lexer": "^1.0.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.10" + "doctrine/lexer": "^1.2", + "php": ">=7.2", + "symfony/polyfill-intl-idn": "^1.15" }, "require-dev": { - "dominicsayers/isemail": "^3.0.7", - "phpunit/phpunit": "^4.8.36|^7.5.15", - "satooshi/php-coveralls": "^1.0.1" + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -399,7 +810,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -427,7 +838,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/2.1.25" + "source": "https://github.com/egulias/EmailValidator/tree/3.1.2" }, "funding": [ { @@ -435,7 +846,7 @@ "type": "github" } ], - "time": "2020-12-29T14:50:06+00:00" + "time": "2021-10-11T09:18:27+00:00" }, { "name": "facade/ignition-contracts", @@ -1025,18 +1436,158 @@ ], "time": "2022-03-20T21:55:58+00:00" }, + { + "name": "intervention/image", + "version": "2.7.1", + "source": { + "type": "git", + "url": "https://github.com/Intervention/image.git", + "reference": "744ebba495319501b873a4e48787759c72e3fb8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Intervention/image/zipball/744ebba495319501b873a4e48787759c72e3fb8c", + "reference": "744ebba495319501b873a4e48787759c72e3fb8c", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1 || ^2.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15" + }, + "suggest": { + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing.", + "intervention/imagecache": "Caching extension for the Intervention Image library" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } + } + }, + "autoload": { + "psr-4": { + "Intervention\\Image\\": "src/Intervention/Image" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@olivervogel.com", + "homepage": "http://olivervogel.com/" + } + ], + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", + "keywords": [ + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" + ], + "support": { + "issues": "https://github.com/Intervention/image/issues", + "source": "https://github.com/Intervention/image/tree/2.7.1" + }, + "funding": [ + { + "url": "https://www.paypal.me/interventionphp", + "type": "custom" + }, + { + "url": "https://github.com/Intervention", + "type": "github" + } + ], + "time": "2021-12-16T16:49:26+00:00" + }, + { + "name": "larapack/doctrine-support", + "version": "v0.1.9", + "source": { + "type": "git", + "url": "https://github.com/larapack/doctrine-support.git", + "reference": "ab6e821c467704ae91a9a944e6ebdaad6a99a294" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/larapack/doctrine-support/zipball/ab6e821c467704ae91a9a944e6ebdaad6a99a294", + "reference": "ab6e821c467704ae91a9a944e6ebdaad6a99a294", + "shasum": "" + }, + "require": { + "doctrine/dbal": "^2.5", + "illuminate/support": ">=5.3" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Larapack\\DoctrineSupport\\DoctrineSupportServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Larapack\\DoctrineSupport\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Topper", + "email": "mark@ulties.com" + } + ], + "description": "Better Doctrine Support with Laravel (Support for `enum`)", + "homepage": "https://github.com/larapack/doctrine-support", + "keywords": [ + "dbal", + "doctrine", + "enum", + "laravel", + "support" + ], + "support": { + "issues": "https://github.com/larapack/doctrine-support/issues", + "source": "https://github.com/larapack/doctrine-support" + }, + "time": "2019-09-05T13:15:40+00:00" + }, { "name": "laravel-json-api/core", - "version": "v2.2.0", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/laravel-json-api/core.git", - "reference": "1c9ebc010b6f9f86f8660dd4d7078d343dae134f" + "reference": "3eb91521228c04233d29c61e1cb835c42272f800" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel-json-api/core/zipball/1c9ebc010b6f9f86f8660dd4d7078d343dae134f", - "reference": "1c9ebc010b6f9f86f8660dd4d7078d343dae134f", + "url": "https://api.github.com/repos/laravel-json-api/core/zipball/3eb91521228c04233d29c61e1cb835c42272f800", + "reference": "3eb91521228c04233d29c61e1cb835c42272f800", "shasum": "" }, "require": { @@ -1085,9 +1636,9 @@ ], "support": { "issues": "https://github.com/laravel-json-api/core/issues", - "source": "https://github.com/laravel-json-api/core/tree/v2.2.0" + "source": "https://github.com/laravel-json-api/core/tree/v2.3.0" }, - "time": "2022-04-01T19:39:06+00:00" + "time": "2022-04-17T17:20:35+00:00" }, { "name": "laravel-json-api/eloquent", @@ -1577,56 +2128,55 @@ }, { "name": "laravel/framework", - "version": "v8.83.12", + "version": "v9.12.2", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "2af2314989845db68dfbb65a54b8748ffaf26204" + "reference": "b5b5c635f1a93f277b5248725a1f7ffc97e20810" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/2af2314989845db68dfbb65a54b8748ffaf26204", - "reference": "2af2314989845db68dfbb65a54b8748ffaf26204", + "url": "https://api.github.com/repos/laravel/framework/zipball/b5b5c635f1a93f277b5248725a1f7ffc97e20810", + "reference": "b5b5c635f1a93f277b5248725a1f7ffc97e20810", "shasum": "" }, "require": { - "doctrine/inflector": "^1.4|^2.0", - "dragonmantank/cron-expression": "^3.0.2", - "egulias/email-validator": "^2.1.10", - "ext-json": "*", + "doctrine/inflector": "^2.0", + "dragonmantank/cron-expression": "^3.1", + "egulias/email-validator": "^3.1", "ext-mbstring": "*", "ext-openssl": "*", + "fruitcake/php-cors": "^1.2", "laravel/serializable-closure": "^1.0", - "league/commonmark": "^1.3|^2.0.2", - "league/flysystem": "^1.1", + "league/commonmark": "^2.2", + "league/flysystem": "^3.0", "monolog/monolog": "^2.0", "nesbot/carbon": "^2.53.1", - "opis/closure": "^3.6", - "php": "^7.3|^8.0", - "psr/container": "^1.0", - "psr/log": "^1.0|^2.0", - "psr/simple-cache": "^1.0", + "php": "^8.0.2", + "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.2.2", - "swiftmailer/swiftmailer": "^6.3", - "symfony/console": "^5.4", - "symfony/error-handler": "^5.4", - "symfony/finder": "^5.4", - "symfony/http-foundation": "^5.4", - "symfony/http-kernel": "^5.4", - "symfony/mime": "^5.4", - "symfony/process": "^5.4", - "symfony/routing": "^5.4", - "symfony/var-dumper": "^5.4", + "symfony/console": "^6.0", + "symfony/error-handler": "^6.0", + "symfony/finder": "^6.0", + "symfony/http-foundation": "^6.0", + "symfony/http-kernel": "^6.0", + "symfony/mailer": "^6.0", + "symfony/mime": "^6.0", + "symfony/process": "^6.0", + "symfony/routing": "^6.0", + "symfony/var-dumper": "^6.0", "tijsverkoyen/css-to-inline-styles": "^2.2.2", "vlucas/phpdotenv": "^5.4.1", - "voku/portable-ascii": "^1.6.1" + "voku/portable-ascii": "^2.0" }, "conflict": { "tightenco/collect": "<5.5.33" }, "provide": { - "psr/container-implementation": "1.0", - "psr/simple-cache-implementation": "1.0" + "psr/container-implementation": "1.1|2.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0" }, "replace": { "illuminate/auth": "self.version", @@ -1634,6 +2184,7 @@ "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", @@ -1664,19 +2215,22 @@ "require-dev": { "aws/aws-sdk-php": "^3.198.1", "doctrine/dbal": "^2.13.3|^3.1.4", - "filp/whoops": "^2.14.3", - "guzzlehttp/guzzle": "^6.5.5|^7.0.1", - "league/flysystem-cached-adapter": "^1.0", + "fakerphp/faker": "^1.9.2", + "guzzlehttp/guzzle": "^7.2", + "league/flysystem-aws-s3-v3": "^3.0", + "league/flysystem-ftp": "^3.0", + "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.4.4", - "orchestra/testbench-core": "^6.27", + "orchestra/testbench-core": "^7.1", "pda/pheanstalk": "^4.0", - "phpunit/phpunit": "^8.5.19|^9.5.8", + "phpstan/phpstan": "^1.4.7", + "phpunit/phpunit": "^9.5.8", "predis/predis": "^1.1.9", - "symfony/cache": "^5.4" + "symfony/cache": "^6.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.198.1).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.198.1).", "brianium/paratest": "Required to run tests in parallel (^6.0).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", "ext-bcmath": "Required to use the multiple_of validation rule.", @@ -1688,27 +2242,29 @@ "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, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).", + "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.2).", "laravel/tinker": "Required to use the tinker console command (^2.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", - "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", - "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.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-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", "mockery/mockery": "Required to use mocking (^1.4.4).", "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 (^8.5.19|^9.5.8).", + "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8).", "predis/predis": "Required to use the predis connector (^1.1.9).", "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 (^4.0|^5.0|^6.0|^7.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^5.4).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).", - "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.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.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^6.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-master": "9.x-dev" } }, "autoload": { @@ -1722,7 +2278,8 @@ "Illuminate\\": "src/Illuminate/", "Illuminate\\Support\\": [ "src/Illuminate/Macroable/", - "src/Illuminate/Collections/" + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" ] } }, @@ -1746,7 +2303,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-05-10T13:57:07+00:00" + "time": "2022-05-11T13:38:26+00:00" }, { "name": "laravel/sanctum", @@ -1940,6 +2497,67 @@ }, "time": "2022-03-23T12:38:24+00:00" }, + { + "name": "laravel/ui", + "version": "v3.4.5", + "source": { + "type": "git", + "url": "https://github.com/laravel/ui.git", + "reference": "f11d295de1508c5bb56206a620b00b6616de414c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/ui/zipball/f11d295de1508c5bb56206a620b00b6616de414c", + "reference": "f11d295de1508c5bb56206a620b00b6616de414c", + "shasum": "" + }, + "require": { + "illuminate/console": "^8.42|^9.0", + "illuminate/filesystem": "^8.42|^9.0", + "illuminate/support": "^8.82|^9.0", + "illuminate/validation": "^8.42|^9.0", + "php": "^7.3|^8.0" + }, + "require-dev": { + "orchestra/testbench": "^6.23|^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Ui\\UiServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Ui\\": "src/", + "Illuminate\\Foundation\\Auth\\": "auth-backend/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel UI utilities and presets.", + "keywords": [ + "laravel", + "ui" + ], + "support": { + "source": "https://github.com/laravel/ui/tree/v3.4.5" + }, + "time": "2022-02-21T14:59:16+00:00" + }, { "name": "league/commonmark", "version": "2.3.0", @@ -2130,54 +2748,48 @@ }, { "name": "league/flysystem", - "version": "1.1.9", + "version": "3.0.19", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "094defdb4a7001845300334e7c1ee2335925ef99" + "reference": "670df21225d68d165a8df38587ac3f41caf608f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99", - "reference": "094defdb4a7001845300334e7c1ee2335925ef99", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/670df21225d68d165a8df38587ac3f41caf608f8", + "reference": "670df21225d68d165a8df38587ac3f41caf608f8", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "league/mime-type-detection": "^1.3", - "php": "^7.2.5 || ^8.0" + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" }, "conflict": { - "league/flysystem-sftp": "<1.0.6" + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "symfony/http-client": "<5.2" }, "require-dev": { - "phpspec/prophecy": "^1.11.1", - "phpunit/phpunit": "^8.5.8" - }, - "suggest": { - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" + "async-aws/s3": "^1.5", + "async-aws/simple-s3": "^1.0", + "aws/aws-sdk-php": "^3.198.1", + "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": "^2.0", + "phpstan/phpstan": "^0.12.26", + "phpunit/phpunit": "^9.5.11", + "sabre/dav": "^4.3.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, "autoload": { "psr-4": { - "League\\Flysystem\\": "src/" + "League\\Flysystem\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2187,40 +2799,42 @@ "authors": [ { "name": "Frank de Jonge", - "email": "info@frenky.net" + "email": "info@frankdejonge.nl" } ], - "description": "Filesystem abstraction: Many filesystems, one API.", + "description": "File storage abstraction for PHP", "keywords": [ - "Cloud Files", "WebDAV", - "abstraction", "aws", "cloud", - "copy.com", - "dropbox", - "file systems", + "file", "files", "filesystem", "filesystems", "ftp", - "rackspace", - "remote", "s3", "sftp", "storage" ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.1.9" + "source": "https://github.com/thephpleague/flysystem/tree/3.0.19" }, "funding": [ { "url": "https://offset.earth/frankdejonge", - "type": "other" + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" } ], - "time": "2021-12-09T09:40:50+00:00" + "time": "2022-05-03T21:19:02+00:00" }, { "name": "league/mime-type-detection", @@ -2682,71 +3296,6 @@ }, "time": "2021-11-30T19:35:32+00:00" }, - { - "name": "opis/closure", - "version": "3.6.3", - "source": { - "type": "git", - "url": "https://github.com/opis/closure.git", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad", - "shasum": "" - }, - "require": { - "php": "^5.4 || ^7.0 || ^8.0" - }, - "require-dev": { - "jeremeamia/superclosure": "^2.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.6.x-dev" - } - }, - "autoload": { - "files": [ - "functions.php" - ], - "psr-4": { - "Opis\\Closure\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - }, - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" - } - ], - "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", - "homepage": "https://opis.io/closure", - "keywords": [ - "anonymous functions", - "closure", - "function", - "serializable", - "serialization", - "serialize" - ], - "support": { - "issues": "https://github.com/opis/closure/issues", - "source": "https://github.com/opis/closure/tree/3.6.3" - }, - "time": "2022-01-27T09:35:39+00:00" - }, { "name": "phpoption/phpoption", "version": "1.8.1", @@ -2820,22 +3369,27 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "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/" @@ -2862,9 +3416,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { "name": "psr/event-dispatcher", @@ -3078,16 +3632,16 @@ }, { "name": "psr/log", - "version": "2.0.0", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", "shasum": "" }, "require": { @@ -3096,7 +3650,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { @@ -3122,31 +3676,31 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/2.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.0" }, - "time": "2021-07-14T16:41:46+00:00" + "time": "2021-07-14T16:46:02+00:00" }, { "name": "psr/simple-cache", - "version": "1.0.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -3161,7 +3715,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interfaces for simple caching", @@ -3173,22 +3727,22 @@ "simple-cache" ], "support": { - "source": "https://github.com/php-fig/simple-cache/tree/master" + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" }, - "time": "2017-10-23T01:57:42+00:00" + "time": "2021-10-29T13:26:27+00:00" }, { "name": "psy/psysh", - "version": "v0.11.2", + "version": "v0.11.4", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "7f7da640d68b9c9fec819caae7c744a213df6514" + "reference": "05c544b339b112226ad14803e1e5b09a61957454" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/7f7da640d68b9c9fec819caae7c744a213df6514", - "reference": "7f7da640d68b9c9fec819caae7c744a213df6514", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/05c544b339b112226ad14803e1e5b09a61957454", + "reference": "05c544b339b112226ad14803e1e5b09a61957454", "shasum": "" }, "require": { @@ -3203,15 +3757,13 @@ "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", - "hoa/console": "3.17.05.02" + "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.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", - "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." + "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." }, "bin": [ "bin/psysh" @@ -3251,9 +3803,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.2" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.4" }, - "time": "2022-02-28T15:28:54+00:00" + "time": "2022-05-06T12:49:14+00:00" }, { "name": "ralouphie/getallheaders", @@ -3614,73 +4166,17 @@ "shasum": "" }, "require": { - "illuminate/database": "^6.0|^8.0|^9.0", - "illuminate/support": "^6.0|^8.0|^9.0" - }, - "require-dev": { - "orchestra/testbench": "^4.0|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Stancl\\VirtualColumn\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Samuel Štancl", - "email": "samuel.stancl@gmail.com" - } - ], - "description": "Eloquent virtual column.", - "support": { - "issues": "https://github.com/archtechx/virtualcolumn/issues", - "source": "https://github.com/archtechx/virtualcolumn/tree/v1.2.1" - }, - "time": "2022-01-27T11:08:03+00:00" - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v6.3.0", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", - "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c", - "shasum": "" - }, - "require": { - "egulias/email-validator": "^2.0|^3.1", - "php": ">=7.0.0", - "symfony/polyfill-iconv": "^1.0", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0" + "illuminate/database": "^6.0|^8.0|^9.0", + "illuminate/support": "^6.0|^8.0|^9.0" }, "require-dev": { - "mockery/mockery": "^1.0", - "symfony/phpunit-bridge": "^4.4|^5.4" - }, - "suggest": { - "ext-intl": "Needed to support internationalized email addresses" + "orchestra/testbench": "^4.0|^6.0|^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.2-dev" - } - }, "autoload": { - "files": [ - "lib/swift_required.php" - ] + "psr-4": { + "Stancl\\VirtualColumn\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3688,79 +4184,55 @@ ], "authors": [ { - "name": "Chris Corbyn" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Samuel Štancl", + "email": "samuel.stancl@gmail.com" } ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", - "keywords": [ - "email", - "mail", - "mailer" - ], + "description": "Eloquent virtual column.", "support": { - "issues": "https://github.com/swiftmailer/swiftmailer/issues", - "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0" + "issues": "https://github.com/archtechx/virtualcolumn/issues", + "source": "https://github.com/archtechx/virtualcolumn/tree/v1.2.1" }, - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer", - "type": "tidelift" - } - ], - "abandoned": "symfony/mailer", - "time": "2021-10-18T15:26:12+00:00" + "time": "2022-01-27T11:08:03+00:00" }, { "name": "symfony/console", - "version": "v5.4.8", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b" + "reference": "0d00aa289215353aa8746a31d101f8e60826285c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b", - "reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b", + "url": "https://api.github.com/repos/symfony/console/zipball/0d00aa289215353aa8746a31d101f8e60826285c", + "reference": "0d00aa289215353aa8746a31d101f8e60826285c", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.1|^6.0" + "symfony/string": "^5.4|^6.0" }, "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" + "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" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/lock": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -3800,7 +4272,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.8" + "source": "https://github.com/symfony/console/tree/v6.0.8" }, "funding": [ { @@ -3816,7 +4288,7 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:02:29+00:00" + "time": "2022-04-20T15:01:42+00:00" }, { "name": "symfony/css-selector", @@ -3952,27 +4424,27 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.8", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "c1fcde614dfe99d62a83b796a53b8bad358b266a" + "reference": "5e2795163acbd13b3cd46835c9f8f6c5d0a3a280" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/c1fcde614dfe99d62a83b796a53b8bad358b266a", - "reference": "c1fcde614dfe99d62a83b796a53b8bad358b266a", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/5e2795163acbd13b3cd46835c9f8f6c5d0a3a280", + "reference": "5e2795163acbd13b3cd46835c9f8f6c5d0a3a280", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "symfony/var-dumper": "^5.4|^6.0" }, "require-dev": { "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0" + "symfony/http-kernel": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -4003,7 +4475,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.8" + "source": "https://github.com/symfony/error-handler/tree/v6.0.8" }, "funding": [ { @@ -4019,7 +4491,7 @@ "type": "tidelift" } ], - "time": "2022-04-12T15:48:08+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/event-dispatcher", @@ -4185,22 +4657,20 @@ }, { "name": "symfony/finder", - "version": "v5.4.8", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9" + "reference": "af7edab28d17caecd1f40a9219fc646ae751c21f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9b630f3427f3ebe7cd346c277a1408b00249dad9", - "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9", + "url": "https://api.github.com/repos/symfony/finder/zipball/af7edab28d17caecd1f40a9219fc646ae751c21f", + "reference": "af7edab28d17caecd1f40a9219fc646ae751c21f", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -4228,7 +4698,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.8" + "source": "https://github.com/symfony/finder/tree/v6.0.8" }, "funding": [ { @@ -4244,33 +4714,32 @@ "type": "tidelift" } ], - "time": "2022-04-15T08:07:45+00:00" + "time": "2022-04-15T08:07:58+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.8", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ff2818d1c3d49860bcae1f2cbb5eb00fcd3bf9e2" + "reference": "c9c86b02d7ef6f44f3154acc7de42831518afe7c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ff2818d1c3d49860bcae1f2cbb5eb00fcd3bf9e2", - "reference": "ff2818d1c3d49860bcae1f2cbb5eb00fcd3bf9e2", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c9c86b02d7ef6f44f3154acc7de42831518afe7c", + "reference": "c9c86b02d7ef6f44f3154acc7de42831518afe7c", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { "predis/predis": "~1.0", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0" + "symfony/cache": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0" }, "suggest": { "symfony/mime": "To use the file extension guesser" @@ -4301,7 +4770,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.8" + "source": "https://github.com/symfony/http-foundation/tree/v6.0.8" }, "funding": [ { @@ -4317,67 +4786,64 @@ "type": "tidelift" } ], - "time": "2022-04-22T08:14:12+00:00" + "time": "2022-04-22T08:18:02+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.8", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "cf7e61106abfc19b305ca0aedc41724ced89a02a" + "reference": "7aaf1cdc9cc2ad47e926f624efcb679883a39ca7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/cf7e61106abfc19b305ca0aedc41724ced89a02a", - "reference": "cf7e61106abfc19b305ca0aedc41724ced89a02a", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7aaf1cdc9cc2ad47e926f624efcb679883a39ca7", + "reference": "7aaf1cdc9cc2ad47e926f624efcb679883a39ca7", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/log": "^1|^2", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^5.0|^6.0", - "symfony/http-foundation": "^5.3.7|^6.0", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "psr/log": "^1|^2|^3", + "symfony/error-handler": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.0", - "symfony/config": "<5.0", - "symfony/console": "<4.4", - "symfony/dependency-injection": "<5.3", - "symfony/doctrine-bridge": "<5.0", - "symfony/form": "<5.0", - "symfony/http-client": "<5.0", - "symfony/mailer": "<5.0", - "symfony/messenger": "<5.0", - "symfony/translation": "<5.0", - "symfony/twig-bridge": "<5.0", - "symfony/validator": "<5.0", + "symfony/cache": "<5.4", + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<5.4", "twig/twig": "<2.13" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "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", - "symfony/config": "^5.0|^6.0", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^5.3|^6.0", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/dom-crawler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", "symfony/http-client-contracts": "^1.1|^2|^3", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/routing": "^4.4|^5.0|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", "symfony/translation-contracts": "^1.1|^2|^3", "twig/twig": "^2.13|^3.0.4" }, @@ -4413,7 +4879,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.8" + "source": "https://github.com/symfony/http-kernel/tree/v6.0.8" }, "funding": [ { @@ -4429,47 +4895,42 @@ "type": "tidelift" } ], - "time": "2022-04-27T17:22:21+00:00" + "time": "2022-04-27T17:26:02+00:00" }, { - "name": "symfony/mime", - "version": "v5.4.8", + "name": "symfony/mailer", + "version": "v6.0.8", "source": { "type": "git", - "url": "https://github.com/symfony/mime.git", - "reference": "af49bc163ec3272f677bde3bc44c0d766c1fd662" + "url": "https://github.com/symfony/mailer.git", + "reference": "706af6b3e99ebcbc639c9c664f5579aaa869409b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/af49bc163ec3272f677bde3bc44c0d766c1fd662", - "reference": "af49bc163ec3272f677bde3bc44c0d766c1fd662", + "url": "https://api.github.com/repos/symfony/mailer/zipball/706af6b3e99ebcbc639c9c664f5579aaa869409b", + "reference": "706af6b3e99ebcbc639c9c664f5579aaa869409b", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16" + "egulias/email-validator": "^2.1.10|^3", + "php": ">=8.0.2", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/service-contracts": "^1.1|^2|^3" }, "conflict": { - "egulias/email-validator": "~3.0.0", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4" + "symfony/http-kernel": "<5.4" }, "require-dev": { - "egulias/email-validator": "^2.1.10|^3.1", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/property-access": "^4.4|^5.1|^6.0", - "symfony/property-info": "^4.4|^5.1|^6.0", - "symfony/serializer": "^5.2|^6.0" + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/messenger": "^5.4|^6.0" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Mime\\": "" + "Symfony\\Component\\Mailer\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -4489,14 +4950,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Allows manipulating MIME messages", + "description": "Helps sending emails", "homepage": "https://symfony.com", - "keywords": [ - "mime", - "mime-type" - ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.8" + "source": "https://github.com/symfony/mailer/tree/v6.0.8" }, "funding": [ { @@ -4512,48 +4969,49 @@ "type": "tidelift" } ], - "time": "2022-04-12T15:48:08+00:00" + "time": "2022-04-27T17:10:30+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.25.0", + "name": "symfony/mime", + "version": "v6.0.8", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "30885182c981ab175d4d034db0f6f469898070ab" + "url": "https://github.com/symfony/mime.git", + "reference": "c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", - "reference": "30885182c981ab175d4d034db0f6f469898070ab", + "url": "https://api.github.com/repos/symfony/mime/zipball/c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1", + "reference": "c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.0.2", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" }, - "provide": { - "ext-ctype": "*" + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<5.4" }, - "suggest": { - "ext-ctype": "For best performance" + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4561,24 +5019,22 @@ ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for ctype functions", + "description": "Allows manipulating MIME messages", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" + "mime", + "mime-type" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" + "source": "https://github.com/symfony/mime/tree/v6.0.8" }, "funding": [ { @@ -4594,30 +5050,30 @@ "type": "tidelift" } ], - "time": "2021-10-20T20:35:02+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { - "name": "symfony/polyfill-iconv", + "name": "symfony/polyfill-ctype", "version": "v1.25.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "30885182c981ab175d4d034db0f6f469898070ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f1aed619e28cb077fc83fac8c4c0383578356e40", - "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", + "reference": "30885182c981ab175d4d034db0f6f469898070ab", "shasum": "" }, "require": { "php": ">=7.1" }, "provide": { - "ext-iconv": "*" + "ext-ctype": "*" }, "suggest": { - "ext-iconv": "For best performance" + "ext-ctype": "For best performance" }, "type": "library", "extra": { @@ -4634,7 +5090,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" + "Symfony\\Polyfill\\Ctype\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -4643,25 +5099,24 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Iconv extension", + "description": "Symfony polyfill for ctype functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "iconv", + "ctype", "polyfill", - "portable", - "shim" + "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" }, "funding": [ { @@ -4677,7 +5132,7 @@ "type": "tidelift" } ], - "time": "2022-01-04T09:04:05+00:00" + "time": "2021-10-20T20:35:02+00:00" }, { "name": "symfony/polyfill-intl-grapheme", @@ -4853,106 +5308,19 @@ "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-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.25.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": "2021-02-19T12:13:01+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.25.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", "shasum": "" }, "require": { "php": ">=7.1" }, - "provide": { - "ext-mbstring": "*" - }, "suggest": { - "ext-mbstring": "For best performance" + "ext-intl": "For best performance" }, "type": "library", "extra": { @@ -4969,8 +5337,11 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4986,17 +5357,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Symfony polyfill for intl's Normalizer class and related functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", - "mbstring", + "intl", + "normalizer", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" }, "funding": [ { @@ -5012,25 +5384,31 @@ "type": "tidelift" } ], - "time": "2021-11-30T18:21:41+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { - "name": "symfony/polyfill-php72", + "name": "symfony/polyfill-mbstring", "version": "v1.25.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, "type": "library", "extra": { "branch-alias": { @@ -5046,7 +5424,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" + "Symfony\\Polyfill\\Mbstring\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -5063,16 +5441,17 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "mbstring", "polyfill", "portable", "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -5088,20 +5467,20 @@ "type": "tidelift" } ], - "time": "2021-05-27T09:17:38+00:00" + "time": "2021-11-30T18:21:41+00:00" }, { - "name": "symfony/polyfill-php73", + "name": "symfony/polyfill-php72", "version": "v1.25.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5", - "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", "shasum": "" }, "require": { @@ -5122,11 +5501,8 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "Symfony\\Polyfill\\Php72\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5142,7 +5518,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -5151,7 +5527,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.25.0" }, "funding": [ { @@ -5167,7 +5543,7 @@ "type": "tidelift" } ], - "time": "2021-06-05T21:20:04+00:00" + "time": "2021-05-27T09:17:38+00:00" }, { "name": "symfony/polyfill-php80", @@ -5333,21 +5709,20 @@ }, { "name": "symfony/process", - "version": "v5.4.8", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3" + "reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", - "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", + "url": "https://api.github.com/repos/symfony/process/zipball/d074154ea8b1443a96391f6e39f9e547b2dd01b9", + "reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -5375,7 +5750,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.8" + "source": "https://github.com/symfony/process/tree/v6.0.8" }, "funding": [ { @@ -5391,41 +5766,39 @@ "type": "tidelift" } ], - "time": "2022-04-08T05:07:18+00:00" + "time": "2022-04-12T16:11:42+00:00" }, { "name": "symfony/routing", - "version": "v5.4.8", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "e07817bb6244ea33ef5ad31abc4a9288bef3f2f7" + "reference": "74c40c9fc334acc601a32fcf4274e74fb3bac11e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e07817bb6244ea33ef5ad31abc4a9288bef3f2f7", - "reference": "e07817bb6244ea33ef5ad31abc4a9288bef3f2f7", + "url": "https://api.github.com/repos/symfony/routing/zipball/74c40c9fc334acc601a32fcf4274e74fb3bac11e", + "reference": "74c40c9fc334acc601a32fcf4274e74fb3bac11e", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "conflict": { "doctrine/annotations": "<1.12", - "symfony/config": "<5.3", - "symfony/dependency-injection": "<4.4", - "symfony/yaml": "<4.4" + "symfony/config": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.12", "psr/log": "^1|^2|^3", - "symfony/config": "^5.3|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "symfony/config": "For using the all-in-one router or any loader", @@ -5465,7 +5838,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.8" + "source": "https://github.com/symfony/routing/tree/v6.0.8" }, "funding": [ { @@ -5481,26 +5854,25 @@ "type": "tidelift" } ], - "time": "2022-04-18T21:45:37+00:00" + "time": "2022-04-22T08:18:02+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.1", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c" + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/24d9dc654b83e91aa59f9d167b131bc3b5bea24c", - "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e517458f278c2131ca9f262f8fbaf01410f2c65c", + "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" + "php": ">=8.0.2", + "psr/container": "^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -5511,7 +5883,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -5548,7 +5920,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.0.1" }, "funding": [ { @@ -5564,7 +5936,7 @@ "type": "tidelift" } ], - "time": "2022-03-13T20:07:29+00:00" + "time": "2022-03-13T20:10:05+00:00" }, { "name": "symfony/string", @@ -5826,32 +6198,31 @@ }, { "name": "symfony/var-dumper", - "version": "v5.4.8", + "version": "v6.0.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "cdcadd343d31ad16fc5e006b0de81ea307435053" + "reference": "fa61dfb4bd3068df2492013dc65f3190e9f550c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cdcadd343d31ad16fc5e006b0de81ea307435053", - "reference": "cdcadd343d31ad16fc5e006b0de81ea307435053", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/fa61dfb4bd3068df2492013dc65f3190e9f550c0", + "reference": "fa61dfb4bd3068df2492013dc65f3190e9f550c0", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { "phpunit/phpunit": "<5.4.3", - "symfony/console": "<4.4" + "symfony/console": "<5.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/uid": "^5.1|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -5895,7 +6266,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.8" + "source": "https://github.com/symfony/var-dumper/tree/v6.0.8" }, "funding": [ { @@ -5911,7 +6282,99 @@ "type": "tidelift" } ], - "time": "2022-04-26T13:19:20+00:00" + "time": "2022-04-26T13:22:23+00:00" + }, + { + "name": "tcg/voyager", + "version": "1.6.x-dev", + "source": { + "type": "git", + "url": "https://github.com/the-control-group/voyager.git", + "reference": "b384421603b579eff21d5cd7c25f375bccc93a0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/the-control-group/voyager/zipball/b384421603b579eff21d5cd7c25f375bccc93a0a", + "reference": "b384421603b579eff21d5cd7c25f375bccc93a0a", + "shasum": "" + }, + "require": { + "arrilot/laravel-widgets": "^3.7", + "doctrine/dbal": "^2.5", + "ext-json": "*", + "illuminate/support": "~8.0|~9.0", + "intervention/image": "^2.4", + "larapack/doctrine-support": "~0.1.4", + "laravel/ui": ">=1.0", + "league/flysystem": "~1.1|~2.0|~3.0", + "php": "^7.3|^7.4|^8.0" + }, + "require-dev": { + "laravel/browser-kit-testing": ">=6.1.0", + "laravel/framework": "~8.0|~9.0", + "orchestra/testbench": ">=4.0", + "orchestra/testbench-browser-kit": ">=4.0", + "phpunit/phpcov": ">=6.0", + "phpunit/phpunit": ">=8.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "TCG\\Voyager\\VoyagerServiceProvider", + "TCG\\Voyager\\Providers\\VoyagerDummyServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "TCG\\Voyager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tony Lea", + "email": "tony.lea@thecontrolgroup.com" + } + ], + "description": "A Laravel Admin Package for The Control Group to make your life easier and steer your project in the right direction", + "homepage": "https://voyager.devdojo.com/", + "keywords": [ + "admin", + "laravel", + "panel" + ], + "support": { + "issues": "https://github.com/the-control-group/voyager/issues", + "source": "https://github.com/the-control-group/voyager" + }, + "funding": [ + { + "url": "https://github.com/[user1", + "type": "github" + }, + { + "url": "https://github.com/emptynick]# Replace with up to 4 GitHub Sponsors-enabled usernames e.g.", + "type": "github" + }, + { + "url": "https://github.com/fletch3555", + "type": "github" + }, + { + "url": "https://github.com/tnylea", + "type": "github" + }, + { + "url": "https://github.com/user2", + "type": "github" + } + ], + "time": "2022-05-04T07:20:57+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -6048,16 +6511,16 @@ }, { "name": "voku/portable-ascii", - "version": "1.6.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a" + "reference": "b56450eed252f6801410d810c8e1727224ae0743" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", "shasum": "" }, "require": { @@ -6094,7 +6557,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/1.6.1" + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" }, "funding": [ { @@ -6118,7 +6581,7 @@ "type": "tidelift" } ], - "time": "2022-01-24T18:55:24+00:00" + "time": "2022-03-08T17:03:00+00:00" }, { "name": "webmozart/assert", @@ -6203,195 +6666,52 @@ "ext-phar": "*", "phpbench/phpbench": "^0.16 || ^1", "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-03-03T08:28:38+00:00" - }, - { - "name": "facade/flare-client-php", - "version": "1.9.1", - "source": { - "type": "git", - "url": "https://github.com/facade/flare-client-php.git", - "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/flare-client-php/zipball/b2adf1512755637d0cef4f7d1b54301325ac78ed", - "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed", - "shasum": "" - }, - "require": { - "facade/ignition-contracts": "~1.0", - "illuminate/pipeline": "^5.5|^6.0|^7.0|^8.0", - "php": "^7.1|^8.0", - "symfony/http-foundation": "^3.3|^4.1|^5.0", - "symfony/mime": "^3.4|^4.0|^5.1", - "symfony/var-dumper": "^3.4|^4.0|^5.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.14", - "phpunit/phpunit": "^7.5.16", - "spatie/phpunit-snapshot-assertions": "^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "files": [ - "src/helpers.php" - ], - "psr-4": { - "Facade\\FlareClient\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Send PHP errors to Flare", - "homepage": "https://github.com/facade/flare-client-php", - "keywords": [ - "exception", - "facade", - "flare", - "reporting" - ], - "support": { - "issues": "https://github.com/facade/flare-client-php/issues", - "source": "https://github.com/facade/flare-client-php/tree/1.9.1" - }, - "funding": [ - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2021-09-13T12:16:46+00:00" - }, - { - "name": "facade/ignition", - "version": "2.17.5", - "source": { - "type": "git", - "url": "https://github.com/facade/ignition.git", - "reference": "1d71996f83c9a5a7807331b8986ac890352b7a0c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/1d71996f83c9a5a7807331b8986ac890352b7a0c", - "reference": "1d71996f83c9a5a7807331b8986ac890352b7a0c", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-json": "*", - "ext-mbstring": "*", - "facade/flare-client-php": "^1.9.1", - "facade/ignition-contracts": "^1.0.2", - "illuminate/support": "^7.0|^8.0", - "monolog/monolog": "^2.0", - "php": "^7.2.5|^8.0", - "symfony/console": "^5.0", - "symfony/var-dumper": "^5.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.14", - "livewire/livewire": "^2.4", - "mockery/mockery": "^1.3", - "orchestra/testbench": "^5.0|^6.0", - "psalm/plugin-laravel": "^1.2" - }, - "suggest": { - "laravel/telescope": "^3.1" + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, - "laravel": { - "providers": [ - "Facade\\Ignition\\IgnitionServiceProvider" - ], - "aliases": { - "Flare": "Facade\\Ignition\\Facades\\Flare" - } - } - }, "autoload": { - "files": [ - "src/helpers.php" - ], "psr-4": { - "Facade\\Ignition\\": "src" + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "A beautiful error page for Laravel applications.", - "homepage": "https://github.com/facade/ignition", + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ - "error", - "flare", - "laravel", - "page" + "constructor", + "instantiate" ], "support": { - "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", - "forum": "https://twitter.com/flareappio", - "issues": "https://github.com/facade/ignition/issues", - "source": "https://github.com/facade/ignition" + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" }, - "time": "2022-02-23T18:31:24+00:00" + "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%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-03-03T08:28:38+00:00" }, { "name": "fakerphp/faker", @@ -6775,37 +7095,37 @@ }, { "name": "nunomaduro/collision", - "version": "v5.11.0", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461" + "reference": "c379636dc50e829edb3a8bcb944a01aa1aed8f25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/8b610eef8582ccdc05d8f2ab23305e2d37049461", - "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/c379636dc50e829edb3a8bcb944a01aa1aed8f25", + "reference": "c379636dc50e829edb3a8bcb944a01aa1aed8f25", "shasum": "" }, "require": { - "facade/ignition-contracts": "^1.0", - "filp/whoops": "^2.14.3", - "php": "^7.3 || ^8.0", - "symfony/console": "^5.0" + "facade/ignition-contracts": "^1.0.2", + "filp/whoops": "^2.14.5", + "php": "^8.0.0", + "symfony/console": "^6.0.2" }, "require-dev": { - "brianium/paratest": "^6.1", - "fideloper/proxy": "^4.4.1", - "fruitcake/laravel-cors": "^2.0.3", - "laravel/framework": "8.x-dev", - "nunomaduro/larastan": "^0.6.2", - "nunomaduro/mock-final-classes": "^1.0", - "orchestra/testbench": "^6.0", - "phpstan/phpstan": "^0.12.64", - "phpunit/phpunit": "^9.5.0" + "brianium/paratest": "^6.4.1", + "laravel/framework": "^9.7", + "nunomaduro/larastan": "^1.0.2", + "nunomaduro/mock-final-classes": "^1.1.0", + "orchestra/testbench": "^7.3.0", + "phpunit/phpunit": "^9.5.11" }, "type": "library", "extra": { + "branch-alias": { + "dev-develop": "6.x-dev" + }, "laravel": { "providers": [ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" @@ -6858,7 +7178,7 @@ "type": "patreon" } ], - "time": "2022-01-10T16:22:52+00:00" + "time": "2022-04-05T15:31:38+00:00" }, { "name": "phar-io/manifest", @@ -8583,6 +8903,298 @@ ], "time": "2020-09-28T06:39:44+00:00" }, + { + "name": "spatie/backtrace", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/backtrace.git", + "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", + "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "ext-json": "*", + "phpunit/phpunit": "^9.3", + "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": { + "issues": "https://github.com/spatie/backtrace/issues", + "source": "https://github.com/spatie/backtrace/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/spatie", + "type": "github" + }, + { + "url": "https://spatie.be/open-source/support-us", + "type": "other" + } + ], + "time": "2021-11-09T10:57:15+00:00" + }, + { + "name": "spatie/flare-client-php", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/flare-client-php.git", + "reference": "1059fd8f229fa016b11063c6be9d1922d036adb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/1059fd8f229fa016b11063c6be9d1922d036adb7", + "reference": "1059fd8f229fa016b11063c6be9d1922d036adb7", + "shasum": "" + }, + "require": { + "illuminate/pipeline": "^8.0|^9.0", + "php": "^8.0", + "spatie/backtrace": "^1.2", + "symfony/http-foundation": "^5.0|^6.0", + "symfony/mime": "^5.2|^6.0", + "symfony/process": "^5.2|^6.0", + "symfony/var-dumper": "^5.2|^6.0" + }, + "require-dev": { + "dms/phpunit-arraysubset-asserts": "^0.3.0", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/phpunit-snapshot-assertions": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1.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.1.1" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-05-11T09:43:07+00:00" + }, + { + "name": "spatie/ignition", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/ignition.git", + "reference": "6aa8f1c8c46aff30c9bd4c354dc865eeee2ed59f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/ignition/zipball/6aa8f1c8c46aff30c9bd4c354dc865eeee2ed59f", + "reference": "6aa8f1c8c46aff30c9bd4c354dc865eeee2ed59f", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "monolog/monolog": "^2.0", + "php": "^8.0", + "spatie/flare-client-php": "^1.1", + "symfony/console": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "require-dev": { + "mockery/mockery": "^1.4", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "symfony/process": "^5.4|^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2.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": "2022-05-12T08:19:04+00:00" + }, + { + "name": "spatie/laravel-ignition", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-ignition.git", + "reference": "fe1d95623922fd5f9d5e802ce4ec1943e59c9a81" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/fe1d95623922fd5f9d5e802ce4ec1943e59c9a81", + "reference": "fe1d95623922fd5f9d5e802ce4ec1943e59c9a81", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "illuminate/support": "^8.77|^9.0", + "monolog/monolog": "^2.3", + "php": "^8.0", + "spatie/ignition": "^1.0", + "symfony/console": "^5.0|^6.0", + "symfony/var-dumper": "^5.0|^6.0" + }, + "require-dev": { + "filp/whoops": "^2.14", + "livewire/livewire": "^2.8|dev-develop", + "mockery/mockery": "^1.4", + "nunomaduro/larastan": "^1.0", + "orchestra/testbench": "^6.23|^7.0", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/laravel-ray": "^1.27" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ], + "aliases": { + "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" + } + } + }, + "autoload": { + "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": "2022-01-18T15:21:26+00:00" + }, { "name": "squizlabs/php_codesniffer", "version": "3.6.2", @@ -8692,7 +9304,9 @@ ], "aliases": [], "minimum-stability": "dev", - "stability-flags": [], + "stability-flags": { + "tcg/voyager": 20 + }, "prefer-stable": true, "prefer-lowest": false, "platform": { diff --git a/config/voyager.php b/config/voyager.php new file mode 100644 index 00000000..7752ebf4 --- /dev/null +++ b/config/voyager.php @@ -0,0 +1,245 @@ + [ + 'add_default_role_on_register' => true, + 'default_role' => 'user', + 'default_avatar' => 'users/default.png', + 'redirect' => '/admin', + ], + + /* + |-------------------------------------------------------------------------- + | Controllers config + |-------------------------------------------------------------------------- + | + | Here you can specify voyager controller settings + | + */ + + 'controllers' => [ + 'namespace' => 'TCG\\Voyager\\Http\\Controllers', + ], + + /* + |-------------------------------------------------------------------------- + | Models config + |-------------------------------------------------------------------------- + | + | Here you can specify default model namespace when creating BREAD. + | Must include trailing backslashes. If not defined the default application + | namespace will be used. + | + */ + + 'models' => [ + //'namespace' => 'App\\Models\\', + ], + + /* + |-------------------------------------------------------------------------- + | Storage Config + |-------------------------------------------------------------------------- + | + | Here you can specify attributes related to your application file system + | + */ + + 'storage' => [ + 'disk' => 'public', + ], + + /* + |-------------------------------------------------------------------------- + | Media Manager + |-------------------------------------------------------------------------- + | + | Here you can specify if media manager can show hidden files like(.gitignore) + | + */ + + 'hidden_files' => false, + + /* + |-------------------------------------------------------------------------- + | Database Config + |-------------------------------------------------------------------------- + | + | Here you can specify voyager database settings + | + */ + + 'database' => [ + 'tables' => [ + 'hidden' => ['migrations', 'data_rows', 'data_types', 'menu_items', 'password_resets', 'permission_role', 'settings'], + ], + 'autoload_migrations' => true, + ], + + /* + |-------------------------------------------------------------------------- + | Multilingual configuration + |-------------------------------------------------------------------------- + | + | Here you can specify if you want Voyager to ship with support for + | multilingual and what locales are enabled. + | + */ + + 'multilingual' => [ + /* + * Set whether or not the multilingual is supported by the BREAD input. + */ + 'enabled' => false, + + /* + * Select default language + */ + 'default' => 'en', + + /* + * Select languages that are supported. + */ + 'locales' => [ + 'en', + //'pt', + ], + ], + + /* + |-------------------------------------------------------------------------- + | Dashboard config + |-------------------------------------------------------------------------- + | + | Here you can modify some aspects of your dashboard + | + */ + + 'dashboard' => [ + // Add custom list items to navbar's dropdown + 'navbar_items' => [ + 'voyager::generic.profile' => [ + 'route' => 'voyager.profile', + 'classes' => 'class-full-of-rum', + 'icon_class' => 'voyager-person', + ], + 'voyager::generic.home' => [ + 'route' => '/', + 'icon_class' => 'voyager-home', + 'target_blank' => true, + ], + 'voyager::generic.logout' => [ + 'route' => 'voyager.logout', + 'icon_class' => 'voyager-power', + ], + ], + + 'widgets' => [ + 'TCG\\Voyager\\Widgets\\UserDimmer', + 'TCG\\Voyager\\Widgets\\PostDimmer', + 'TCG\\Voyager\\Widgets\\PageDimmer', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Automatic Procedures + |-------------------------------------------------------------------------- + | + | When a change happens on Voyager, we can automate some routines. + | + */ + + 'bread' => [ + // When a BREAD is added, create the Menu item using the BREAD properties. + 'add_menu_item' => true, + + // which menu add item to + 'default_menu' => 'admin', + + // When a BREAD is added, create the related Permission. + 'add_permission' => true, + + // which role add premissions to + 'default_role' => 'admin', + ], + + /* + |-------------------------------------------------------------------------- + | UI Generic Config + |-------------------------------------------------------------------------- + | + | Here you change some of the Voyager UI settings. + | + */ + + 'primary_color' => '#22A7F0', + + 'show_dev_tips' => true, // Show development tip "How To Use:" in Menu and Settings + + // Here you can specify additional assets you would like to be included in the master.blade + 'additional_css' => [ + //'css/custom.css', + ], + + 'additional_js' => [ + //'js/custom.js', + ], + + 'googlemaps' => [ + 'key' => env('GOOGLE_MAPS_KEY', ''), + 'center' => [ + 'lat' => env('GOOGLE_MAPS_DEFAULT_CENTER_LAT', '32.715738'), + 'lng' => env('GOOGLE_MAPS_DEFAULT_CENTER_LNG', '-117.161084'), + ], + 'zoom' => env('GOOGLE_MAPS_DEFAULT_ZOOM', 11), + ], + + // Activate compass when environment is NOT local + 'compass_in_production' => false, + + 'media' => [ + // The allowed mimetypes to be uploaded through the media-manager. + // 'allowed_mimetypes' => '*', //All types can be uploaded + 'allowed_mimetypes' => [ + 'image/jpeg', + 'image/png', + 'image/gif', + 'image/bmp', + 'video/mp4', + ], + //Path for media-manager. Relative to the filesystem. + 'path' => '/', + 'show_folders' => true, + 'allow_upload' => true, + 'allow_move' => true, + 'allow_delete' => true, + 'allow_create_folder' => true, + 'allow_rename' => true, + /*'watermark' => [ + 'source' => 'watermark.png', + 'position' => 'bottom-left', + 'x' => 0, + 'y' => 0, + 'size' => 15, + ], + 'thumbnails' => [ + [ + 'type' => 'fit', + 'name' => 'fit-500', + 'width' => 500, + 'height'=> 500 + ], + ]*/ + ], +]; diff --git a/database/migrations/2016_01_01_000000_create_pages_table.php b/database/migrations/2016_01_01_000000_create_pages_table.php new file mode 100644 index 00000000..042f2b68 --- /dev/null +++ b/database/migrations/2016_01_01_000000_create_pages_table.php @@ -0,0 +1,41 @@ +increments('id'); + $table->integer('author_id'); + $table->string('title'); + $table->text('excerpt')->nullable(); + $table->text('body')->nullable(); + $table->string('image')->nullable(); + $table->string('slug')->unique(); + $table->text('meta_description')->nullable(); + $table->text('meta_keywords')->nullable(); + $table->enum('status', Page::$statuses)->default(Page::STATUS_INACTIVE); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('pages'); + } +} diff --git a/database/migrations/2016_01_01_000000_create_posts_table.php b/database/migrations/2016_01_01_000000_create_posts_table.php new file mode 100644 index 00000000..8e51ab06 --- /dev/null +++ b/database/migrations/2016_01_01_000000_create_posts_table.php @@ -0,0 +1,45 @@ +increments('id'); + $table->integer('author_id'); + $table->integer('category_id')->nullable(); + $table->string('title'); + $table->string('seo_title')->nullable(); + $table->text('excerpt'); + $table->text('body'); + $table->string('image')->nullable(); + $table->string('slug')->unique(); + $table->text('meta_description'); + $table->text('meta_keywords'); + $table->enum('status', ['PUBLISHED', 'DRAFT', 'PENDING'])->default('DRAFT'); + $table->boolean('featured')->default(0); + $table->timestamps(); + + //$table->foreign('author_id')->references('id')->on('users'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('posts'); + } +} diff --git a/database/migrations/2016_02_15_204651_create_categories_table.php b/database/migrations/2016_02_15_204651_create_categories_table.php new file mode 100644 index 00000000..daeb6161 --- /dev/null +++ b/database/migrations/2016_02_15_204651_create_categories_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->integer('parent_id')->unsigned()->nullable()->default(null); + $table->foreign('parent_id')->references('id')->on('categories')->onUpdate('cascade')->onDelete('set null'); + $table->integer('order')->default(1); + $table->string('name'); + $table->string('slug')->unique(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('categories'); + } +} diff --git a/database/migrations/2017_04_11_000000_alter_post_nullable_fields_table.php b/database/migrations/2017_04_11_000000_alter_post_nullable_fields_table.php new file mode 100644 index 00000000..a921b388 --- /dev/null +++ b/database/migrations/2017_04_11_000000_alter_post_nullable_fields_table.php @@ -0,0 +1,39 @@ +getDatabasePlatform(); + $platform->registerDoctrineTypeMapping('enum', 'string'); + + Schema::table('posts', function (Blueprint $table) { + $table->text('excerpt')->nullable()->change(); + $table->text('meta_description')->nullable()->change(); + $table->text('meta_keywords')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('posts', function (Blueprint $table) { + $table->text('excerpt')->change(); + $table->text('meta_description')->change(); + $table->text('meta_keywords')->change(); + }); + } +} diff --git a/database/seeders/CategoriesTableSeeder.php b/database/seeders/CategoriesTableSeeder.php new file mode 100644 index 00000000..8c365107 --- /dev/null +++ b/database/seeders/CategoriesTableSeeder.php @@ -0,0 +1,231 @@ +dataType('name', 'categories'); + if (!$dataType->exists) { + $dataType->fill([ + 'slug' => 'categories', + 'display_name_singular' => __('voyager::seeders.data_types.category.singular'), + 'display_name_plural' => __('voyager::seeders.data_types.category.plural'), + 'icon' => 'voyager-categories', + 'model_name' => 'TCG\\Voyager\\Models\\Category', + 'controller' => '', + 'generate_permissions' => 1, + 'description' => '', + ])->save(); + } + //Data Rows + $categoryDataType = DataType::where('slug', 'categories')->firstOrFail(); + $dataRow = $this->dataRow($categoryDataType, 'id'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'number', + 'display_name' => __('voyager::seeders.data_rows.id'), + 'required' => 1, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 1, + ])->save(); + } + + $dataRow = $this->dataRow($categoryDataType, 'parent_id'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'select_dropdown', + 'display_name' => __('voyager::seeders.data_rows.parent'), + 'required' => 0, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'details' => [ + 'default' => '', + 'null' => '', + 'options' => [ + '' => '-- None --', + ], + 'relationship' => [ + 'key' => 'id', + 'label' => 'name', + ], + ], + 'order' => 2, + ])->save(); + } + + $dataRow = $this->dataRow($categoryDataType, 'order'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.order'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'details' => [ + 'default' => 1, + ], + 'order' => 3, + ])->save(); + } + + $dataRow = $this->dataRow($categoryDataType, 'name'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.name'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 4, + ])->save(); + } + + $dataRow = $this->dataRow($categoryDataType, 'slug'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.slug'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'details' => [ + 'slugify' => [ + 'origin' => 'name', + ], + ], + 'order' => 5, + ])->save(); + } + + $dataRow = $this->dataRow($categoryDataType, 'created_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.created_at'), + 'required' => 0, + 'browse' => 0, + 'read' => 1, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 6, + ])->save(); + } + + $dataRow = $this->dataRow($categoryDataType, 'updated_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.updated_at'), + 'required' => 0, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 7, + ])->save(); + } + + //Menu Item + $menu = Menu::where('name', 'admin')->firstOrFail(); + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.categories'), + 'url' => '', + 'route' => 'voyager.categories.index', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-categories', + 'color' => null, + 'parent_id' => null, + 'order' => 8, + ])->save(); + } + + //Permissions + Permission::generateFor('categories'); + + //Content + $category = Category::firstOrNew([ + 'slug' => 'category-1', + ]); + if (!$category->exists) { + $category->fill([ + 'name' => 'Category 1', + ])->save(); + } + + $category = Category::firstOrNew([ + 'slug' => 'category-2', + ]); + if (!$category->exists) { + $category->fill([ + 'name' => 'Category 2', + ])->save(); + } + } + + /** + * [dataRow description]. + * + * @param [type] $type [description] + * @param [type] $field [description] + * + * @return [type] [description] + */ + protected function dataRow($type, $field) + { + return DataRow::firstOrNew([ + 'data_type_id' => $type->id, + 'field' => $field, + ]); + } + + /** + * [dataType description]. + * + * @param [type] $field [description] + * @param [type] $for [description] + * + * @return [type] [description] + */ + protected function dataType($field, $for) + { + return DataType::firstOrNew([$field => $for]); + } +} diff --git a/database/seeders/DataRowsTableSeeder.php b/database/seeders/DataRowsTableSeeder.php new file mode 100644 index 00000000..262c11d2 --- /dev/null +++ b/database/seeders/DataRowsTableSeeder.php @@ -0,0 +1,372 @@ +firstOrFail(); + $menuDataType = DataType::where('slug', 'menus')->firstOrFail(); + $roleDataType = DataType::where('slug', 'roles')->firstOrFail(); + + $dataRow = $this->dataRow($userDataType, 'id'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'number', + 'display_name' => __('voyager::seeders.data_rows.id'), + 'required' => 1, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 1, + ])->save(); + } + + $dataRow = $this->dataRow($userDataType, 'name'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.name'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 2, + ])->save(); + } + + $dataRow = $this->dataRow($userDataType, 'email'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.email'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 3, + ])->save(); + } + + $dataRow = $this->dataRow($userDataType, 'password'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'password', + 'display_name' => __('voyager::seeders.data_rows.password'), + 'required' => 1, + 'browse' => 0, + 'read' => 0, + 'edit' => 1, + 'add' => 1, + 'delete' => 0, + 'order' => 4, + ])->save(); + } + + $dataRow = $this->dataRow($userDataType, 'remember_token'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.remember_token'), + 'required' => 0, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 5, + ])->save(); + } + + $dataRow = $this->dataRow($userDataType, 'created_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.created_at'), + 'required' => 0, + 'browse' => 1, + 'read' => 1, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 6, + ])->save(); + } + + $dataRow = $this->dataRow($userDataType, 'updated_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.updated_at'), + 'required' => 0, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 7, + ])->save(); + } + + $dataRow = $this->dataRow($userDataType, 'avatar'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'image', + 'display_name' => __('voyager::seeders.data_rows.avatar'), + 'required' => 0, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 8, + ])->save(); + } + + $dataRow = $this->dataRow($userDataType, 'user_belongsto_role_relationship'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'relationship', + 'display_name' => __('voyager::seeders.data_rows.role'), + 'required' => 0, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 0, + 'details' => [ + 'model' => 'TCG\\Voyager\\Models\\Role', + 'table' => 'roles', + 'type' => 'belongsTo', + 'column' => 'role_id', + 'key' => 'id', + 'label' => 'display_name', + 'pivot_table' => 'roles', + 'pivot' => 0, + ], + 'order' => 10, + ])->save(); + } + + $dataRow = $this->dataRow($userDataType, 'user_belongstomany_role_relationship'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'relationship', + 'display_name' => __('voyager::seeders.data_rows.roles'), + 'required' => 0, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 0, + 'details' => [ + 'model' => 'TCG\\Voyager\\Models\\Role', + 'table' => 'roles', + 'type' => 'belongsToMany', + 'column' => 'id', + 'key' => 'id', + 'label' => 'display_name', + 'pivot_table' => 'user_roles', + 'pivot' => '1', + 'taggable' => '0', + ], + 'order' => 11, + ])->save(); + } + + $dataRow = $this->dataRow($userDataType, 'settings'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'hidden', + 'display_name' => 'Settings', + 'required' => 0, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 12, + ])->save(); + } + + $dataRow = $this->dataRow($menuDataType, 'id'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'number', + 'display_name' => __('voyager::seeders.data_rows.id'), + 'required' => 1, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 1, + ])->save(); + } + + $dataRow = $this->dataRow($menuDataType, 'name'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.name'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 2, + ])->save(); + } + + $dataRow = $this->dataRow($menuDataType, 'created_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.created_at'), + 'required' => 0, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 3, + ])->save(); + } + + $dataRow = $this->dataRow($menuDataType, 'updated_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.updated_at'), + 'required' => 0, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 4, + ])->save(); + } + + $dataRow = $this->dataRow($roleDataType, 'id'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'number', + 'display_name' => __('voyager::seeders.data_rows.id'), + 'required' => 1, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 1, + ])->save(); + } + + $dataRow = $this->dataRow($roleDataType, 'name'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.name'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 2, + ])->save(); + } + + $dataRow = $this->dataRow($roleDataType, 'created_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.created_at'), + 'required' => 0, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 3, + ])->save(); + } + + $dataRow = $this->dataRow($roleDataType, 'updated_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.updated_at'), + 'required' => 0, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 4, + ])->save(); + } + + $dataRow = $this->dataRow($roleDataType, 'display_name'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.display_name'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 5, + ])->save(); + } + + $dataRow = $this->dataRow($userDataType, 'role_id'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.role'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 9, + ])->save(); + } + } + + /** + * [dataRow description]. + * + * @param [type] $type [description] + * @param [type] $field [description] + * + * @return [type] [description] + */ + protected function dataRow($type, $field) + { + return DataRow::firstOrNew([ + 'data_type_id' => $type->id, + 'field' => $field, + ]); + } +} diff --git a/database/seeders/DataTypesTableSeeder.php b/database/seeders/DataTypesTableSeeder.php new file mode 100644 index 00000000..52fa50e5 --- /dev/null +++ b/database/seeders/DataTypesTableSeeder.php @@ -0,0 +1,71 @@ +dataType('slug', 'users'); + if (!$dataType->exists) { + $dataType->fill([ + 'name' => 'users', + 'display_name_singular' => __('voyager::seeders.data_types.user.singular'), + 'display_name_plural' => __('voyager::seeders.data_types.user.plural'), + 'icon' => 'voyager-person', + 'model_name' => 'TCG\\Voyager\\Models\\User', + 'policy_name' => 'TCG\\Voyager\\Policies\\UserPolicy', + 'controller' => 'TCG\\Voyager\\Http\\Controllers\\VoyagerUserController', + 'generate_permissions' => 1, + 'description' => '', + ])->save(); + } + + $dataType = $this->dataType('slug', 'menus'); + if (!$dataType->exists) { + $dataType->fill([ + 'name' => 'menus', + 'display_name_singular' => __('voyager::seeders.data_types.menu.singular'), + 'display_name_plural' => __('voyager::seeders.data_types.menu.plural'), + 'icon' => 'voyager-list', + 'model_name' => 'TCG\\Voyager\\Models\\Menu', + 'controller' => '', + 'generate_permissions' => 1, + 'description' => '', + ])->save(); + } + + $dataType = $this->dataType('slug', 'roles'); + if (!$dataType->exists) { + $dataType->fill([ + 'name' => 'roles', + 'display_name_singular' => __('voyager::seeders.data_types.role.singular'), + 'display_name_plural' => __('voyager::seeders.data_types.role.plural'), + 'icon' => 'voyager-lock', + 'model_name' => 'TCG\\Voyager\\Models\\Role', + 'controller' => 'TCG\\Voyager\\Http\\Controllers\\VoyagerRoleController', + 'generate_permissions' => 1, + 'description' => '', + ])->save(); + } + } + + /** + * [dataType description]. + * + * @param [type] $field [description] + * @param [type] $for [description] + * + * @return [type] [description] + */ + protected function dataType($field, $for) + { + return DataType::firstOrNew([$field => $for]); + } +} diff --git a/database/seeders/MenuItemsTableSeeder.php b/database/seeders/MenuItemsTableSeeder.php new file mode 100644 index 00000000..bd1c7970 --- /dev/null +++ b/database/seeders/MenuItemsTableSeeder.php @@ -0,0 +1,179 @@ +firstOrFail(); + + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.dashboard'), + 'url' => '', + 'route' => 'voyager.dashboard', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-boat', + 'color' => null, + 'parent_id' => null, + 'order' => 1, + ])->save(); + } + + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.media'), + 'url' => '', + 'route' => 'voyager.media.index', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-images', + 'color' => null, + 'parent_id' => null, + 'order' => 5, + ])->save(); + } + + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.users'), + 'url' => '', + 'route' => 'voyager.users.index', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-person', + 'color' => null, + 'parent_id' => null, + 'order' => 3, + ])->save(); + } + + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.roles'), + 'url' => '', + 'route' => 'voyager.roles.index', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-lock', + 'color' => null, + 'parent_id' => null, + 'order' => 2, + ])->save(); + } + + $toolsMenuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.tools'), + 'url' => '', + ]); + if (!$toolsMenuItem->exists) { + $toolsMenuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-tools', + 'color' => null, + 'parent_id' => null, + 'order' => 9, + ])->save(); + } + + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.menu_builder'), + 'url' => '', + 'route' => 'voyager.menus.index', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-list', + 'color' => null, + 'parent_id' => $toolsMenuItem->id, + 'order' => 10, + ])->save(); + } + + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.database'), + 'url' => '', + 'route' => 'voyager.database.index', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-data', + 'color' => null, + 'parent_id' => $toolsMenuItem->id, + 'order' => 11, + ])->save(); + } + + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.compass'), + 'url' => '', + 'route' => 'voyager.compass.index', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-compass', + 'color' => null, + 'parent_id' => $toolsMenuItem->id, + 'order' => 12, + ])->save(); + } + + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.bread'), + 'url' => '', + 'route' => 'voyager.bread.index', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-bread', + 'color' => null, + 'parent_id' => $toolsMenuItem->id, + 'order' => 13, + ])->save(); + } + + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.settings'), + 'url' => '', + 'route' => 'voyager.settings.index', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-settings', + 'color' => null, + 'parent_id' => null, + 'order' => 14, + ])->save(); + } + } +} diff --git a/database/seeders/MenusTableSeeder.php b/database/seeders/MenusTableSeeder.php new file mode 100644 index 00000000..9ce5d180 --- /dev/null +++ b/database/seeders/MenusTableSeeder.php @@ -0,0 +1,21 @@ + 'admin', + ]); + } +} diff --git a/database/seeders/PagesTableSeeder.php b/database/seeders/PagesTableSeeder.php new file mode 100644 index 00000000..4b085024 --- /dev/null +++ b/database/seeders/PagesTableSeeder.php @@ -0,0 +1,301 @@ +dataType('slug', 'pages'); + if (!$dataType->exists) { + $dataType->fill([ + 'name' => 'pages', + 'display_name_singular' => __('voyager::seeders.data_types.page.singular'), + 'display_name_plural' => __('voyager::seeders.data_types.page.plural'), + 'icon' => 'voyager-file-text', + 'model_name' => 'TCG\\Voyager\\Models\\Page', + 'controller' => '', + 'generate_permissions' => 1, + 'description' => '', + ])->save(); + } + + //Data Rows + $pageDataType = DataType::where('slug', 'pages')->firstOrFail(); + $dataRow = $this->dataRow($pageDataType, 'id'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'number', + 'display_name' => __('voyager::seeders.data_rows.id'), + 'required' => 1, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 1, + ])->save(); + } + + $dataRow = $this->dataRow($pageDataType, 'author_id'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.author'), + 'required' => 1, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 2, + ])->save(); + } + + $dataRow = $this->dataRow($pageDataType, 'title'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.title'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 3, + ])->save(); + } + + $dataRow = $this->dataRow($pageDataType, 'excerpt'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text_area', + 'display_name' => __('voyager::seeders.data_rows.excerpt'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 4, + ])->save(); + } + + $dataRow = $this->dataRow($pageDataType, 'body'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'rich_text_box', + 'display_name' => __('voyager::seeders.data_rows.body'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 5, + ])->save(); + } + + $dataRow = $this->dataRow($pageDataType, 'slug'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.slug'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'details' => [ + 'slugify' => [ + 'origin' => 'title', + ], + 'validation' => [ + 'rule' => 'unique:pages,slug', + ], + ], + 'order' => 6, + ])->save(); + } + + $dataRow = $this->dataRow($pageDataType, 'meta_description'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.meta_description'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 7, + ])->save(); + } + + $dataRow = $this->dataRow($pageDataType, 'meta_keywords'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.meta_keywords'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 8, + ])->save(); + } + + $dataRow = $this->dataRow($pageDataType, 'status'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'select_dropdown', + 'display_name' => __('voyager::seeders.data_rows.status'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'details' => [ + 'default' => 'INACTIVE', + 'options' => [ + 'INACTIVE' => 'INACTIVE', + 'ACTIVE' => 'ACTIVE', + ], + ], + 'order' => 9, + ])->save(); + } + + $dataRow = $this->dataRow($pageDataType, 'created_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.created_at'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 10, + ])->save(); + } + + $dataRow = $this->dataRow($pageDataType, 'updated_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.updated_at'), + 'required' => 1, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 11, + ])->save(); + } + + $dataRow = $this->dataRow($pageDataType, 'image'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'image', + 'display_name' => __('voyager::seeders.data_rows.page_image'), + 'required' => 0, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 12, + ])->save(); + } + + //Menu Item + $menu = Menu::where('name', 'admin')->firstOrFail(); + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.pages'), + 'url' => '', + 'route' => 'voyager.pages.index', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-file-text', + 'color' => null, + 'parent_id' => null, + 'order' => 7, + ])->save(); + } + + //Permissions + Permission::generateFor('pages'); + //Content + $page = Page::firstOrNew([ + 'slug' => 'hello-world', + ]); + if (!$page->exists) { + $page->fill([ + 'author_id' => 0, + 'title' => 'Hello World', + 'excerpt' => 'Hang the jib grog grog blossom grapple dance the hempen jig gangway pressgang bilge rat to go on account lugger. Nelsons folly gabion line draught scallywag fire ship gaff fluke fathom case shot. Sea Legs bilge rat sloop matey gabion long clothes run a shot across the bow Gold Road cog league.', + 'body' => '
Hello World. Scallywag grog swab Cat o\'nine tails scuttle rigging hardtack cable nipper Yellow Jack. Handsomely spirits knave lad killick landlubber or just lubber deadlights chantey pinnace crack Jennys tea cup. Provost long clothes black spot Yellow Jack bilged on her anchor league lateen sail case shot lee tackle.
+Ballast spirits fluke topmast me quarterdeck schooner landlubber or just lubber gabion belaying pin. Pinnace stern galleon starboard warp carouser to go on account dance the hempen jig jolly boat measured fer yer chains. Man-of-war fire in the hole nipperkin handsomely doubloon barkadeer Brethren of the Coast gibbet driver squiffy.
', + 'image' => 'pages/page1.jpg', + 'meta_description' => 'Yar Meta Description', + 'meta_keywords' => 'Keyword1, Keyword2', + 'status' => 'ACTIVE', + ])->save(); + } + } + + /** + * [dataRow description]. + * + * @param [type] $type [description] + * @param [type] $field [description] + * + * @return [type] [description] + */ + protected function dataRow($type, $field) + { + return DataRow::firstOrNew([ + 'data_type_id' => $type->id, + 'field' => $field, + ]); + } + + /** + * [dataType description]. + * + * @param [type] $field [description] + * @param [type] $for [description] + * + * @return [type] [description] + */ + protected function dataType($field, $for) + { + return DataType::firstOrNew([$field => $for]); + } +} diff --git a/database/seeders/PermissionRoleTableSeeder.php b/database/seeders/PermissionRoleTableSeeder.php new file mode 100644 index 00000000..21b529f4 --- /dev/null +++ b/database/seeders/PermissionRoleTableSeeder.php @@ -0,0 +1,26 @@ +firstOrFail(); + + $permissions = Permission::all(); + + $role->permissions()->sync( + $permissions->pluck('id')->all() + ); + } +} diff --git a/database/seeders/PermissionsTableSeeder.php b/database/seeders/PermissionsTableSeeder.php new file mode 100644 index 00000000..541f5f1c --- /dev/null +++ b/database/seeders/PermissionsTableSeeder.php @@ -0,0 +1,38 @@ + $key, + 'table_name' => null, + ]); + } + + Permission::generateFor('menus'); + + Permission::generateFor('roles'); + + Permission::generateFor('users'); + + Permission::generateFor('settings'); + } +} diff --git a/database/seeders/PostsTableSeeder.php b/database/seeders/PostsTableSeeder.php new file mode 100644 index 00000000..e783bbf8 --- /dev/null +++ b/database/seeders/PostsTableSeeder.php @@ -0,0 +1,439 @@ +dataType('slug', 'posts'); + if (!$dataType->exists) { + $dataType->fill([ + 'name' => 'posts', + 'display_name_singular' => __('voyager::seeders.data_types.post.singular'), + 'display_name_plural' => __('voyager::seeders.data_types.post.plural'), + 'icon' => 'voyager-news', + 'model_name' => 'TCG\\Voyager\\Models\\Post', + 'policy_name' => 'TCG\\Voyager\\Policies\\PostPolicy', + 'controller' => '', + 'generate_permissions' => 1, + 'description' => '', + ])->save(); + } + + //Data Rows + $postDataType = DataType::where('slug', 'posts')->firstOrFail(); + $dataRow = $this->dataRow($postDataType, 'id'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'number', + 'display_name' => __('voyager::seeders.data_rows.id'), + 'required' => 1, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 1, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'author_id'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.author'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 0, + 'delete' => 1, + 'order' => 2, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'category_id'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.category'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 0, + 'order' => 3, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'title'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.title'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 4, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'excerpt'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text_area', + 'display_name' => __('voyager::seeders.data_rows.excerpt'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 5, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'body'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'rich_text_box', + 'display_name' => __('voyager::seeders.data_rows.body'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 6, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'image'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'image', + 'display_name' => __('voyager::seeders.data_rows.post_image'), + 'required' => 0, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'details' => [ + 'resize' => [ + 'width' => '1000', + 'height' => 'null', + ], + 'quality' => '70%', + 'upsize' => true, + 'thumbnails' => [ + [ + 'name' => 'medium', + 'scale' => '50%', + ], + [ + 'name' => 'small', + 'scale' => '25%', + ], + [ + 'name' => 'cropped', + 'crop' => [ + 'width' => '300', + 'height' => '250', + ], + ], + ], + ], + 'order' => 7, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'slug'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.slug'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'details' => [ + 'slugify' => [ + 'origin' => 'title', + 'forceUpdate' => true, + ], + 'validation' => [ + 'rule' => 'unique:posts,slug', + ], + ], + 'order' => 8, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'meta_description'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text_area', + 'display_name' => __('voyager::seeders.data_rows.meta_description'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 9, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'meta_keywords'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text_area', + 'display_name' => __('voyager::seeders.data_rows.meta_keywords'), + 'required' => 1, + 'browse' => 0, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 10, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'status'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'select_dropdown', + 'display_name' => __('voyager::seeders.data_rows.status'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'details' => [ + 'default' => 'DRAFT', + 'options' => [ + 'PUBLISHED' => 'published', + 'DRAFT' => 'draft', + 'PENDING' => 'pending', + ], + ], + 'order' => 11, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'created_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.created_at'), + 'required' => 0, + 'browse' => 1, + 'read' => 1, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 12, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'updated_at'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'timestamp', + 'display_name' => __('voyager::seeders.data_rows.updated_at'), + 'required' => 0, + 'browse' => 0, + 'read' => 0, + 'edit' => 0, + 'add' => 0, + 'delete' => 0, + 'order' => 13, + ])->save(); + } + + $dataRow = $this->dataRow($postDataType, 'seo_title'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'text', + 'display_name' => __('voyager::seeders.data_rows.seo_title'), + 'required' => 0, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 14, + ])->save(); + } + $dataRow = $this->dataRow($postDataType, 'featured'); + if (!$dataRow->exists) { + $dataRow->fill([ + 'type' => 'checkbox', + 'display_name' => __('voyager::seeders.data_rows.featured'), + 'required' => 1, + 'browse' => 1, + 'read' => 1, + 'edit' => 1, + 'add' => 1, + 'delete' => 1, + 'order' => 15, + ])->save(); + } + + //Menu Item + $menu = Menu::where('name', 'admin')->firstOrFail(); + $menuItem = MenuItem::firstOrNew([ + 'menu_id' => $menu->id, + 'title' => __('voyager::seeders.menu_items.posts'), + 'url' => '', + 'route' => 'voyager.posts.index', + ]); + if (!$menuItem->exists) { + $menuItem->fill([ + 'target' => '_self', + 'icon_class' => 'voyager-news', + 'color' => null, + 'parent_id' => null, + 'order' => 6, + ])->save(); + } + + //Permissions + Permission::generateFor('posts'); + + //Content + $post = $this->findPost('lorem-ipsum-post'); + if (!$post->exists) { + $post->fill([ + 'title' => 'Lorem Ipsum Post', + 'author_id' => 0, + 'seo_title' => null, + 'excerpt' => 'This is the excerpt for the Lorem Ipsum Post', + 'body' => 'This is the body of the lorem ipsum post
', + 'image' => 'posts/post1.jpg', + 'slug' => 'lorem-ipsum-post', + 'meta_description' => 'This is the meta description', + 'meta_keywords' => 'keyword1, keyword2, keyword3', + 'status' => 'PUBLISHED', + 'featured' => 0, + ])->save(); + } + + $post = $this->findPost('my-sample-post'); + if (!$post->exists) { + $post->fill([ + 'title' => 'My Sample Post', + 'author_id' => 0, + 'seo_title' => null, + 'excerpt' => 'This is the excerpt for the sample Post', + 'body' => 'This is the body for the sample post, which includes the body.
+And include a bunch of other stuff.
', + 'image' => 'posts/post2.jpg', + 'slug' => 'my-sample-post', + 'meta_description' => 'Meta Description for sample post', + 'meta_keywords' => 'keyword1, keyword2, keyword3', + 'status' => 'PUBLISHED', + 'featured' => 0, + ])->save(); + } + + $post = $this->findPost('latest-post'); + if (!$post->exists) { + $post->fill([ + 'title' => 'Latest Post', + 'author_id' => 0, + 'seo_title' => null, + 'excerpt' => 'This is the excerpt for the latest post', + 'body' => 'This is the body for the latest post
', + 'image' => 'posts/post3.jpg', + 'slug' => 'latest-post', + 'meta_description' => 'This is the meta description', + 'meta_keywords' => 'keyword1, keyword2, keyword3', + 'status' => 'PUBLISHED', + 'featured' => 0, + ])->save(); + } + + $post = $this->findPost('yarr-post'); + if (!$post->exists) { + $post->fill([ + 'title' => 'Yarr Post', + 'author_id' => 0, + 'seo_title' => null, + 'excerpt' => 'Reef sails nipperkin bring a spring upon her cable coffer jury mast spike marooned Pieces of Eight poop deck pillage. Clipper driver coxswain galleon hempen halter come about pressgang gangplank boatswain swing the lead. Nipperkin yard skysail swab lanyard Blimey bilge water ho quarter Buccaneer.', + 'body' => 'Swab deadlights Buccaneer fire ship square-rigged dance the hempen jig weigh anchor cackle fruit grog furl. Crack Jennys tea cup chase guns pressgang hearties spirits hogshead Gold Road six pounders fathom measured fer yer chains. Main sheet provost come about trysail barkadeer crimp scuttle mizzenmast brig plunder.
+Mizzen league keelhaul galleon tender cog chase Barbary Coast doubloon crack Jennys tea cup. Blow the man down lugsail fire ship pinnace cackle fruit line warp Admiral of the Black strike colors doubloon. Tackle Jack Ketch come about crimp rum draft scuppers run a shot across the bow haul wind maroon.
+Interloper heave down list driver pressgang holystone scuppers tackle scallywag bilged on her anchor. Jack Tar interloper draught grapple mizzenmast hulk knave cable transom hogshead. Gaff pillage to go on account grog aft chase guns piracy yardarm knave clap of thunder.
', + 'image' => 'posts/post4.jpg', + 'slug' => 'yarr-post', + 'meta_description' => 'this be a meta descript', + 'meta_keywords' => 'keyword1, keyword2, keyword3', + 'status' => 'PUBLISHED', + 'featured' => 0, + ])->save(); + } + } + + /** + * [post description]. + * + * @param [type] $slug [description] + * + * @return [type] [description] + */ + protected function findPost($slug) + { + return Post::firstOrNew(['slug' => $slug]); + } + + /** + * [dataRow description]. + * + * @param [type] $type [description] + * @param [type] $field [description] + * + * @return [type] [description] + */ + protected function dataRow($type, $field) + { + return DataRow::firstOrNew([ + 'data_type_id' => $type->id, + 'field' => $field, + ]); + } + + /** + * [dataType description]. + * + * @param [type] $field [description] + * @param [type] $for [description] + * + * @return [type] [description] + */ + protected function dataType($field, $for) + { + return DataType::firstOrNew([$field => $for]); + } +} diff --git a/database/seeders/RolesTableSeeder.php b/database/seeders/RolesTableSeeder.php new file mode 100644 index 00000000..dc084977 --- /dev/null +++ b/database/seeders/RolesTableSeeder.php @@ -0,0 +1,29 @@ + 'admin']); + if (!$role->exists) { + $role->fill([ + 'display_name' => __('voyager::seeders.roles.admin'), + ])->save(); + } + + $role = Role::firstOrNew(['name' => 'user']); + if (!$role->exists) { + $role->fill([ + 'display_name' => __('voyager::seeders.roles.user'), + ])->save(); + } + } +} diff --git a/database/seeders/SettingsTableSeeder.php b/database/seeders/SettingsTableSeeder.php new file mode 100644 index 00000000..09b27bca --- /dev/null +++ b/database/seeders/SettingsTableSeeder.php @@ -0,0 +1,147 @@ +findSetting('site.title'); + if (!$setting->exists) { + $setting->fill([ + 'display_name' => __('voyager::seeders.settings.site.title'), + 'value' => __('voyager::seeders.settings.site.title'), + 'details' => '', + 'type' => 'text', + 'order' => 1, + 'group' => 'Site', + ])->save(); + } + + $setting = $this->findSetting('site.description'); + if (!$setting->exists) { + $setting->fill([ + 'display_name' => __('voyager::seeders.settings.site.description'), + 'value' => __('voyager::seeders.settings.site.description'), + 'details' => '', + 'type' => 'text', + 'order' => 2, + 'group' => 'Site', + ])->save(); + } + + $setting = $this->findSetting('site.logo'); + if (!$setting->exists) { + $setting->fill([ + 'display_name' => __('voyager::seeders.settings.site.logo'), + 'value' => '', + 'details' => '', + 'type' => 'image', + 'order' => 3, + 'group' => 'Site', + ])->save(); + } + + $setting = $this->findSetting('site.google_analytics_tracking_id'); + if (!$setting->exists) { + $setting->fill([ + 'display_name' => __('voyager::seeders.settings.site.google_analytics_tracking_id'), + 'value' => '', + 'details' => '', + 'type' => 'text', + 'order' => 4, + 'group' => 'Site', + ])->save(); + } + + $setting = $this->findSetting('admin.bg_image'); + if (!$setting->exists) { + $setting->fill([ + 'display_name' => __('voyager::seeders.settings.admin.background_image'), + 'value' => '', + 'details' => '', + 'type' => 'image', + 'order' => 5, + 'group' => 'Admin', + ])->save(); + } + + $setting = $this->findSetting('admin.title'); + if (!$setting->exists) { + $setting->fill([ + 'display_name' => __('voyager::seeders.settings.admin.title'), + 'value' => 'Voyager', + 'details' => '', + 'type' => 'text', + 'order' => 1, + 'group' => 'Admin', + ])->save(); + } + + $setting = $this->findSetting('admin.description'); + if (!$setting->exists) { + $setting->fill([ + 'display_name' => __('voyager::seeders.settings.admin.description'), + 'value' => __('voyager::seeders.settings.admin.description_value'), + 'details' => '', + 'type' => 'text', + 'order' => 2, + 'group' => 'Admin', + ])->save(); + } + + $setting = $this->findSetting('admin.loader'); + if (!$setting->exists) { + $setting->fill([ + 'display_name' => __('voyager::seeders.settings.admin.loader'), + 'value' => '', + 'details' => '', + 'type' => 'image', + 'order' => 3, + 'group' => 'Admin', + ])->save(); + } + + $setting = $this->findSetting('admin.icon_image'); + if (!$setting->exists) { + $setting->fill([ + 'display_name' => __('voyager::seeders.settings.admin.icon_image'), + 'value' => '', + 'details' => '', + 'type' => 'image', + 'order' => 4, + 'group' => 'Admin', + ])->save(); + } + + $setting = $this->findSetting('admin.google_analytics_client_id'); + if (!$setting->exists) { + $setting->fill([ + 'display_name' => __('voyager::seeders.settings.admin.google_analytics_client_id'), + 'value' => '', + 'details' => '', + 'type' => 'text', + 'order' => 1, + 'group' => 'Admin', + ])->save(); + } + } + + /** + * [setting description]. + * + * @param [type] $key [description] + * + * @return [type] [description] + */ + protected function findSetting($key) + { + return Setting::firstOrNew(['key' => $key]); + } +} diff --git a/database/seeders/TranslationsTableSeeder.php b/database/seeders/TranslationsTableSeeder.php new file mode 100644 index 00000000..fff73d3f --- /dev/null +++ b/database/seeders/TranslationsTableSeeder.php @@ -0,0 +1,233 @@ +dataTypesTranslations(); + $this->categoriesTranslations(); + $this->pagesTranslations(); + $this->menusTranslations(); + } + + /** + * Auto generate Categories Translations. + * + * @return void + */ + private function categoriesTranslations() + { + // Adding translations for 'categories' + // + $cat = Category::where('slug', 'category-1')->firstOrFail(); + if ($cat->exists) { + $this->trans('pt', $this->arr(['categories', 'slug'], $cat->id), 'categoria-1'); + $this->trans('pt', $this->arr(['categories', 'name'], $cat->id), 'Categoria 1'); + } + $cat = Category::where('slug', 'category-2')->firstOrFail(); + if ($cat->exists) { + $this->trans('pt', $this->arr(['categories', 'slug'], $cat->id), 'categoria-2'); + $this->trans('pt', $this->arr(['categories', 'name'], $cat->id), 'Categoria 2'); + } + } + + /** + * Auto generate DataTypes Translations. + * + * @return void + */ + private function dataTypesTranslations() + { + // Adding translations for 'display_name_singular' + // + $_fld = 'display_name_singular'; + $_tpl = ['data_types', $_fld]; + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.post.singular'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Post'); + } + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.page.singular'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Página'); + } + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.user.singular'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Utilizador'); + } + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.category.singular'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Categoria'); + } + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.menu.singular'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Menu'); + } + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.role.singular'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Função'); + } + + // Adding translations for 'display_name_plural' + // + $_fld = 'display_name_plural'; + $_tpl = ['data_types', $_fld]; + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.post.plural'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Posts'); + } + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.page.plural'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Páginas'); + } + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.user.plural'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Utilizadores'); + } + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.category.plural'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Categorias'); + } + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.menu.plural'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Menus'); + } + $dtp = DataType::where($_fld, __('voyager::seeders.data_types.role.plural'))->firstOrFail(); + if ($dtp->exists) { + $this->trans('pt', $this->arr($_tpl, $dtp->id), 'Funções'); + } + } + + /** + * Auto generate Pages Translations. + * + * @return void + */ + private function pagesTranslations() + { + $page = Page::where('slug', 'hello-world')->firstOrFail(); + if ($page->exists) { + $_arr = $this->arr(['pages', 'title'], $page->id); + $this->trans('pt', $_arr, 'Olá Mundo'); + /** + * For configuring additional languages use it e.g. + * + * ``` + * $this->trans('es', $_arr, 'hola-mundo'); + * $this->trans('de', $_arr, 'hallo-welt'); + * ``` + */ + $_arr = $this->arr(['pages', 'slug'], $page->id); + $this->trans('pt', $_arr, 'ola-mundo'); + + $_arr = $this->arr(['pages', 'body'], $page->id); + $this->trans('pt', $_arr, 'Olá Mundo. Scallywag grog swab Cat o\'nine tails scuttle rigging hardtack cable nipper Yellow Jack. Handsomely spirits knave lad killick landlubber or just lubber deadlights chantey pinnace crack Jennys tea cup. Provost long clothes black spot Yellow Jack bilged on her anchor league lateen sail case shot lee tackle.
' + ."\r\n".'Ballast spirits fluke topmast me quarterdeck schooner landlubber or just lubber gabion belaying pin. Pinnace stern galleon starboard warp carouser to go on account dance the hempen jig jolly boat measured fer yer chains. Man-of-war fire in the hole nipperkin handsomely doubloon barkadeer Brethren of the Coast gibbet driver squiffy.
'); + } + } + + /** + * Auto generate Menus Translations. + * + * @return void + */ + private function menusTranslations() + { + $_tpl = ['menu_items', 'title']; + $_item = $this->findMenuItem(__('voyager::seeders.menu_items.dashboard')); + if ($_item->exists) { + $this->trans('pt', $this->arr($_tpl, $_item->id), 'Painel de Controle'); + } + + $_item = $this->findMenuItem(__('voyager::seeders.menu_items.media')); + if ($_item->exists) { + $this->trans('pt', $this->arr($_tpl, $_item->id), 'Media'); + } + + $_item = $this->findMenuItem(__('voyager::seeders.menu_items.posts')); + if ($_item->exists) { + $this->trans('pt', $this->arr($_tpl, $_item->id), 'Publicações'); + } + + $_item = $this->findMenuItem(__('voyager::seeders.menu_items.users')); + if ($_item->exists) { + $this->trans('pt', $this->arr($_tpl, $_item->id), 'Utilizadores'); + } + + $_item = $this->findMenuItem(__('voyager::seeders.menu_items.categories')); + if ($_item->exists) { + $this->trans('pt', $this->arr($_tpl, $_item->id), 'Categorias'); + } + + $_item = $this->findMenuItem(__('voyager::seeders.menu_items.pages')); + if ($_item->exists) { + $this->trans('pt', $this->arr($_tpl, $_item->id), 'Páginas'); + } + + $_item = $this->findMenuItem(__('voyager::seeders.menu_items.roles')); + if ($_item->exists) { + $this->trans('pt', $this->arr($_tpl, $_item->id), 'Funções'); + } + + $_item = $this->findMenuItem(__('voyager::seeders.menu_items.tools')); + if ($_item->exists) { + $this->trans('pt', $this->arr($_tpl, $_item->id), 'Ferramentas'); + } + + $_item = $this->findMenuItem(__('voyager::seeders.menu_items.menu_builder')); + if ($_item->exists) { + $this->trans('pt', $this->arr($_tpl, $_item->id), 'Menus'); + } + + $_item = $this->findMenuItem(__('voyager::seeders.menu_items.database')); + if ($_item->exists) { + $this->trans('pt', $this->arr($_tpl, $_item->id), 'Base de dados'); + } + + $_item = $this->findMenuItem(__('voyager::seeders.menu_items.settings')); + if ($_item->exists) { + $this->trans('pt', $this->arr($_tpl, $_item->id), 'Configurações'); + } + } + + private function findMenuItem($title) + { + return MenuItem::where('title', $title)->firstOrFail(); + } + + private function arr($par, $id) + { + return [ + 'table_name' => $par[0], + 'column_name' => $par[1], + 'foreign_key' => $id, + ]; + } + + private function trans($lang, $keys, $value) + { + $_t = Translation::firstOrNew(array_merge($keys, [ + 'locale' => $lang, + ])); + + if (!$_t->exists) { + $_t->fill(array_merge( + $keys, + ['value' => $value] + ))->save(); + } + } +} diff --git a/database/seeders/UsersTableSeeder.php b/database/seeders/UsersTableSeeder.php new file mode 100644 index 00000000..b1375c31 --- /dev/null +++ b/database/seeders/UsersTableSeeder.php @@ -0,0 +1,31 @@ +firstOrFail(); + + User::create([ + 'name' => 'Admin', + 'email' => 'admin@admin.com', + 'password' => bcrypt('password'), + 'remember_token' => Str::random(60), + 'role_id' => $role->id, + ]); + } + } +} diff --git a/database/seeders/VoyagerDatabaseSeeder.php b/database/seeders/VoyagerDatabaseSeeder.php new file mode 100644 index 00000000..ff8d68cd --- /dev/null +++ b/database/seeders/VoyagerDatabaseSeeder.php @@ -0,0 +1,27 @@ +call([ + DataTypesTableSeeder::class, + DataRowsTableSeeder::class, + MenusTableSeeder::class, + MenuItemsTableSeeder::class, + RolesTableSeeder::class, + PermissionsTableSeeder::class, + PermissionRoleTableSeeder::class, + SettingsTableSeeder::class, + ]); + } +} diff --git a/database/seeders/VoyagerDummyDatabaseSeeder.php b/database/seeders/VoyagerDummyDatabaseSeeder.php new file mode 100644 index 00000000..228b8c45 --- /dev/null +++ b/database/seeders/VoyagerDummyDatabaseSeeder.php @@ -0,0 +1,25 @@ +call([ + CategoriesTableSeeder::class, + UsersTableSeeder::class, + PostsTableSeeder::class, + PagesTableSeeder::class, + TranslationsTableSeeder::class, + PermissionRoleTableSeeder::class, + ]); + } +} diff --git a/package.json b/package.json index a030d3f1..3f91e824 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,6 @@ "postcss": "8.4.13", "webpack": "5.72.1" }, - "version": "1.1.0", + "version": "1.1.1", "packageManager": "yarn@3.2.1" } diff --git a/routes/web.php b/routes/web.php index b1303973..c919a068 100644 --- a/routes/web.php +++ b/routes/web.php @@ -16,3 +16,8 @@ Route::get('/', function () { return view('welcome'); }); + + +Route::group(['prefix' => 'voyager'], function () { + Voyager::routes(); +});