diff --git a/.gitignore b/.gitignore
index 297959a..cf04c4f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,8 @@
node_modules/
npm-debug.log
yarn-error.log
+.DS_Store
+yarn.lock
# Laravel 4 specific
bootstrap/compiled.php
diff --git a/README.md b/README.md
index 78cb57e..b0090f0 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,4 @@
-# nova-cms-portfolio
\ No newline at end of file
+# Kraenk Nova CMS
+
+Still under construction. Not ready for use yet!!!
+
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..a009414
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,54 @@
+{
+ "name": "kraenkvisuell/nova-cms-portfolio",
+ "description": "Portfolio Package for Laravel Nova CMS",
+ "keywords": [
+ "laravel",
+ "nova",
+ "portfolio",
+ "cms"
+ ],
+ "license": "MIT",
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://nova.laravel.com"
+ }
+ ],
+ "require": {
+ "php": "^7.3.0|^8.0",
+ "kraenkvisuell/belongs-to-many-field": "^2.0",
+ "manogi/nova-tiptap": "^1.0",
+ "optimistdigital/nova-multiselect-field": "^2.1",
+ "optimistdigital/nova-sortable": "^2.2",
+ "owenmelbz/nova-radio-field": "^1.0",
+ "timothyasp/nova-color-field": "^1.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "Kraenkvisuell\\NovaCmsPortfolio\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Kraenkvisuell\\NovaCmsPortfolio\\Tests\\": "tests"
+ }
+ },
+ "config": {
+ "sort-packages": true
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "require-dev": {
+ "laravel/nova": "~3.0",
+ "kraenkvisuell/nova-cms": "*",
+ "orchestra/testbench": "^6.0",
+ "phpunit/phpunit": "^9.2"
+ },
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Kraenkvisuell\\NovaCmsPortfolio\\NovaCmsPortfolioServiceProvider"
+ ]
+ }
+ }
+}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..57df723
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,9575 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "c67be3e5bf7ac3701bb133f2323d9b6d",
+ "packages": [
+ {
+ "name": "brick/math",
+ "version": "0.9.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/brick/math.git",
+ "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/brick/math/zipball/dff976c2f3487d42c1db75a3b180e2b9f0e72ce0",
+ "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
+ "vimeo/psalm": "4.3.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Brick\\Math\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Arbitrary-precision arithmetic library",
+ "keywords": [
+ "Arbitrary-precision",
+ "BigInteger",
+ "BigRational",
+ "arithmetic",
+ "bigdecimal",
+ "bignum",
+ "brick",
+ "math"
+ ],
+ "support": {
+ "issues": "https://github.com/brick/math/issues",
+ "source": "https://github.com/brick/math/tree/0.9.2"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/brick/math",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-20T22:51:39+00:00"
+ },
+ {
+ "name": "brick/money",
+ "version": "0.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/brick/money.git",
+ "reference": "f5a372df99c17c805c6816b3057eb057a357735c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/brick/money/zipball/f5a372df99c17c805c6816b3057eb057a357735c",
+ "reference": "f5a372df99c17c805c6816b3057eb057a357735c",
+ "shasum": ""
+ },
+ "require": {
+ "brick/math": "~0.7.3 || ~0.8.0 || ~0.9.0",
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "brick/varexporter": "~0.2.1",
+ "ext-dom": "*",
+ "ext-pdo": "*",
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpunit/phpunit": "^7.5.15 || ^8.0 || ^9.0",
+ "vimeo/psalm": "4.6.4"
+ },
+ "suggest": {
+ "ext-intl": "Required to format Money objects"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Brick\\Money\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Money and currency library",
+ "keywords": [
+ "brick",
+ "currency",
+ "money"
+ ],
+ "support": {
+ "issues": "https://github.com/brick/money/issues",
+ "source": "https://github.com/brick/money/tree/0.5.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/BenMorel",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/brick/money",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-04-03T20:56:48+00:00"
+ },
+ {
+ "name": "cakephp/chronos",
+ "version": "2.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cakephp/chronos.git",
+ "reference": "1d187c71587c97520c00491f626e0f255144953e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cakephp/chronos/zipball/1d187c71587c97520c00491f626e0f255144953e",
+ "reference": "1d187c71587c97520c00491f626e0f255144953e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "cakephp/cakephp-codesniffer": "^4.0",
+ "phpunit/phpunit": "^8.0 || ^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cake\\Chronos\\": "src/"
+ },
+ "files": [
+ "src/carbon_compat.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brian Nesbitt",
+ "email": "brian@nesbot.com",
+ "homepage": "http://nesbot.com"
+ },
+ {
+ "name": "The CakePHP Team",
+ "homepage": "http://cakephp.org"
+ }
+ ],
+ "description": "A simple API extension for DateTime.",
+ "homepage": "http://cakephp.org",
+ "keywords": [
+ "date",
+ "datetime",
+ "time"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/cakephp",
+ "issues": "https://github.com/cakephp/chronos/issues",
+ "source": "https://github.com/cakephp/chronos"
+ },
+ "time": "2021-04-07T01:06:46+00:00"
+ },
+ {
+ "name": "doctrine/cache",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/cache.git",
+ "reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/a9c1b59eba5a08ca2770a76eddb88922f504e8e0",
+ "reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/common": ">2.2,<2.4",
+ "psr/cache": ">=3"
+ },
+ "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",
+ "symfony/cache": "^4.4 || ^5.2"
+ },
+ "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/1.11.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-04-13T14:46:17+00:00"
+ },
+ {
+ "name": "doctrine/dbal",
+ "version": "2.13.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/dbal.git",
+ "reference": "c800380457948e65bbd30ba92cc17cda108bf8c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/c800380457948e65bbd30ba92cc17cda108bf8c9",
+ "reference": "c800380457948e65bbd30ba92cc17cda108bf8c9",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/cache": "^1.0",
+ "doctrine/deprecations": "^0.5.3",
+ "doctrine/event-manager": "^1.0",
+ "ext-pdo": "*",
+ "php": "^7.1 || ^8"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "8.2.0",
+ "jetbrains/phpstorm-stubs": "2020.2",
+ "phpstan/phpstan": "0.12.81",
+ "phpunit/phpunit": "^7.5.20|^8.5|9.5.0",
+ "squizlabs/php_codesniffer": "3.6.0",
+ "symfony/console": "^2.0.5|^3.0|^4.0|^5.0",
+ "vimeo/psalm": "4.6.4"
+ },
+ "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.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%2Fdbal",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-04-17T17:30:19+00:00"
+ },
+ {
+ "name": "doctrine/deprecations",
+ "version": "v0.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/deprecations.git",
+ "reference": "9504165960a1f83cc1480e2be1dd0a0478561314"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314",
+ "reference": "9504165960a1f83cc1480e2be1dd0a0478561314",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1|^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0|^7.0|^8.0",
+ "phpunit/phpunit": "^7.0|^8.0|^9.0",
+ "psr/log": "^1.0"
+ },
+ "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/v0.5.3"
+ },
+ "time": "2021-03-21T12:59:47+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.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210",
+ "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^7.0",
+ "phpstan/phpstan": "^0.11",
+ "phpstan/phpstan-phpunit": "^0.11",
+ "phpstan/phpstan-strict-rules": "^0.11",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+ "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+ "keywords": [
+ "inflection",
+ "inflector",
+ "lowercase",
+ "manipulation",
+ "php",
+ "plural",
+ "singular",
+ "strings",
+ "uppercase",
+ "words"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/inflector/issues",
+ "source": "https://github.com/doctrine/inflector/tree/2.0.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%2Finflector",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-29T15:13:26+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
+ "reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "phpstan/phpstan": "^0.11.8",
+ "phpunit/phpunit": "^8.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "https://www.doctrine-project.org/projects/lexer.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "lexer",
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/lexer/issues",
+ "source": "https://github.com/doctrine/lexer/tree/1.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-05-25T17:44:05+00:00"
+ },
+ {
+ "name": "dragonmantank/cron-expression",
+ "version": "v3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dragonmantank/cron-expression.git",
+ "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c",
+ "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2|^8.0",
+ "webmozart/assert": "^1.7.0"
+ },
+ "replace": {
+ "mtdowling/cron-expression": "^1.0"
+ },
+ "require-dev": {
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-webmozart-assert": "^0.12.7",
+ "phpunit/phpunit": "^7.0|^8.0|^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cron\\": "src/Cron/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Tankersley",
+ "email": "chris@ctankersley.com",
+ "homepage": "https://github.com/dragonmantank"
+ }
+ ],
+ "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
+ "keywords": [
+ "cron",
+ "schedule"
+ ],
+ "support": {
+ "issues": "https://github.com/dragonmantank/cron-expression/issues",
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/dragonmantank",
+ "type": "github"
+ }
+ ],
+ "time": "2020-11-24T19:55:57+00:00"
+ },
+ {
+ "name": "egulias/email-validator",
+ "version": "2.1.25",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/egulias/EmailValidator.git",
+ "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4",
+ "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "^1.0.1",
+ "php": ">=5.5",
+ "symfony/polyfill-intl-idn": "^1.10"
+ },
+ "require-dev": {
+ "dominicsayers/isemail": "^3.0.7",
+ "phpunit/phpunit": "^4.8.36|^7.5.15",
+ "satooshi/php-coveralls": "^1.0.1"
+ },
+ "suggest": {
+ "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Egulias\\EmailValidator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Eduardo Gulias Davis"
+ }
+ ],
+ "description": "A library for validating emails against several RFCs",
+ "homepage": "https://github.com/egulias/EmailValidator",
+ "keywords": [
+ "email",
+ "emailvalidation",
+ "emailvalidator",
+ "validation",
+ "validator"
+ ],
+ "support": {
+ "issues": "https://github.com/egulias/EmailValidator/issues",
+ "source": "https://github.com/egulias/EmailValidator/tree/2.1.25"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/egulias",
+ "type": "github"
+ }
+ ],
+ "time": "2020-12-29T14:50:06+00:00"
+ },
+ {
+ "name": "graham-campbell/result-type",
+ "version": "v1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/GrahamCampbell/Result-Type.git",
+ "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/7e279d2cd5d7fbb156ce46daada972355cea27bb",
+ "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0|^8.0",
+ "phpoption/phpoption": "^1.7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.5|^7.5|^8.5|^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GrahamCampbell\\ResultType\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com"
+ }
+ ],
+ "description": "An Implementation Of The Result Type",
+ "keywords": [
+ "Graham Campbell",
+ "GrahamCampbell",
+ "Result Type",
+ "Result-Type",
+ "result"
+ ],
+ "support": {
+ "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-04-13T13:17:36+00:00"
+ },
+ {
+ "name": "hamcrest/hamcrest-php",
+ "version": "v2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3|^7.0|^8.0"
+ },
+ "replace": {
+ "cordoval/hamcrest-php": "*",
+ "davedevelopment/hamcrest-php": "*",
+ "kodova/hamcrest-php": "*"
+ },
+ "require-dev": {
+ "phpunit/php-file-iterator": "^1.4 || ^2.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "hamcrest"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "This is the PHP port of Hamcrest Matchers",
+ "keywords": [
+ "test"
+ ],
+ "support": {
+ "issues": "https://github.com/hamcrest/hamcrest-php/issues",
+ "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
+ },
+ "time": "2020-07-09T08:09:16+00:00"
+ },
+ {
+ "name": "kraenkvisuell/belongs-to-many-field",
+ "version": "v2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kraenkvisuell/belongs-to-many-field-nova.git",
+ "reference": "2ebcf3b6f03ecf5bdfd5934134a4694362ecd959"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kraenkvisuell/belongs-to-many-field-nova/zipball/2ebcf3b6f03ecf5bdfd5934134a4694362ecd959",
+ "reference": "2ebcf3b6f03ecf5bdfd5934134a4694362ecd959",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Kraenkvisuell\\BelongsToManyField\\FieldServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Kraenkvisuell\\BelongsToManyField\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "belongsToMany nova representation in field.",
+ "keywords": [
+ "Many to Many Field",
+ "belongsToMany",
+ "laravel",
+ "nova"
+ ],
+ "support": {
+ "source": "https://github.com/kraenkvisuell/belongs-to-many-field-nova/tree/v2.0"
+ },
+ "time": "2021-05-17T10:41:43+00:00"
+ },
+ {
+ "name": "laravel/framework",
+ "version": "v8.41.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/framework.git",
+ "reference": "05417155d886df8710e55c84e12622b52d83c47c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/05417155d886df8710e55c84e12622b52d83c47c",
+ "reference": "05417155d886df8710e55c84e12622b52d83c47c",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/inflector": "^1.4|^2.0",
+ "dragonmantank/cron-expression": "^3.0.2",
+ "egulias/email-validator": "^2.1.10",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-openssl": "*",
+ "league/commonmark": "^1.3",
+ "league/flysystem": "^1.1",
+ "monolog/monolog": "^2.0",
+ "nesbot/carbon": "^2.31",
+ "opis/closure": "^3.6",
+ "php": "^7.3|^8.0",
+ "psr/container": "^1.0",
+ "psr/simple-cache": "^1.0",
+ "ramsey/uuid": "^4.0",
+ "swiftmailer/swiftmailer": "^6.0",
+ "symfony/console": "^5.1.4",
+ "symfony/error-handler": "^5.1.4",
+ "symfony/finder": "^5.1.4",
+ "symfony/http-foundation": "^5.1.4",
+ "symfony/http-kernel": "^5.1.4",
+ "symfony/mime": "^5.1.4",
+ "symfony/process": "^5.1.4",
+ "symfony/routing": "^5.1.4",
+ "symfony/var-dumper": "^5.1.4",
+ "tijsverkoyen/css-to-inline-styles": "^2.2.2",
+ "vlucas/phpdotenv": "^5.2",
+ "voku/portable-ascii": "^1.4.8"
+ },
+ "conflict": {
+ "tightenco/collect": "<5.5.33"
+ },
+ "provide": {
+ "psr/container-implementation": "1.0"
+ },
+ "replace": {
+ "illuminate/auth": "self.version",
+ "illuminate/broadcasting": "self.version",
+ "illuminate/bus": "self.version",
+ "illuminate/cache": "self.version",
+ "illuminate/collections": "self.version",
+ "illuminate/config": "self.version",
+ "illuminate/console": "self.version",
+ "illuminate/container": "self.version",
+ "illuminate/contracts": "self.version",
+ "illuminate/cookie": "self.version",
+ "illuminate/database": "self.version",
+ "illuminate/encryption": "self.version",
+ "illuminate/events": "self.version",
+ "illuminate/filesystem": "self.version",
+ "illuminate/hashing": "self.version",
+ "illuminate/http": "self.version",
+ "illuminate/log": "self.version",
+ "illuminate/macroable": "self.version",
+ "illuminate/mail": "self.version",
+ "illuminate/notifications": "self.version",
+ "illuminate/pagination": "self.version",
+ "illuminate/pipeline": "self.version",
+ "illuminate/queue": "self.version",
+ "illuminate/redis": "self.version",
+ "illuminate/routing": "self.version",
+ "illuminate/session": "self.version",
+ "illuminate/support": "self.version",
+ "illuminate/testing": "self.version",
+ "illuminate/translation": "self.version",
+ "illuminate/validation": "self.version",
+ "illuminate/view": "self.version"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^3.155",
+ "doctrine/dbal": "^2.6|^3.0",
+ "filp/whoops": "^2.8",
+ "guzzlehttp/guzzle": "^6.5.5|^7.0.1",
+ "league/flysystem-cached-adapter": "^1.0",
+ "mockery/mockery": "^1.4.2",
+ "orchestra/testbench-core": "^6.8",
+ "pda/pheanstalk": "^4.0",
+ "phpunit/phpunit": "^8.5.8|^9.3.3",
+ "predis/predis": "^1.1.1",
+ "symfony/cache": "^5.1.4"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.155).",
+ "brianium/paratest": "Required to run tests in parallel (^6.0).",
+ "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6|^3.0).",
+ "ext-ftp": "Required to use the Flysystem FTP driver.",
+ "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
+ "ext-memcached": "Required to use the memcache cache driver.",
+ "ext-pcntl": "Required to use all features of the queue worker.",
+ "ext-posix": "Required to use all features of the queue worker.",
+ "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
+ "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
+ "filp/whoops": "Required for friendly error pages in development (^2.8).",
+ "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).",
+ "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).",
+ "mockery/mockery": "Required to use mocking (^1.4.2).",
+ "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.8|^9.3.3).",
+ "predis/predis": "Required to use the predis connector (^1.1.2).",
+ "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
+ "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^5.1.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)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "8.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Illuminate/Collections/helpers.php",
+ "src/Illuminate/Events/functions.php",
+ "src/Illuminate/Foundation/helpers.php",
+ "src/Illuminate/Support/helpers.php"
+ ],
+ "psr-4": {
+ "Illuminate\\": "src/Illuminate/",
+ "Illuminate\\Support\\": [
+ "src/Illuminate/Macroable/",
+ "src/Illuminate/Collections/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Laravel Framework.",
+ "homepage": "https://laravel.com",
+ "keywords": [
+ "framework",
+ "laravel"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2021-05-11T14:00:02+00:00"
+ },
+ {
+ "name": "laravel/nova",
+ "version": "3.25.0",
+ "source": {
+ "type": "git",
+ "url": "git@github.com:laravel/nova.git",
+ "reference": "827bfb8ee0c206962a2f3efb2c3bf389017884b1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://nova.laravel.com/dist/laravel/nova/laravel-nova-827bfb8ee0c206962a2f3efb2c3bf389017884b1-zip-579d9f.zip",
+ "reference": "827bfb8ee0c206962a2f3efb2c3bf389017884b1",
+ "shasum": "8688fc23898da23212a1a6c1acaf91a8b63e0a4b"
+ },
+ "require": {
+ "brick/money": "^0.5.0",
+ "cakephp/chronos": "^1.0|^2.0",
+ "doctrine/dbal": "^2.9",
+ "illuminate/support": "^7.0|^8.0",
+ "laravel/ui": "^2.0|^3.0",
+ "moontoast/math": "^1.1",
+ "php": "^7.2.5|^8.0",
+ "spatie/once": "^1.1|^2.0|^3.0",
+ "symfony/console": "^5.0",
+ "symfony/finder": "^5.0",
+ "symfony/intl": "^5.0",
+ "symfony/process": "^5.0"
+ },
+ "require-dev": {
+ "laravel/legacy-factories": "^1.0",
+ "laravel/nova-dusk-suite": "8.x-dev",
+ "mockery/mockery": "^1.3.3|^1.4.2",
+ "orchestra/testbench-dusk": "^6.17",
+ "phpunit/phpunit": "^8.4",
+ "predis/predis": "^1.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Laravel\\Nova\\NovaCoreServiceProvider"
+ ],
+ "aliases": {
+ "Nova": "Laravel\\Nova\\Nova"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Nova\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Laravel\\Nova\\Tests\\": "tests/"
+ }
+ },
+ "scripts": {
+ "dusk:prepare": [
+ "./vendor/bin/dusk-updater detect --auto-update",
+ "@php -r \"file_exists('phpunit.dusk.xml') || copy('phpunit.dusk.xml.dist', 'phpunit.dusk.xml'); \"",
+ "@php -r \"if (file_exists('.env.dusk')) { copy('.env.dusk', 'vendor/laravel/nova-dusk-suite/.env'); } else { copy('.env.dusk.example', 'vendor/laravel/nova-dusk-suite/.env'); }\"",
+ "./vendor/bin/testbench-dusk package:discover"
+ ],
+ "dusk:assets": [
+ "yarn install",
+ "yarn run prod",
+ "./vendor/bin/testbench-dusk nova:publish"
+ ],
+ "dusk:test": [
+ "./vendor/bin/phpunit -c phpunit.dusk.xml"
+ ]
+ },
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "A wonderful administration interface for Laravel.",
+ "keywords": [
+ "admin",
+ "laravel"
+ ],
+ "support": {
+ "source": "https://github.com/laravel/nova/tree/v3.25.0"
+ },
+ "time": "2021-05-12T00:27:13+00:00"
+ },
+ {
+ "name": "laravel/ui",
+ "version": "v3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/ui.git",
+ "reference": "e2478cd0342a92ec1c8c77422553bda8ee004fd0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/ui/zipball/e2478cd0342a92ec1c8c77422553bda8ee004fd0",
+ "reference": "e2478cd0342a92ec1c8c77422553bda8ee004fd0",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/console": "^8.0",
+ "illuminate/filesystem": "^8.0",
+ "illuminate/support": "^8.0",
+ "php": "^7.3|^8.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.2.1"
+ },
+ "time": "2021-04-27T18:17:41+00:00"
+ },
+ {
+ "name": "league/commonmark",
+ "version": "1.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/commonmark.git",
+ "reference": "7d70d2f19c84bcc16275ea47edabee24747352eb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/7d70d2f19c84bcc16275ea47edabee24747352eb",
+ "reference": "7d70d2f19c84bcc16275ea47edabee24747352eb",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "scrutinizer/ocular": "1.7.*"
+ },
+ "require-dev": {
+ "cebe/markdown": "~1.0",
+ "commonmark/commonmark.js": "0.29.2",
+ "erusev/parsedown": "~1.0",
+ "ext-json": "*",
+ "github/gfm": "0.29.0",
+ "michelf/php-markdown": "~1.4",
+ "mikehaertl/php-shellcommand": "^1.4",
+ "phpstan/phpstan": "^0.12",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.2",
+ "scrutinizer/ocular": "^1.5",
+ "symfony/finder": "^4.2"
+ },
+ "bin": [
+ "bin/commonmark"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\CommonMark\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)",
+ "homepage": "https://commonmark.thephpleague.com",
+ "keywords": [
+ "commonmark",
+ "flavored",
+ "gfm",
+ "github",
+ "github-flavored",
+ "markdown",
+ "md",
+ "parser"
+ ],
+ "support": {
+ "docs": "https://commonmark.thephpleague.com/",
+ "issues": "https://github.com/thephpleague/commonmark/issues",
+ "rss": "https://github.com/thephpleague/commonmark/releases.atom",
+ "source": "https://github.com/thephpleague/commonmark"
+ },
+ "funding": [
+ {
+ "url": "https://enjoy.gitstore.app/repositories/thephpleague/commonmark",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/colinodell",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-05-12T11:39:41+00:00"
+ },
+ {
+ "name": "league/flysystem",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem.git",
+ "reference": "9be3b16c877d477357c015cec057548cf9b2a14a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9be3b16c877d477357c015cec057548cf9b2a14a",
+ "reference": "9be3b16c877d477357c015cec057548cf9b2a14a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "league/mime-type-detection": "^1.3",
+ "php": "^7.2.5 || ^8.0"
+ },
+ "conflict": {
+ "league/flysystem-sftp": "<1.0.6"
+ },
+ "require-dev": {
+ "phpspec/prophecy": "^1.11.1",
+ "phpunit/phpunit": "^8.5.8"
+ },
+ "suggest": {
+ "ext-fileinfo": "Required for MimeType",
+ "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"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frenky.net"
+ }
+ ],
+ "description": "Filesystem abstraction: Many filesystems, one API.",
+ "keywords": [
+ "Cloud Files",
+ "WebDAV",
+ "abstraction",
+ "aws",
+ "cloud",
+ "copy.com",
+ "dropbox",
+ "file systems",
+ "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.x"
+ },
+ "funding": [
+ {
+ "url": "https://offset.earth/frankdejonge",
+ "type": "other"
+ }
+ ],
+ "time": "2020-08-23T07:39:11+00:00"
+ },
+ {
+ "name": "league/mime-type-detection",
+ "version": "1.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/mime-type-detection.git",
+ "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3",
+ "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.18",
+ "phpstan/phpstan": "^0.12.68",
+ "phpunit/phpunit": "^8.5.8 || ^9.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\MimeTypeDetection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "Mime-type detection for Flysystem",
+ "support": {
+ "issues": "https://github.com/thephpleague/mime-type-detection/issues",
+ "source": "https://github.com/thephpleague/mime-type-detection/tree/1.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-18T20:58:21+00:00"
+ },
+ {
+ "name": "manogi/nova-tiptap",
+ "version": "v1.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/manogi/nova-tiptap.git",
+ "reference": "f818a72db0d76f9b0d33c4e417e5ba6c043cedc5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/manogi/nova-tiptap/zipball/f818a72db0d76f9b0d33c4e417e5ba6c043cedc5",
+ "reference": "f818a72db0d76f9b0d33c4e417e5ba6c043cedc5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3.0"
+ },
+ "require-dev": {
+ "laravel/nova": "~3.0",
+ "orchestra/testbench": "^5.3",
+ "phpunit/phpunit": "^9.2"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Manogi\\Tiptap\\FieldServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Manogi\\Tiptap\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A Laravel Nova tiptap editor field.",
+ "keywords": [
+ "editor",
+ "laravel",
+ "nova",
+ "tiptap",
+ "vue"
+ ],
+ "support": {
+ "issues": "https://github.com/manogi/nova-tiptap/issues",
+ "source": "https://github.com/manogi/nova-tiptap/tree/v1.4.1"
+ },
+ "time": "2021-03-22T21:50:34+00:00"
+ },
+ {
+ "name": "mockery/mockery",
+ "version": "1.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mockery/mockery.git",
+ "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/d1339f64479af1bee0e82a0413813fe5345a54ea",
+ "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea",
+ "shasum": ""
+ },
+ "require": {
+ "hamcrest/hamcrest-php": "^2.0.1",
+ "lib-pcre": ">=7.0",
+ "php": "^7.3 || ^8.0"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5 || ^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Mockery": "library/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Pádraic Brady",
+ "email": "padraic.brady@gmail.com",
+ "homepage": "http://blog.astrumfutura.com"
+ },
+ {
+ "name": "Dave Marshall",
+ "email": "dave.marshall@atstsolutions.co.uk",
+ "homepage": "http://davedevelopment.co.uk"
+ }
+ ],
+ "description": "Mockery is a simple yet flexible PHP mock object framework",
+ "homepage": "https://github.com/mockery/mockery",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "library",
+ "mock",
+ "mock objects",
+ "mockery",
+ "stub",
+ "test",
+ "test double",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/mockery/mockery/issues",
+ "source": "https://github.com/mockery/mockery/tree/1.4.3"
+ },
+ "time": "2021-02-24T09:51:49+00:00"
+ },
+ {
+ "name": "monolog/monolog",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084",
+ "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2",
+ "psr/log": "^1.0.1"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^2.4.9 || ^3.0",
+ "doctrine/couchdb": "~1.0@dev",
+ "elasticsearch/elasticsearch": "^7",
+ "graylog2/gelf-php": "^1.4.2",
+ "mongodb/mongodb": "^1.8",
+ "php-amqplib/php-amqplib": "~2.4",
+ "php-console/php-console": "^3.1.3",
+ "phpspec/prophecy": "^1.6.1",
+ "phpstan/phpstan": "^0.12.59",
+ "phpunit/phpunit": "^8.5",
+ "predis/predis": "^1.1",
+ "rollbar/rollbar": "^1.3",
+ "ruflin/elastica": ">=0.90 <7.0.1",
+ "swiftmailer/swiftmailer": "^5.3|^6.0"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+ "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+ "ext-mbstring": "Allow to work properly with unicode symbols",
+ "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+ "php-console/php-console": "Allow sending log messages to Google Chrome",
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Monolog\\": "src/Monolog"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+ "homepage": "https://github.com/Seldaek/monolog",
+ "keywords": [
+ "log",
+ "logging",
+ "psr-3"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/monolog/issues",
+ "source": "https://github.com/Seldaek/monolog/tree/2.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-12-14T13:15:25+00:00"
+ },
+ {
+ "name": "moontoast/math",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/moontoast-math.git",
+ "reference": "5f47d34c87767dbcc08b30377a9827df71de91fa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/moontoast-math/zipball/5f47d34c87767dbcc08b30377a9827df71de91fa",
+ "reference": "5f47d34c87767dbcc08b30377a9827df71de91fa",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "phpseclib/bcmath_compat": ">=1.0.3"
+ },
+ "require-dev": {
+ "jakub-onderka/php-parallel-lint": "^0.9.0",
+ "phpunit/phpunit": "^4.8 || ^5.5 || ^6.5 || ^7.0",
+ "satooshi/php-coveralls": "^0.6.1",
+ "squizlabs/php_codesniffer": "^2.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Moontoast\\Math\\": "src/Moontoast/Math",
+ "Moontoast\\Math\\Exception\\": "src/Moontoast/Math/Exception"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Ben Ramsey",
+ "email": "ben@benramsey.com",
+ "homepage": "https://benramsey.com"
+ }
+ ],
+ "description": "A mathematics library, providing functionality for large numbers",
+ "homepage": "https://github.com/ramsey/moontoast-math",
+ "keywords": [
+ "bcmath",
+ "math"
+ ],
+ "support": {
+ "issues": "https://github.com/ramsey/moontoast-math/issues",
+ "source": "https://github.com/ramsey/moontoast-math"
+ },
+ "abandoned": "brick/math",
+ "time": "2020-01-05T04:49:34+00:00"
+ },
+ {
+ "name": "nesbot/carbon",
+ "version": "2.48.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/briannesbitt/Carbon.git",
+ "reference": "d3c447f21072766cddec3522f9468a5849a76147"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d3c447f21072766cddec3522f9468a5849a76147",
+ "reference": "d3c447f21072766cddec3522f9468a5849a76147",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.1.8 || ^8.0",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/translation": "^3.4 || ^4.0 || ^5.0"
+ },
+ "require-dev": {
+ "doctrine/orm": "^2.7",
+ "friendsofphp/php-cs-fixer": "^2.14 || ^3.0",
+ "kylekatarnls/multi-tester": "^2.0",
+ "phpmd/phpmd": "^2.9",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12.54",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.14",
+ "squizlabs/php_codesniffer": "^3.4"
+ },
+ "bin": [
+ "bin/carbon"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev",
+ "dev-3.x": "3.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Carbon\\Laravel\\ServiceProvider"
+ ]
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Carbon\\": "src/Carbon/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brian Nesbitt",
+ "email": "brian@nesbot.com",
+ "homepage": "http://nesbot.com"
+ },
+ {
+ "name": "kylekatarnls",
+ "homepage": "http://github.com/kylekatarnls"
+ }
+ ],
+ "description": "An API extension for DateTime that supports 281 different languages.",
+ "homepage": "http://carbon.nesbot.com",
+ "keywords": [
+ "date",
+ "datetime",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/briannesbitt/Carbon/issues",
+ "source": "https://github.com/briannesbitt/Carbon"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/Carbon",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-05-07T10:08:30+00:00"
+ },
+ {
+ "name": "opis/closure",
+ "version": "3.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/opis/closure.git",
+ "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/opis/closure/zipball/06e2ebd25f2869e54a306dda991f7db58066f7f6",
+ "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6",
+ "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": {
+ "psr-4": {
+ "Opis\\Closure\\": "src/"
+ },
+ "files": [
+ "functions.php"
+ ]
+ },
+ "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.2"
+ },
+ "time": "2021-04-09T13:42:10+00:00"
+ },
+ {
+ "name": "optimistdigital/nova-multiselect-field",
+ "version": "2.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/optimistdigital/nova-multiselect-field.git",
+ "reference": "184a83f75c62941ffe430f65785ca4f0b956e237"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/optimistdigital/nova-multiselect-field/zipball/184a83f75c62941ffe430f65785ca4f0b956e237",
+ "reference": "184a83f75c62941ffe430f65785ca4f0b956e237",
+ "shasum": ""
+ },
+ "require": {
+ "laravel/nova": "^3.0",
+ "optimistdigital/nova-translations-loader": "^3.0.0",
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "OptimistDigital\\MultiselectField\\FieldServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OptimistDigital\\MultiselectField\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tarvo Reinpalu",
+ "email": "tarvoreinpalu@gmail.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Optimist Digital",
+ "email": "info@optimistdigital.com",
+ "role": "Maintainer"
+ }
+ ],
+ "description": "A multiple select field for Laravel Nova.",
+ "keywords": [
+ "laravel",
+ "multiselect",
+ "nova",
+ "select"
+ ],
+ "support": {
+ "issues": "https://github.com/optimistdigital/nova-multiselect-field/issues",
+ "source": "https://github.com/optimistdigital/nova-multiselect-field/tree/2.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/optimistdigital",
+ "type": "github"
+ }
+ ],
+ "time": "2021-05-06T14:47:36+00:00"
+ },
+ {
+ "name": "optimistdigital/nova-sortable",
+ "version": "2.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/optimistdigital/nova-sortable.git",
+ "reference": "657f30a37bc3bb51bee89d94ef39b0a564a1b0e8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/optimistdigital/nova-sortable/zipball/657f30a37bc3bb51bee89d94ef39b0a564a1b0e8",
+ "reference": "657f30a37bc3bb51bee89d94ef39b0a564a1b0e8",
+ "shasum": ""
+ },
+ "require": {
+ "laravel/nova": "^3.0",
+ "optimistdigital/nova-translations-loader": "^3.0.0",
+ "php": ">=7.3.0",
+ "spatie/eloquent-sortable": "^3.10.0|^4.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "OptimistDigital\\NovaSortable\\ToolServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OptimistDigital\\NovaSortable\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "This Laravel Nova package allows you to reorder models in a Nova resource's index view using drag & drop.",
+ "keywords": [
+ "eloquent-sortable",
+ "laravel",
+ "nova",
+ "optimistdigital"
+ ],
+ "support": {
+ "issues": "https://github.com/optimistdigital/nova-sortable/issues",
+ "source": "https://github.com/optimistdigital/nova-sortable/tree/2.3.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/optimistdigital",
+ "type": "github"
+ }
+ ],
+ "time": "2021-05-07T12:51:37+00:00"
+ },
+ {
+ "name": "optimistdigital/nova-translations-loader",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/optimistdigital/nova-translations-loader.git",
+ "reference": "ce511b1685bd975ec0f86087bbec33949ad04730"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/optimistdigital/nova-translations-loader/zipball/ce511b1685bd975ec0f86087bbec33949ad04730",
+ "reference": "ce511b1685bd975ec0f86087bbec33949ad04730",
+ "shasum": ""
+ },
+ "require": {
+ "laravel/framework": "^7.0 || ^8.0",
+ "laravel/nova": "^3.0",
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [],
+ "aliases": []
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OptimistDigital\\NovaTranslationsLoader\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "This Laravel Nova package helps developers load translations into their packages.",
+ "keywords": [
+ "laravel",
+ "nova",
+ "optimistdigital",
+ "translations"
+ ],
+ "support": {
+ "issues": "https://github.com/optimistdigital/nova-translations-loader/issues",
+ "source": "https://github.com/optimistdigital/nova-translations-loader/tree/3.1.0"
+ },
+ "time": "2020-11-20T10:46:16+00:00"
+ },
+ {
+ "name": "owenmelbz/nova-radio-field",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/OwenMelbz/nova-radio-field.git",
+ "reference": "fa103657c3fc0fdbb3297b20da452215c89acfe9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/OwenMelbz/nova-radio-field/zipball/fa103657c3fc0fdbb3297b20da452215c89acfe9",
+ "reference": "fa103657c3fc0fdbb3297b20da452215c89acfe9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "OwenMelbz\\RadioField\\FieldServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OwenMelbz\\RadioField\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A Laravel Nova radio button field type with the ability to toggle other field visibility.",
+ "keywords": [
+ "laravel",
+ "nova"
+ ],
+ "support": {
+ "issues": "https://github.com/OwenMelbz/nova-radio-field/issues",
+ "source": "https://github.com/OwenMelbz/nova-radio-field/tree/1.0.0"
+ },
+ "time": "2020-07-20T07:48:26+00:00"
+ },
+ {
+ "name": "paragonie/constant_time_encoding",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/constant_time_encoding.git",
+ "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c",
+ "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7|^8"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6|^7|^8|^9",
+ "vimeo/psalm": "^1|^2|^3|^4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ParagonIE\\ConstantTime\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "security@paragonie.com",
+ "homepage": "https://paragonie.com",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Steve 'Sc00bz' Thomas",
+ "email": "steve@tobtu.com",
+ "homepage": "https://www.tobtu.com",
+ "role": "Original Developer"
+ }
+ ],
+ "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
+ "keywords": [
+ "base16",
+ "base32",
+ "base32_decode",
+ "base32_encode",
+ "base64",
+ "base64_decode",
+ "base64_encode",
+ "bin2hex",
+ "encoding",
+ "hex",
+ "hex2bin",
+ "rfc4648"
+ ],
+ "support": {
+ "email": "info@paragonie.com",
+ "issues": "https://github.com/paragonie/constant_time_encoding/issues",
+ "source": "https://github.com/paragonie/constant_time_encoding"
+ },
+ "time": "2020-12-06T15:14:20+00:00"
+ },
+ {
+ "name": "paragonie/random_compat",
+ "version": "v9.99.100",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/random_compat.git",
+ "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
+ "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">= 7"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "4.*|5.*",
+ "vimeo/psalm": "^1"
+ },
+ "suggest": {
+ "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "security@paragonie.com",
+ "homepage": "https://paragonie.com"
+ }
+ ],
+ "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
+ "keywords": [
+ "csprng",
+ "polyfill",
+ "pseudorandom",
+ "random"
+ ],
+ "support": {
+ "email": "info@paragonie.com",
+ "issues": "https://github.com/paragonie/random_compat/issues",
+ "source": "https://github.com/paragonie/random_compat"
+ },
+ "time": "2020-10-15T08:29:30+00:00"
+ },
+ {
+ "name": "phpoption/phpoption",
+ "version": "1.7.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/schmittjoh/php-option.git",
+ "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525",
+ "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5.9 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.4.1",
+ "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpOption\\": "src/PhpOption/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com"
+ }
+ ],
+ "description": "Option Type for PHP",
+ "keywords": [
+ "language",
+ "option",
+ "php",
+ "type"
+ ],
+ "support": {
+ "issues": "https://github.com/schmittjoh/php-option/issues",
+ "source": "https://github.com/schmittjoh/php-option/tree/1.7.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-07-20T17:29:33+00:00"
+ },
+ {
+ "name": "phpseclib/bcmath_compat",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpseclib/bcmath_compat.git",
+ "reference": "fd896dfceffc13d8cf45d2ee3470777a70026f3c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpseclib/bcmath_compat/zipball/fd896dfceffc13d8cf45d2ee3470777a70026f3c",
+ "reference": "fd896dfceffc13d8cf45d2ee3470777a70026f3c",
+ "shasum": ""
+ },
+ "require": {
+ "phpseclib/phpseclib": "^3.0"
+ },
+ "provide": {
+ "ext-bcmath": "8.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4",
+ "squizlabs/php_codesniffer": "^3.0"
+ },
+ "suggest": {
+ "ext-gmp": "Will enable faster math operations"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/bcmath.php"
+ ],
+ "psr-4": {
+ "bcmath_compat\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jim Wigginton",
+ "email": "terrafrost@php.net",
+ "homepage": "http://phpseclib.sourceforge.net"
+ }
+ ],
+ "description": "PHP 5.x/7.x polyfill for bcmath extension",
+ "keywords": [
+ "BigInteger",
+ "bcmath",
+ "bigdecimal",
+ "math",
+ "polyfill"
+ ],
+ "support": {
+ "email": "terrafrost@php.net",
+ "issues": "https://github.com/phpseclib/bcmath_compat/issues",
+ "source": "https://github.com/phpseclib/bcmath_compat"
+ },
+ "time": "2020-12-22T16:38:51+00:00"
+ },
+ {
+ "name": "phpseclib/phpseclib",
+ "version": "3.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpseclib/phpseclib.git",
+ "reference": "d9615a6fb970d9933866ca8b4036ec3407b020b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d9615a6fb970d9933866ca8b4036ec3407b020b6",
+ "reference": "d9615a6fb970d9933866ca8b4036ec3407b020b6",
+ "shasum": ""
+ },
+ "require": {
+ "paragonie/constant_time_encoding": "^1|^2",
+ "paragonie/random_compat": "^1.4|^2.0|^9.99.99",
+ "php": ">=5.6.1"
+ },
+ "require-dev": {
+ "phing/phing": "~2.7",
+ "phpunit/phpunit": "^5.7|^6.0|^9.4",
+ "squizlabs/php_codesniffer": "~2.0"
+ },
+ "suggest": {
+ "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
+ "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
+ "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
+ "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "phpseclib/bootstrap.php"
+ ],
+ "psr-4": {
+ "phpseclib3\\": "phpseclib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jim Wigginton",
+ "email": "terrafrost@php.net",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Patrick Monnerat",
+ "email": "pm@datasphere.ch",
+ "role": "Developer"
+ },
+ {
+ "name": "Andreas Fischer",
+ "email": "bantu@phpbb.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Hans-Jürgen Petrich",
+ "email": "petrich@tronic-media.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
+ "homepage": "http://phpseclib.sourceforge.net",
+ "keywords": [
+ "BigInteger",
+ "aes",
+ "asn.1",
+ "asn1",
+ "blowfish",
+ "crypto",
+ "cryptography",
+ "encryption",
+ "rsa",
+ "security",
+ "sftp",
+ "signature",
+ "signing",
+ "ssh",
+ "twofish",
+ "x.509",
+ "x509"
+ ],
+ "support": {
+ "issues": "https://github.com/phpseclib/phpseclib/issues",
+ "source": "https://github.com/phpseclib/phpseclib/tree/3.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/terrafrost",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/phpseclib",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-04-19T03:20:48+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/1.1.1"
+ },
+ "time": "2021-03-05T17:36:06+00:00"
+ },
+ {
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/1.1.4"
+ },
+ "time": "2021-05-03T11:20:27+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/simple-cache/tree/master"
+ },
+ "time": "2017-10-23T01:57:42+00:00"
+ },
+ {
+ "name": "ramsey/collection",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/collection.git",
+ "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1",
+ "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8"
+ },
+ "require-dev": {
+ "captainhook/captainhook": "^5.3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
+ "ergebnis/composer-normalize": "^2.6",
+ "fakerphp/faker": "^1.5",
+ "hamcrest/hamcrest-php": "^2",
+ "jangregor/phpstan-prophecy": "^0.8",
+ "mockery/mockery": "^1.3",
+ "phpstan/extension-installer": "^1",
+ "phpstan/phpstan": "^0.12.32",
+ "phpstan/phpstan-mockery": "^0.12.5",
+ "phpstan/phpstan-phpunit": "^0.12.11",
+ "phpunit/phpunit": "^8.5 || ^9",
+ "psy/psysh": "^0.10.4",
+ "slevomat/coding-standard": "^6.3",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "^4.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Ramsey\\Collection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ben Ramsey",
+ "email": "ben@benramsey.com",
+ "homepage": "https://benramsey.com"
+ }
+ ],
+ "description": "A PHP 7.2+ library for representing and manipulating collections.",
+ "keywords": [
+ "array",
+ "collection",
+ "hash",
+ "map",
+ "queue",
+ "set"
+ ],
+ "support": {
+ "issues": "https://github.com/ramsey/collection/issues",
+ "source": "https://github.com/ramsey/collection/tree/1.1.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-21T17:40:04+00:00"
+ },
+ {
+ "name": "ramsey/uuid",
+ "version": "4.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/uuid.git",
+ "reference": "cd4032040a750077205918c86049aa0f43d22947"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/cd4032040a750077205918c86049aa0f43d22947",
+ "reference": "cd4032040a750077205918c86049aa0f43d22947",
+ "shasum": ""
+ },
+ "require": {
+ "brick/math": "^0.8 || ^0.9",
+ "ext-json": "*",
+ "php": "^7.2 || ^8",
+ "ramsey/collection": "^1.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "replace": {
+ "rhumsaa/uuid": "self.version"
+ },
+ "require-dev": {
+ "codeception/aspect-mock": "^3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0",
+ "doctrine/annotations": "^1.8",
+ "goaop/framework": "^2",
+ "mockery/mockery": "^1.3",
+ "moontoast/math": "^1.1",
+ "paragonie/random-lib": "^2",
+ "php-mock/php-mock-mockery": "^1.3",
+ "php-mock/php-mock-phpunit": "^2.5",
+ "php-parallel-lint/php-parallel-lint": "^1.1",
+ "phpbench/phpbench": "^0.17.1",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-mockery": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpunit/phpunit": "^8.5",
+ "psy/psysh": "^0.10.0",
+ "slevomat/coding-standard": "^6.0",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "3.9.4"
+ },
+ "suggest": {
+ "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
+ "ext-ctype": "Enables faster processing of character classification using ctype functions.",
+ "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
+ "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
+ "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
+ "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Ramsey\\Uuid\\": "src/"
+ },
+ "files": [
+ "src/functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
+ "homepage": "https://github.com/ramsey/uuid",
+ "keywords": [
+ "guid",
+ "identifier",
+ "uuid"
+ ],
+ "support": {
+ "issues": "https://github.com/ramsey/uuid/issues",
+ "rss": "https://github.com/ramsey/uuid/releases.atom",
+ "source": "https://github.com/ramsey/uuid"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ }
+ ],
+ "time": "2020-08-18T17:17:46+00:00"
+ },
+ {
+ "name": "spatie/eloquent-sortable",
+ "version": "4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/eloquent-sortable.git",
+ "reference": "6b4ca608144153a69b6a9f457e15bd7eafbe97a9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/eloquent-sortable/zipball/6b4ca608144153a69b6a9f457e15bd7eafbe97a9",
+ "reference": "6b4ca608144153a69b6a9f457e15bd7eafbe97a9",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/database": "^7.0|^8.0",
+ "illuminate/support": "^7.0|^8.0",
+ "php": "^8.0",
+ "spatie/laravel-package-tools": "^1.6"
+ },
+ "require-dev": {
+ "orchestra/testbench": "^5.0|^6.0",
+ "phpunit/phpunit": "^8.0|^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Spatie\\EloquentSortable\\EloquentSortableServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spatie\\EloquentSortable\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be"
+ }
+ ],
+ "description": "Sortable behaviour for eloquent models",
+ "homepage": "https://github.com/spatie/eloquent-sortable",
+ "keywords": [
+ "behaviour",
+ "eloquent",
+ "laravel",
+ "model",
+ "sort",
+ "sortable"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/eloquent-sortable/issues",
+ "source": "https://github.com/spatie/eloquent-sortable/tree/4.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2021-03-31T14:07:53+00:00"
+ },
+ {
+ "name": "spatie/laravel-package-tools",
+ "version": "1.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/laravel-package-tools.git",
+ "reference": "a28108b61dac8a83de6c97f09a5a1e98f4d75522"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/a28108b61dac8a83de6c97f09a5a1e98f4d75522",
+ "reference": "a28108b61dac8a83de6c97f09a5a1e98f4d75522",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/contracts": "^7.0|^8.0",
+ "mockery/mockery": "^1.4",
+ "php": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "orchestra/testbench": "^5.0|^6.0",
+ "phpunit/phpunit": "^9.3",
+ "spatie/test-time": "^1.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\LaravelPackageTools\\": "src",
+ "Spatie\\LaravelPackageTools\\Database\\Factories\\": "database/factories"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "Tools for creating Laravel packages",
+ "homepage": "https://github.com/spatie/laravel-package-tools",
+ "keywords": [
+ "laravel-package-tools",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/laravel-package-tools/issues",
+ "source": "https://github.com/spatie/laravel-package-tools/tree/1.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2021-05-06T21:49:32+00:00"
+ },
+ {
+ "name": "spatie/once",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/once.git",
+ "reference": "edf25d4f87e3a91666298ebe78ee2e89f9761bf7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/once/zipball/edf25d4f87e3a91666298ebe78ee2e89f9761bf7",
+ "reference": "edf25d4f87e3a91666298ebe78ee2e89f9761bf7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/var-dumper": "^5.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Once\\": "src"
+ },
+ "files": [
+ "src/functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A magic memoization function",
+ "homepage": "https://github.com/spatie/once",
+ "keywords": [
+ "cache",
+ "callable",
+ "memozation",
+ "once",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/once/issues",
+ "source": "https://github.com/spatie/once/tree/3.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "custom"
+ }
+ ],
+ "time": "2020-11-03T13:23:06+00:00"
+ },
+ {
+ "name": "swiftmailer/swiftmailer",
+ "version": "v6.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/swiftmailer/swiftmailer.git",
+ "reference": "15f7faf8508e04471f666633addacf54c0ab5933"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/15f7faf8508e04471f666633addacf54c0ab5933",
+ "reference": "15f7faf8508e04471f666633addacf54c0ab5933",
+ "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"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.0",
+ "symfony/phpunit-bridge": "^4.4|^5.0"
+ },
+ "suggest": {
+ "ext-intl": "Needed to support internationalized email addresses"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "6.2-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "lib/swift_required.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Corbyn"
+ },
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Swiftmailer, free feature-rich PHP mailer",
+ "homepage": "https://swiftmailer.symfony.com",
+ "keywords": [
+ "email",
+ "mail",
+ "mailer"
+ ],
+ "support": {
+ "issues": "https://github.com/swiftmailer/swiftmailer/issues",
+ "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.7"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-03-09T12:30:35+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v5.2.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "864568fdc0208b3eba3638b6000b69d2386e6768"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/864568fdc0208b3eba3638b6000b69d2386e6768",
+ "reference": "864568fdc0208b3eba3638b6000b69d2386e6768",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.8",
+ "symfony/polyfill-php80": "^1.15",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/string": "^5.1"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4",
+ "symfony/dotenv": "<5.1",
+ "symfony/event-dispatcher": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/process": "<4.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/event-dispatcher": "^4.4|^5.0",
+ "symfony/lock": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "suggest": {
+ "psr/log": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/lock": "",
+ "symfony/process": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v5.2.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-05-11T15:45:21+00:00"
+ },
+ {
+ "name": "symfony/css-selector",
+ "version": "v5.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/css-selector.git",
+ "reference": "59a684f5ac454f066ecbe6daecce6719aed283fb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/59a684f5ac454f066ecbe6daecce6719aed283fb",
+ "reference": "59a684f5ac454f066ecbe6daecce6719aed283fb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\CssSelector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Jean-François Simon",
+ "email": "jeanfrancois.simon@sensiolabs.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Converts CSS selectors to XPath expressions",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/css-selector/tree/v5.3.0-BETA1"
+ },
+ "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-04-07T16:07:52+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627",
+ "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-03-23T23:28:01+00:00"
+ },
+ {
+ "name": "symfony/error-handler",
+ "version": "v5.2.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/error-handler.git",
+ "reference": "1416bc16317a8188aabde251afef7618bf4687ac"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/1416bc16317a8188aabde251afef7618bf4687ac",
+ "reference": "1416bc16317a8188aabde251afef7618bf4687ac",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/log": "^1.0",
+ "symfony/polyfill-php80": "^1.15",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "require-dev": {
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/http-kernel": "^4.4|^5.0",
+ "symfony/serializer": "^4.4|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ErrorHandler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to manage errors and ease debugging PHP code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/error-handler/tree/v5.2.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-05-07T13:42:21+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v5.2.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "d08d6ec121a425897951900ab692b612a61d6240"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d08d6ec121a425897951900ab692b612a61d6240",
+ "reference": "d08d6ec121a425897951900ab692b612a61d6240",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/event-dispatcher-contracts": "^2",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/error-handler": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/stopwatch": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/dependency-injection": "",
+ "symfony/http-kernel": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.4"
+ },
+ "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-18T17:12:37+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/69fee1ad2332a7cbab3aca13591953da9cdb7a11",
+ "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/event-dispatcher": "^1"
+ },
+ "suggest": {
+ "symfony/event-dispatcher-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\EventDispatcher\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-03-23T23:28:01+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v5.2.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "eccb8be70d7a6a2230d05f6ecede40f3fdd9e252"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/eccb8be70d7a6a2230d05f6ecede40f3fdd9e252",
+ "reference": "eccb8be70d7a6a2230d05f6ecede40f3fdd9e252",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v5.2.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-05-10T14:39:23+00:00"
+ },
+ {
+ "name": "symfony/http-client-contracts",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client-contracts.git",
+ "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/7e82f6084d7cae521a75ef2cb5c9457bbda785f4",
+ "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "suggest": {
+ "symfony/http-client-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\HttpClient\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to HTTP clients",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client-contracts/tree/v2.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-04-11T23:07:08+00:00"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v5.2.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "e8fbbab7c4a71592985019477532629cb2e142dc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e8fbbab7c4a71592985019477532629cb2e142dc",
+ "reference": "e8fbbab7c4a71592985019477532629cb2e142dc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/polyfill-mbstring": "~1.1",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "require-dev": {
+ "predis/predis": "~1.0",
+ "symfony/cache": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/mime": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/mime": "To use the file extension guesser"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Defines an object-oriented layer for the HTTP specification",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-foundation/tree/v5.2.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-05-07T13:41:16+00:00"
+ },
+ {
+ "name": "symfony/http-kernel",
+ "version": "v5.2.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-kernel.git",
+ "reference": "c3cb71ee7e2d3eae5fe1001f81780d6a49b37937"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c3cb71ee7e2d3eae5fe1001f81780d6a49b37937",
+ "reference": "c3cb71ee7e2d3eae5fe1001f81780d6a49b37937",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/log": "~1.0",
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/error-handler": "^4.4|^5.0",
+ "symfony/event-dispatcher": "^5.0",
+ "symfony/http-client-contracts": "^1.1|^2",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<4.4",
+ "symfony/cache": "<5.0",
+ "symfony/config": "<5.0",
+ "symfony/console": "<4.4",
+ "symfony/dependency-injection": "<5.1.8",
+ "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",
+ "twig/twig": "<2.13"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0"
+ },
+ "require-dev": {
+ "psr/cache": "^1.0|^2.0|^3.0",
+ "symfony/browser-kit": "^4.4|^5.0",
+ "symfony/config": "^5.0",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/css-selector": "^4.4|^5.0",
+ "symfony/dependency-injection": "^5.1.8",
+ "symfony/dom-crawler": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/finder": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "symfony/routing": "^4.4|^5.0",
+ "symfony/stopwatch": "^4.4|^5.0",
+ "symfony/translation": "^4.4|^5.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "suggest": {
+ "symfony/browser-kit": "",
+ "symfony/config": "",
+ "symfony/console": "",
+ "symfony/dependency-injection": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpKernel\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a structured process for converting a Request into a Response",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-kernel/tree/v5.2.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-05-12T13:27:53+00:00"
+ },
+ {
+ "name": "symfony/intl",
+ "version": "v5.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/intl.git",
+ "reference": "6d40be5e4331041aa14add5633986d95667ae624"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/intl/zipball/6d40be5e4331041aa14add5633986d95667ae624",
+ "reference": "6d40be5e4331041aa14add5633986d95667ae624",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-intl-icu": "~1.0",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^4.4|^5.0"
+ },
+ "suggest": {
+ "ext-intl": "to use the component with locales other than \"en\""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Intl\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ },
+ {
+ "name": "Eriksen Costa",
+ "email": "eriksen.costa@infranology.com.br"
+ },
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a PHP replacement layer for the C intl extension that includes additional data from the ICU library",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "i18n",
+ "icu",
+ "internationalization",
+ "intl",
+ "l10n",
+ "localization"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/intl/tree/v5.2.7"
+ },
+ "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-04-24T14:39:13+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v5.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "7af452bf51c46f18da00feb32e1ad36db9426515"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/7af452bf51c46f18da00feb32e1ad36db9426515",
+ "reference": "7af452bf51c46f18da00feb32e1ad36db9426515",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "conflict": {
+ "egulias/email-validator": "~3.0.0",
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/mailer": "<4.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",
+ "symfony/property-access": "^4.4|^5.1",
+ "symfony/property-info": "^4.4|^5.1",
+ "symfony/serializer": "^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows manipulating MIME messages",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "mime",
+ "mime-type"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/mime/tree/v5.2.7"
+ },
+ "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-04-29T20:47:09+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
+ "reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-07T16:49:33+00:00"
+ },
+ {
+ "name": "symfony/polyfill-iconv",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-iconv.git",
+ "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/06fb361659649bcfd6a208a0f1fcaf4e827ad342",
+ "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-iconv": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Iconv\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Iconv extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "iconv",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-22T09:19:47+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170",
+ "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-22T09:19:47+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-icu",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-icu.git",
+ "reference": "af1842919c7e7364aaaa2798b29839e3ba168588"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/af1842919c7e7364aaaa2798b29839e3ba168588",
+ "reference": "af1842919c7e7364aaaa2798b29839e3ba168588",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance and support of other locales than \"en\""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Icu\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's ICU-related data and classes",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "icu",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-22T09:19:47+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-idn",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "2d63434d922daf7da8dd863e7907e67ee3031483"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483",
+ "reference": "2d63434d922daf7da8dd863e7907e67ee3031483",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "symfony/polyfill-intl-normalizer": "^1.10",
+ "symfony/polyfill-php72": "^1.10"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Trevor Rowbotham",
+ "email": "trevor.rowbotham@pm.me"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "idn",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-22T09:19:47+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248",
+ "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "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.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-22T09:19:47+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "5232de97ee3b75b0360528dae24e73db49566ab1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1",
+ "reference": "5232de97ee3b75b0360528dae24e73db49566ab1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-22T09:19:47+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php72",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php72.git",
+ "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
+ "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php72\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-07T16:49:33+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php73",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
+ "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-07T16:49:33+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91",
+ "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-07T16:49:33+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v5.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e",
+ "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v5.3.0-BETA1"
+ },
+ "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-04-08T10:27:02+00:00"
+ },
+ {
+ "name": "symfony/routing",
+ "version": "v5.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c",
+ "reference": "3f0cab2e95b5e92226f34c2c1aa969d3fc41f48c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "conflict": {
+ "symfony/config": "<5.0",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/yaml": "<4.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4",
+ "psr/log": "~1.0",
+ "symfony/config": "^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/yaml": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/config": "For using the all-in-one router or any loader",
+ "symfony/expression-language": "For using expression matching",
+ "symfony/http-foundation": "For using a Symfony Request object",
+ "symfony/yaml": "For using the YAML loader"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Routing\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Maps an HTTP request to a set of configuration variables",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/routing/tree/v5.2.7"
+ },
+ "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-04-11T22:55:21+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb",
+ "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/container": "^1.1"
+ },
+ "suggest": {
+ "symfony/service-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v2.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-04-01T10:43:52+00:00"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v5.2.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db",
+ "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "~1.15"
+ },
+ "require-dev": {
+ "symfony/error-handler": "^4.4|^5.0",
+ "symfony/http-client": "^4.4|^5.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "files": [
+ "Resources/functions.php"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v5.2.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-05-10T14:56:10+00:00"
+ },
+ {
+ "name": "symfony/translation",
+ "version": "v5.2.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "445caa74a5986f1cc9dd91a2975ef68fa7cb2068"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/445caa74a5986f1cc9dd91a2975ef68fa7cb2068",
+ "reference": "445caa74a5986f1cc9dd91a2975ef68fa7cb2068",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.15",
+ "symfony/translation-contracts": "^2.3"
+ },
+ "conflict": {
+ "symfony/config": "<4.4",
+ "symfony/dependency-injection": "<5.0",
+ "symfony/http-kernel": "<5.0",
+ "symfony/twig-bundle": "<5.0",
+ "symfony/yaml": "<4.4"
+ },
+ "provide": {
+ "symfony/translation-implementation": "2.3"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/dependency-injection": "^5.0",
+ "symfony/finder": "^4.4|^5.0",
+ "symfony/http-kernel": "^5.0",
+ "symfony/intl": "^4.4|^5.0",
+ "symfony/service-contracts": "^1.1.2|^2",
+ "symfony/yaml": "^4.4|^5.0"
+ },
+ "suggest": {
+ "psr/log-implementation": "To use logging capability in translator",
+ "symfony/config": "",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to internationalize your application",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/translation/tree/v5.2.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-05-07T13:41:16+00:00"
+ },
+ {
+ "name": "symfony/translation-contracts",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "95c812666f3e91db75385749fe219c5e494c7f95"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95",
+ "reference": "95c812666f3e91db75385749fe219c5e494c7f95",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "suggest": {
+ "symfony/translation-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Translation\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to translation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-03-23T23:28:01+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v5.2.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d693200a73fae179d27f8f1b16b4faf3e8569eba",
+ "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<5.4.3",
+ "symfony/console": "<4.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "suggest": {
+ "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
+ "ext-intl": "To show region name in time zone dump",
+ "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-dumper/tree/v5.2.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-05-07T13:42:21+00:00"
+ },
+ {
+ "name": "tijsverkoyen/css-to-inline-styles",
+ "version": "2.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
+ "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/b43b05cf43c1b6d849478965062b6ef73e223bb5",
+ "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "php": "^5.5 || ^7.0 || ^8.0",
+ "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "TijsVerkoyen\\CssToInlineStyles\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Tijs Verkoyen",
+ "email": "css_to_inline_styles@verkoyen.eu",
+ "role": "Developer"
+ }
+ ],
+ "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
+ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
+ "support": {
+ "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
+ "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.3"
+ },
+ "time": "2020-07-13T06:12:54+00:00"
+ },
+ {
+ "name": "timothyasp/nova-color-field",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/timothyasp/nova-color-field.git",
+ "reference": "6cc39bab252070d57019360ab3eb6b6637f994f6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/timothyasp/nova-color-field/zipball/6cc39bab252070d57019360ab3eb6b6637f994f6",
+ "reference": "6cc39bab252070d57019360ab3eb6b6637f994f6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Timothyasp\\Color\\FieldServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Timothyasp\\Color\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A Laravel Nova Color Picker field.",
+ "keywords": [
+ "color picker",
+ "field",
+ "laravel",
+ "nova"
+ ],
+ "support": {
+ "issues": "https://github.com/timothyasp/nova-color-field/issues",
+ "source": "https://github.com/timothyasp/nova-color-field/tree/1.0.4"
+ },
+ "time": "2020-10-26T16:36:00+00:00"
+ },
+ {
+ "name": "vlucas/phpdotenv",
+ "version": "v5.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vlucas/phpdotenv.git",
+ "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/b3eac5c7ac896e52deab4a99068e3f4ab12d9e56",
+ "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56",
+ "shasum": ""
+ },
+ "require": {
+ "ext-pcre": "*",
+ "graham-campbell/result-type": "^1.0.1",
+ "php": "^7.1.3 || ^8.0",
+ "phpoption/phpoption": "^1.7.4",
+ "symfony/polyfill-ctype": "^1.17",
+ "symfony/polyfill-mbstring": "^1.17",
+ "symfony/polyfill-php80": "^1.17"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.4.1",
+ "ext-filter": "*",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.14 || ^9.5.1"
+ },
+ "suggest": {
+ "ext-filter": "Required to use the boolean validator."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dotenv\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com",
+ "homepage": "https://gjcampbell.co.uk/"
+ },
+ {
+ "name": "Vance Lucas",
+ "email": "vance@vancelucas.com",
+ "homepage": "https://vancelucas.com/"
+ }
+ ],
+ "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
+ "support": {
+ "issues": "https://github.com/vlucas/phpdotenv/issues",
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-01-20T15:23:13+00:00"
+ },
+ {
+ "name": "voku/portable-ascii",
+ "version": "1.5.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/voku/portable-ascii.git",
+ "reference": "80953678b19901e5165c56752d087fc11526017c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/80953678b19901e5165c56752d087fc11526017c",
+ "reference": "80953678b19901e5165c56752d087fc11526017c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
+ },
+ "suggest": {
+ "ext-intl": "Use Intl for transliterator_transliterate() support"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "voku\\": "src/voku/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Lars Moelleken",
+ "homepage": "http://www.moelleken.org/"
+ }
+ ],
+ "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
+ "homepage": "https://github.com/voku/portable-ascii",
+ "keywords": [
+ "ascii",
+ "clean",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/voku/portable-ascii/issues",
+ "source": "https://github.com/voku/portable-ascii/tree/1.5.6"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.me/moelleken",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/voku",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/portable-ascii",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://www.patreon.com/voku",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-11-12T00:07:28+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.10.0"
+ },
+ "time": "2021-03-09T10:59:23+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "coderello/laravel-nova-lang",
+ "version": "1.7.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/coderello/laravel-nova-lang.git",
+ "reference": "e8293f9819037ed4ea2763f3055626c9c4f52c0a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/coderello/laravel-nova-lang/zipball/e8293f9819037ed4ea2763f3055626c9c4f52c0a",
+ "reference": "e8293f9819037ed4ea2763f3055626c9c4f52c0a",
+ "shasum": ""
+ },
+ "require": {
+ "laravel/framework": "5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0",
+ "php": "^7.1|^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Coderello\\LaravelNovaLang\\Providers\\LaravelNovaLangServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Coderello\\LaravelNovaLang\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Language support for Laravel Nova.",
+ "keywords": [
+ "lang",
+ "language",
+ "laravel",
+ "nova",
+ "support"
+ ],
+ "support": {
+ "issues": "https://github.com/coderello/laravel-nova-lang/issues",
+ "source": "https://github.com/coderello/laravel-nova-lang/tree/1.7.2"
+ },
+ "time": "2021-02-07T12:48:29+00:00"
+ },
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
+ "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^8.0",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ },
+ "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.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-11-10T18:47:58+00:00"
+ },
+ {
+ "name": "eminiarts/nova-tabs",
+ "version": "1.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/eminiarts/nova-tabs.git",
+ "reference": "24db671bf3163efccfbf12874abb0796cbc82e1b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/eminiarts/nova-tabs/zipball/24db671bf3163efccfbf12874abb0796cbc82e1b",
+ "reference": "24db671bf3163efccfbf12874abb0796cbc82e1b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "laravel/nova": ">=2.9.0",
+ "php": ">=7.1.3"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.17",
+ "orchestra/testbench": "^6.7"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Eminiarts\\Tabs\\TabsServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Eminiarts\\Tabs\\": "src/",
+ "Eminiarts\\Tabs\\Tests\\": "tests/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Emini Arts GmbH",
+ "email": "support@eminiarts.ch",
+ "homepage": "https://eminiarts.ch"
+ }
+ ],
+ "description": "Laravel Nova - Tabs.",
+ "keywords": [
+ "laravel",
+ "nova"
+ ],
+ "support": {
+ "issues": "https://github.com/eminiarts/nova-tabs/issues",
+ "source": "https://github.com/eminiarts/nova-tabs/tree/1.4.3"
+ },
+ "time": "2021-03-07T13:05:22+00:00"
+ },
+ {
+ "name": "fakerphp/faker",
+ "version": "v1.14.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/FakerPHP/Faker.git",
+ "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1",
+ "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0",
+ "psr/container": "^1.0",
+ "symfony/deprecation-contracts": "^2.2"
+ },
+ "conflict": {
+ "fzaninotto/faker": "*"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.4.1",
+ "ext-intl": "*",
+ "symfony/phpunit-bridge": "^4.4 || ^5.2"
+ },
+ "suggest": {
+ "ext-curl": "Required by Faker\\Provider\\Image to download images.",
+ "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
+ "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
+ "ext-mbstring": "Required for multibyte Unicode string functionality."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "v1.15-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Faker\\": "src/Faker/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "François Zaninotto"
+ }
+ ],
+ "description": "Faker is a PHP library that generates fake data for you.",
+ "keywords": [
+ "data",
+ "faker",
+ "fixtures"
+ ],
+ "support": {
+ "issues": "https://github.com/FakerPHP/Faker/issues",
+ "source": "https://github.com/FakerPHP/Faker/tree/v.1.14.1"
+ },
+ "time": "2021-03-30T06:27:33+00:00"
+ },
+ {
+ "name": "guzzlehttp/psr7",
+ "version": "1.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "dc960a912984efb74d0a90222870c72c87f10c91"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91",
+ "reference": "dc960a912984efb74d0a90222870c72c87f10c91",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4.0",
+ "psr/http-message": "~1.0",
+ "ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "ext-zlib": "*",
+ "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
+ },
+ "suggest": {
+ "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Psr7\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Tobias Schultze",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "PSR-7 message implementation that also provides common utility methods",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7",
+ "request",
+ "response",
+ "stream",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/1.8.2"
+ },
+ "time": "2021-04-26T09:17:50+00:00"
+ },
+ {
+ "name": "intervention/image",
+ "version": "2.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Intervention/image.git",
+ "reference": "abbf18d5ab8367f96b3205ca3c89fb2fa598c69e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Intervention/image/zipball/abbf18d5ab8367f96b3205ca3c89fb2fa598c69e",
+ "reference": "abbf18d5ab8367f96b3205ca3c89fb2fa598c69e",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "guzzlehttp/psr7": "~1.1",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "~0.9.2",
+ "phpunit/phpunit": "^4.8 || ^5.7"
+ },
+ "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/master"
+ },
+ "time": "2019-11-02T09:15:47+00:00"
+ },
+ {
+ "name": "kraenkvisuell/nova-cms",
+ "version": "v1.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kraenkvisuell/nova-cms.git",
+ "reference": "179faa0fadea2de32c5e198366f5cedbe87180a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kraenkvisuell/nova-cms/zipball/179faa0fadea2de32c5e198366f5cedbe87180a1",
+ "reference": "179faa0fadea2de32c5e198366f5cedbe87180a1",
+ "shasum": ""
+ },
+ "require": {
+ "coderello/laravel-nova-lang": "^1.6",
+ "eminiarts/nova-tabs": "^1.3.1",
+ "kraenkvisuell/nova-cms-blocks": "^1.1.0",
+ "kraenkvisuell/nova-cms-media": "^1.2.0",
+ "laravel-lang/lang": "^7.0",
+ "manogi/nova-tiptap": "^1.0",
+ "optimistdigital/nova-menu-builder": "^5.0",
+ "optimistdigital/nova-settings": "^3.0",
+ "optimistdigital/nova-translatable": "^1.6.11",
+ "php": "^7.3.0|^8.0",
+ "spatie/laravel-translatable": "^4.4"
+ },
+ "require-dev": {
+ "laravel/nova": "~3.0",
+ "orchestra/testbench": "^6.17",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Kraenkvisuell\\NovaCms\\NovaCmsServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Kraenkvisuell\\NovaCms\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "CMS for Laravel Nova",
+ "keywords": [
+ "laravel",
+ "layout",
+ "nova"
+ ],
+ "support": {
+ "issues": "https://github.com/kraenkvisuell/nova-cms/issues",
+ "source": "https://github.com/kraenkvisuell/nova-cms/tree/v1.7.0"
+ },
+ "time": "2021-05-17T10:23:29+00:00"
+ },
+ {
+ "name": "kraenkvisuell/nova-cms-blocks",
+ "version": "v1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kraenkvisuell/nova-cms-blocks.git",
+ "reference": "4b3594826ecfbb2ed7e2cefab05986a3c78f4f4c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kraenkvisuell/nova-cms-blocks/zipball/4b3594826ecfbb2ed7e2cefab05986a3c78f4f4c",
+ "reference": "4b3594826ecfbb2ed7e2cefab05986a3c78f4f4c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Kraenkvisuell\\NovaCmsBlocks\\FieldServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Kraenkvisuell\\NovaCmsBlocks\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Toon Van den Bos",
+ "email": "toon@whitecube.be"
+ },
+ {
+ "name": "Sebastian Hilger",
+ "email": "hilger@kraenk.de"
+ }
+ ],
+ "description": "Blocks Content & Repeater Fields for Laravel Nova.",
+ "keywords": [
+ "Flexible",
+ "field",
+ "group",
+ "laravel",
+ "layout",
+ "nova",
+ "repeat"
+ ],
+ "support": {
+ "issues": "https://github.com/kraenkvisuell/nova-cms-blocks/issues",
+ "source": "https://github.com/kraenkvisuell/nova-cms-blocks/tree/v1.1.0"
+ },
+ "time": "2021-04-19T14:50:25+00:00"
+ },
+ {
+ "name": "kraenkvisuell/nova-cms-media",
+ "version": "v1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kraenkvisuell/nova-cms-media.git",
+ "reference": "e9094f00076bf94ea04bb9e9e7fca894e20f28a6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kraenkvisuell/nova-cms-media/zipball/e9094f00076bf94ea04bb9e9e7fca894e20f28a6",
+ "reference": "e9094f00076bf94ea04bb9e9e7fca894e20f28a6",
+ "shasum": ""
+ },
+ "require": {
+ "intervention/image": "^2.",
+ "php": "^7.3.0|^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Kraenkvisuell\\NovaCmsMedia\\ToolServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Kraenkvisuell\\NovaCmsMedia\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Tool and field that will let you managing files and add them to the posts",
+ "keywords": [
+ "gallery",
+ "laravel",
+ "media",
+ "nova"
+ ],
+ "support": {
+ "issues": "https://github.com/kraenkvisuell/nova-cms-media/issues",
+ "source": "https://github.com/kraenkvisuell/nova-cms-media/tree/v1.2.0"
+ },
+ "time": "2021-05-17T10:21:02+00:00"
+ },
+ {
+ "name": "laravel-lang/lang",
+ "version": "7.0.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Laravel-Lang/lang.git",
+ "reference": "679a65755db37b35acd36a5e0ca51e055815a00a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/679a65755db37b35acd36a5e0ca51e055815a00a",
+ "reference": "679a65755db37b35acd36a5e0ca51e055815a00a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*"
+ },
+ "suggest": {
+ "andrey-helldar/laravel-lang-publisher": "Easy installation and update of translation files for your project",
+ "arcanedev/laravel-lang": "Translations manager and checker for Laravel 5",
+ "overtrue/laravel-lang": "Command to add languages in your project"
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Laravel-Lang Team"
+ }
+ ],
+ "description": "Languages for Laravel",
+ "keywords": [
+ "lang",
+ "languages",
+ "laravel",
+ "lpm"
+ ],
+ "support": {
+ "issues": "https://github.com/Laravel-Lang/lang/issues",
+ "source": "https://github.com/Laravel-Lang/lang/tree/7.0.9"
+ },
+ "time": "2020-11-30T20:35:41+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.10.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
+ "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "replace": {
+ "myclabs/deep-copy": "self.version"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.0",
+ "doctrine/common": "^2.6",
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ },
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-11-13T09:40:50+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v4.10.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f",
+ "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5"
+ },
+ "time": "2021-05-03T19:11:20+00:00"
+ },
+ {
+ "name": "optimistdigital/nova-menu-builder",
+ "version": "5.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/optimistdigital/nova-menu-builder.git",
+ "reference": "6fa47b015c8c38f6b41588ea0b9a05bdf574144d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/optimistdigital/nova-menu-builder/zipball/6fa47b015c8c38f6b41588ea0b9a05bdf574144d",
+ "reference": "6fa47b015c8c38f6b41588ea0b9a05bdf574144d",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/dbal": ">=2.0.0",
+ "laravel/framework": "^7.0 || ^8.0",
+ "laravel/nova": "^3.0",
+ "optimistdigital/nova-tailwind": "^1.0.2",
+ "optimistdigital/nova-translations-loader": "^3.0",
+ "php": ">=7.2.0"
+ },
+ "require-dev": {
+ "orchestra/testbench": "^5.0|^6.0",
+ "phpunit/phpunit": "^8.0|^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "OptimistDigital\\MenuBuilder\\MenuBuilderServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OptimistDigital\\MenuBuilder\\": "src/"
+ },
+ "files": [
+ "src/helpers.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tarvo Reinpalu",
+ "email": "tarvoreinpalu@gmail.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Optimist Digital",
+ "email": "info@optimistdigital.com",
+ "role": "Maintainer"
+ }
+ ],
+ "description": "This Laravel Nova package allows you to create and manage menus and menu items.",
+ "keywords": [
+ "builder",
+ "laravel",
+ "menu",
+ "nova",
+ "optimistdigital"
+ ],
+ "support": {
+ "issues": "https://github.com/optimistdigital/nova-menu-builder/issues",
+ "source": "https://github.com/optimistdigital/nova-menu-builder/tree/5.3.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/optimistdigital",
+ "type": "github"
+ }
+ ],
+ "time": "2021-05-14T16:05:32+00:00"
+ },
+ {
+ "name": "optimistdigital/nova-settings",
+ "version": "3.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/optimistdigital/nova-settings.git",
+ "reference": "d585090247ac28f5cade1cd6a65ce60a62befea0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/optimistdigital/nova-settings/zipball/d585090247ac28f5cade1cd6a65ce60a62befea0",
+ "reference": "d585090247ac28f5cade1cd6a65ce60a62befea0",
+ "shasum": ""
+ },
+ "require": {
+ "laravel/nova": "^3.0",
+ "optimistdigital/nova-translations-loader": "^3.0",
+ "php": ">=7.2.0"
+ },
+ "require-dev": {
+ "laravel/nova-dusk-suite": "7.x-dev|8.x-dev",
+ "orchestra/testbench": "^5.0|^6.0",
+ "orchestra/testbench-dusk": "^5.0|^6.0",
+ "phpunit/phpunit": "^8.0|^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "OptimistDigital\\NovaSettings\\NovaSettingsServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OptimistDigital\\NovaSettings\\": "src/"
+ },
+ "files": [
+ "./src/helpers.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A Laravel Nova tool for editing custom settings using native Nova fields.",
+ "keywords": [
+ "laravel",
+ "nova"
+ ],
+ "support": {
+ "issues": "https://github.com/optimistdigital/nova-settings/issues",
+ "source": "https://github.com/optimistdigital/nova-settings/tree/3.1.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/optimistdigital",
+ "type": "github"
+ }
+ ],
+ "time": "2021-05-14T13:34:50+00:00"
+ },
+ {
+ "name": "optimistdigital/nova-tailwind",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/optimistdigital/nova-tailwind.git",
+ "reference": "fd2b4791185b3ec26a12f7f193db3725a38ec27a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/optimistdigital/nova-tailwind/zipball/fd2b4791185b3ec26a12f7f193db3725a38ec27a",
+ "reference": "fd2b4791185b3ec26a12f7f193db3725a38ec27a",
+ "shasum": ""
+ },
+ "require": {
+ "laravel/nova": "^1.0 || ^2.0 || ^3.0",
+ "php": ">=7.1.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "OptimistDigital\\Tailwind\\TailwindServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OptimistDigital\\Tailwind\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tarvo Reinpalu",
+ "email": "tarvoreinpalu@gmail.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Optimist Digital",
+ "email": "info@optimistdigital.com",
+ "role": "Maintainer"
+ }
+ ],
+ "description": "Tailwind loader for Laravel Nova.",
+ "keywords": [
+ "css",
+ "laravel",
+ "nova",
+ "tailwind"
+ ],
+ "support": {
+ "issues": "https://github.com/optimistdigital/nova-tailwind/issues",
+ "source": "https://github.com/optimistdigital/nova-tailwind/tree/1.1.0"
+ },
+ "time": "2021-01-21T11:26:54+00:00"
+ },
+ {
+ "name": "optimistdigital/nova-translatable",
+ "version": "1.8.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/optimistdigital/nova-translatable.git",
+ "reference": "9e877ae0b7ec687d9d497a190888c154086835b4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/optimistdigital/nova-translatable/zipball/9e877ae0b7ec687d9d497a190888c154086835b4",
+ "reference": "9e877ae0b7ec687d9d497a190888c154086835b4",
+ "shasum": ""
+ },
+ "require": {
+ "laravel/nova": "^2.9 || ^3.0",
+ "php": ">=7.1.0",
+ "spatie/laravel-translatable": "^4.0 || ^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "OptimistDigital\\NovaTranslatable\\FieldServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OptimistDigital\\NovaTranslatable\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tarvo Reinpalu",
+ "email": "tarvoreinpalu@gmail.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Optimist Digital",
+ "email": "info@optimistdigital.com",
+ "role": "Maintainer"
+ }
+ ],
+ "description": "A laravel-translatable extension for Laravel Nova.",
+ "keywords": [
+ "i18n",
+ "laravel",
+ "nova",
+ "translatable",
+ "translate"
+ ],
+ "support": {
+ "issues": "https://github.com/optimistdigital/nova-translatable/issues",
+ "source": "https://github.com/optimistdigital/nova-translatable/tree/1.8.4"
+ },
+ "time": "2021-05-17T06:40:47+00:00"
+ },
+ {
+ "name": "orchestra/testbench",
+ "version": "v6.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/orchestral/testbench.git",
+ "reference": "1782d7d54312ebbf3bf79d66e4ac46e7dee78e0f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/orchestral/testbench/zipball/1782d7d54312ebbf3bf79d66e4ac46e7dee78e0f",
+ "reference": "1782d7d54312ebbf3bf79d66e4ac46e7dee78e0f",
+ "shasum": ""
+ },
+ "require": {
+ "laravel/framework": "^8.25",
+ "mockery/mockery": "^1.4.2",
+ "orchestra/testbench-core": "^6.21",
+ "php": "^7.3 || ^8.0",
+ "phpunit/phpunit": "^8.4 || ^9.3.3",
+ "spatie/laravel-ray": "^1.17.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "6.0-dev"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mior Muhammad Zaki",
+ "email": "crynobone@gmail.com",
+ "homepage": "https://github.com/crynobone"
+ }
+ ],
+ "description": "Laravel Testing Helper for Packages Development",
+ "homepage": "https://packages.tools/testbench/",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "laravel",
+ "orchestra-platform",
+ "orchestral",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/orchestral/testbench/issues",
+ "source": "https://github.com/orchestral/testbench/tree/v6.17.0"
+ },
+ "funding": [
+ {
+ "url": "https://paypal.me/crynobone",
+ "type": "custom"
+ },
+ {
+ "url": "https://liberapay.com/crynobone",
+ "type": "liberapay"
+ }
+ ],
+ "time": "2021-04-06T12:07:42+00:00"
+ },
+ {
+ "name": "orchestra/testbench-core",
+ "version": "v6.21.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/orchestral/testbench-core.git",
+ "reference": "6b536a0f18227a156762e074f12bb17547eaf4f4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/6b536a0f18227a156762e074f12bb17547eaf4f4",
+ "reference": "6b536a0f18227a156762e074f12bb17547eaf4f4",
+ "shasum": ""
+ },
+ "require": {
+ "fakerphp/faker": "^1.9.1",
+ "php": "^7.3 || ^8.0",
+ "symfony/yaml": "^5.0",
+ "vlucas/phpdotenv": "^5.1"
+ },
+ "require-dev": {
+ "laravel/framework": "^8.26",
+ "laravel/laravel": "8.x-dev",
+ "mockery/mockery": "^1.4.2",
+ "orchestra/canvas": "^6.1",
+ "phpunit/phpunit": "^8.4 || ^9.3.3 || ^10.0",
+ "spatie/laravel-ray": "^1.7.1",
+ "symfony/process": "^5.0"
+ },
+ "suggest": {
+ "laravel/framework": "Required for testing (^8.26).",
+ "mockery/mockery": "Allow using Mockery for testing (^1.4.2).",
+ "orchestra/testbench-browser-kit": "Allow using legacy Laravel BrowserKit for testing (^6.0).",
+ "orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^6.0).",
+ "phpunit/phpunit": "Allow using PHPUnit for testing (^8.4|^9.3.3)."
+ },
+ "bin": [
+ "testbench"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "6.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Orchestra\\Testbench\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mior Muhammad Zaki",
+ "email": "crynobone@gmail.com",
+ "homepage": "https://github.com/crynobone"
+ }
+ ],
+ "description": "Testing Helper for Laravel Development",
+ "homepage": "https://packages.tools/testbench",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "laravel",
+ "orchestra-platform",
+ "orchestral",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/orchestral/testbench/issues",
+ "source": "https://github.com/orchestral/testbench-core"
+ },
+ "funding": [
+ {
+ "url": "https://paypal.me/crynobone",
+ "type": "custom"
+ },
+ {
+ "url": "https://liberapay.com/crynobone",
+ "type": "liberapay"
+ }
+ ],
+ "time": "2021-05-11T20:58:20+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
+ "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/master"
+ },
+ "time": "2020-06-27T14:33:11+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "bae7c545bef187884426f042434e561ab1ddb182"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182",
+ "reference": "bae7c545bef187884426f042434e561ab1ddb182",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.1.0"
+ },
+ "time": "2021-02-23T14:00:09+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ },
+ "time": "2020-06-27T09:03:43+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
+ "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^1.3",
+ "webmozart/assert": "^1.9.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "account@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
+ },
+ "time": "2020-09-03T19:13:55+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
+ "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0"
+ },
+ "require-dev": {
+ "ext-tokenizer": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0"
+ },
+ "time": "2020-09-17T18:55:26+00:00"
+ },
+ {
+ "name": "phpspec/prophecy",
+ "version": "1.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/prophecy.git",
+ "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea",
+ "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.2",
+ "php": "^7.2 || ~8.0, <8.1",
+ "phpdocumentor/reflection-docblock": "^5.2",
+ "sebastian/comparator": "^3.0 || ^4.0",
+ "sebastian/recursion-context": "^3.0 || ^4.0"
+ },
+ "require-dev": {
+ "phpspec/phpspec": "^6.0",
+ "phpunit/phpunit": "^8.0 || ^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.11.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Prophecy\\": "src/Prophecy"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ },
+ {
+ "name": "Marcello Duarte",
+ "email": "marcello.duarte@gmail.com"
+ }
+ ],
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
+ "homepage": "https://github.com/phpspec/prophecy",
+ "keywords": [
+ "Double",
+ "Dummy",
+ "fake",
+ "mock",
+ "spy",
+ "stub"
+ ],
+ "support": {
+ "issues": "https://github.com/phpspec/prophecy/issues",
+ "source": "https://github.com/phpspec/prophecy/tree/1.13.0"
+ },
+ "time": "2021-03-17T13:42:18+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "9.2.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "f6293e1b30a2354e8428e004689671b83871edde"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde",
+ "reference": "f6293e1b30a2354e8428e004689671b83871edde",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.10.2",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0.3",
+ "phpunit/php-text-template": "^2.0.2",
+ "sebastian/code-unit-reverse-lookup": "^2.0.2",
+ "sebastian/complexity": "^2.0",
+ "sebastian/environment": "^5.1.2",
+ "sebastian/lines-of-code": "^1.0.3",
+ "sebastian/version": "^3.0.1",
+ "theseer/tokenizer": "^1.2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcov": "*",
+ "ext-xdebug": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2021-03-28T07:26:59+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "3.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8",
+ "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:57:25+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:58:55+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T05:33:50+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:16:10+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "9.5.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "c73c6737305e779771147af66c96ca6a7ed8a741"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741",
+ "reference": "c73c6737305e779771147af66c96ca6a7ed8a741",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.3.1",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.10.1",
+ "phar-io/manifest": "^2.0.1",
+ "phar-io/version": "^3.0.2",
+ "php": ">=7.3",
+ "phpspec/prophecy": "^1.12.1",
+ "phpunit/php-code-coverage": "^9.2.3",
+ "phpunit/php-file-iterator": "^3.0.5",
+ "phpunit/php-invoker": "^3.1.1",
+ "phpunit/php-text-template": "^2.0.3",
+ "phpunit/php-timer": "^5.0.2",
+ "sebastian/cli-parser": "^1.0.1",
+ "sebastian/code-unit": "^1.0.6",
+ "sebastian/comparator": "^4.0.5",
+ "sebastian/diff": "^4.0.3",
+ "sebastian/environment": "^5.1.3",
+ "sebastian/exporter": "^4.0.3",
+ "sebastian/global-state": "^5.0.1",
+ "sebastian/object-enumerator": "^4.0.3",
+ "sebastian/resource-operations": "^3.0.3",
+ "sebastian/type": "^2.3",
+ "sebastian/version": "^3.0.2"
+ },
+ "require-dev": {
+ "ext-pdo": "*",
+ "phpspec/prophecy-phpunit": "^2.0.1"
+ },
+ "suggest": {
+ "ext-soap": "*",
+ "ext-xdebug": "*"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.5-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ],
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/donate.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2021-03-23T07:16:29+00:00"
+ },
+ {
+ "name": "psr/http-message",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/master"
+ },
+ "time": "2016-08-06T14:39:51+00:00"
+ },
+ {
+ "name": "ralouphie/getallheaders",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^5 || ^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/getallheaders.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
+ }
+ ],
+ "description": "A polyfill for getallheaders.",
+ "support": {
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ },
+ "time": "2019-03-08T08:55:37+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:08:49+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:08:54+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:30:19+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "55f4261989e546dc112258c7a75935a81a7ce382"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
+ "reference": "55f4261989e546dc112258c7a75935a81a7ce382",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T15:49:45+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
+ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.7",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T15:52:27+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:10:38+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "5.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "388b6ced16caa751030f6a69e588299fa09200ac"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
+ "reference": "388b6ced16caa751030f6a69e588299fa09200ac",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:52:38+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "4.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65",
+ "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:24:23+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "5.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "a90ccbddffa067b51f574dea6eb25d5680839455"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455",
+ "reference": "a90ccbddffa067b51f574dea6eb25d5680839455",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T15:55:19+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.6",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-11-28T06:42:11+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:12:34+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:14:26+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
+ "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:17:30+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:45:17+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "2.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
+ "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.3-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/2.3.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:18:59+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
+ },
+ {
+ "name": "spatie/backtrace",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/backtrace.git",
+ "reference": "3440fe023a7d5b4497090fb6b2dcdc747daf7873"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/backtrace/zipball/3440fe023a7d5b4497090fb6b2dcdc747daf7873",
+ "reference": "3440fe023a7d5b4497090fb6b2dcdc747daf7873",
+ "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.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spatie",
+ "type": "github"
+ },
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "other"
+ }
+ ],
+ "time": "2021-01-29T09:20:43+00:00"
+ },
+ {
+ "name": "spatie/laravel-ray",
+ "version": "1.17.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/laravel-ray.git",
+ "reference": "e48be16da1952ffca868c77f509a767d3fc632bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/e48be16da1952ffca868c77f509a767d3fc632bc",
+ "reference": "e48be16da1952ffca868c77f509a767d3fc632bc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "illuminate/contracts": "^7.20|^8.0",
+ "illuminate/database": "^7.20|^8.13",
+ "illuminate/queue": "^7.20|^8.13",
+ "illuminate/support": "^7.20|^8.13",
+ "php": "^7.3|^8.0",
+ "spatie/backtrace": "^1.0",
+ "spatie/ray": "^1.21.2",
+ "symfony/stopwatch": "4.2|^5.1",
+ "zbateson/mail-mime-parser": "^1.3.1"
+ },
+ "require-dev": {
+ "facade/ignition": "^2.5",
+ "laravel/framework": "^7.20|^8.19",
+ "orchestra/testbench-core": "^5.0|^6.0",
+ "phpunit/phpunit": "^9.3",
+ "spatie/phpunit-snapshot-assertions": "^4.2"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Spatie\\LaravelRay\\RayServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spatie\\LaravelRay\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "Easily debug Laravel apps",
+ "homepage": "https://github.com/spatie/laravel-ray",
+ "keywords": [
+ "laravel-ray",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/laravel-ray/issues",
+ "source": "https://github.com/spatie/laravel-ray/tree/1.17.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spatie",
+ "type": "github"
+ },
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "other"
+ }
+ ],
+ "time": "2021-04-30T08:20:24+00:00"
+ },
+ {
+ "name": "spatie/laravel-translatable",
+ "version": "4.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/laravel-translatable.git",
+ "reference": "5900d6002a5795712058a04c7ca7c2c44b3e0850"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/laravel-translatable/zipball/5900d6002a5795712058a04c7ca7c2c44b3e0850",
+ "reference": "5900d6002a5795712058a04c7ca7c2c44b3e0850",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/database": "^6.0|^7.0|^8.0",
+ "illuminate/support": "^6.0|^7.0|^8.0",
+ "php": "^7.2|^8.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.4",
+ "orchestra/testbench": "^4.0|^5.0|^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Spatie\\Translatable\\TranslatableServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Translatable\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian De Deyne",
+ "email": "sebastian@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ },
+ {
+ "name": "Mohamed Said",
+ "email": "theMohamedSaid@gmail.com",
+ "role": "Original idea"
+ }
+ ],
+ "description": "A trait to make an Eloquent model hold translations",
+ "homepage": "https://github.com/spatie/laravel-translatable",
+ "keywords": [
+ "eloquent",
+ "i8n",
+ "laravel-translatable",
+ "model",
+ "multilingual",
+ "spatie",
+ "translate"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/laravel-translatable/issues",
+ "source": "https://github.com/spatie/laravel-translatable/tree/4.6.0"
+ },
+ "funding": [
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "custom"
+ }
+ ],
+ "time": "2020-11-19T14:19:29+00:00"
+ },
+ {
+ "name": "spatie/macroable",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/macroable.git",
+ "reference": "ec2c320f932e730607aff8052c44183cf3ecb072"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/macroable/zipball/ec2c320f932e730607aff8052c44183cf3ecb072",
+ "reference": "ec2c320f932e730607aff8052c44183cf3ecb072",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.0|^9.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Macroable\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A trait to dynamically add methods to a class",
+ "homepage": "https://github.com/spatie/macroable",
+ "keywords": [
+ "macroable",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/macroable/issues",
+ "source": "https://github.com/spatie/macroable/tree/2.0.0"
+ },
+ "time": "2021-03-26T22:39:02+00:00"
+ },
+ {
+ "name": "spatie/ray",
+ "version": "1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/ray.git",
+ "reference": "e82408b78b1391eaee6c962b13c37e80080dc15a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/ray/zipball/e82408b78b1391eaee6c962b13c37e80080dc15a",
+ "reference": "e82408b78b1391eaee6c962b13c37e80080dc15a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-curl": "*",
+ "ext-json": "*",
+ "php": "^7.3|^8.0",
+ "ramsey/uuid": "^3.0|^4.1",
+ "spatie/backtrace": "^1.1",
+ "spatie/macroable": "^1.0|^2.0",
+ "symfony/stopwatch": "^4.0|^5.1",
+ "symfony/var-dumper": "^4.2|^5.1"
+ },
+ "require-dev": {
+ "illuminate/support": "6.x|^8.18",
+ "nesbot/carbon": "^2.43",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.9.16",
+ "spatie/phpunit-snapshot-assertions": "^4.2",
+ "spatie/test-time": "^1.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Ray\\": "src"
+ },
+ "files": [
+ "src/helpers.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "Debug with Ray to fix problems faster",
+ "homepage": "https://github.com/spatie/ray",
+ "keywords": [
+ "ray",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/ray/issues",
+ "source": "https://github.com/spatie/ray/tree/1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spatie",
+ "type": "github"
+ },
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "other"
+ }
+ ],
+ "time": "2021-04-28T09:47:47+00:00"
+ },
+ {
+ "name": "symfony/stopwatch",
+ "version": "v5.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/stopwatch.git",
+ "reference": "d99310c33e833def36419c284f60e8027d359678"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d99310c33e833def36419c284f60e8027d359678",
+ "reference": "d99310c33e833def36419c284f60e8027d359678",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/service-contracts": "^1.0|^2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Stopwatch\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a way to profile code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/stopwatch/tree/v5.3.0-BETA1"
+ },
+ "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-03-29T15:28:41+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v5.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/76546cbeddd0a9540b4e4e57eddeec3e9bb444a5",
+ "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "conflict": {
+ "symfony/console": "<4.4"
+ },
+ "require-dev": {
+ "symfony/console": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/console": "For validating YAML files using the lint command"
+ },
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v5.2.7"
+ },
+ "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-04-29T20:47:09+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "75a63c33a8577608444246075ea0af0d052e452a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a",
+ "reference": "75a63c33a8577608444246075ea0af0d052e452a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/master"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2020-07-12T23:59:07+00:00"
+ },
+ {
+ "name": "zbateson/mail-mime-parser",
+ "version": "1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zbateson/mail-mime-parser.git",
+ "reference": "706964d904798b8c22d63f62f0ec5f5bc84e30d9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/706964d904798b8c22d63f62f0ec5f5bc84e30d9",
+ "reference": "706964d904798b8c22d63f62f0ec5f5bc84e30d9",
+ "shasum": ""
+ },
+ "require": {
+ "guzzlehttp/psr7": "^1.0",
+ "php": ">=5.4",
+ "zbateson/mb-wrapper": "^1.0.1",
+ "zbateson/stream-decorators": "^1.0.4"
+ },
+ "require-dev": {
+ "jms/serializer": "^1.1",
+ "mikey179/vfsstream": "^1.6.0",
+ "phing/phing": "^2.15.0",
+ "phpdocumentor/phpdocumentor": "^2.9.0",
+ "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5"
+ },
+ "suggest": {
+ "ext-iconv": "For best support/performance",
+ "ext-mbstring": "For best support/performance"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ZBateson\\MailMimeParser\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Zaahid Bateson"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/zbateson/mail-mime-parser/graphs/contributors"
+ }
+ ],
+ "description": "MIME email message parser",
+ "homepage": "https://mail-mime-parser.org",
+ "keywords": [
+ "MimeMailParser",
+ "email",
+ "mail",
+ "mailparse",
+ "mime",
+ "mimeparse",
+ "parser",
+ "php-imap"
+ ],
+ "support": {
+ "docs": "https://mail-mime-parser.org/#usage-guide",
+ "issues": "https://github.com/zbateson/mail-mime-parser/issues",
+ "source": "https://github.com/zbateson/mail-mime-parser"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/zbateson",
+ "type": "github"
+ }
+ ],
+ "time": "2020-12-02T21:55:45+00:00"
+ },
+ {
+ "name": "zbateson/mb-wrapper",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zbateson/mb-wrapper.git",
+ "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d",
+ "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4",
+ "symfony/polyfill-iconv": "^1.9",
+ "symfony/polyfill-mbstring": "^1.9"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5"
+ },
+ "suggest": {
+ "ext-iconv": "For best support/performance",
+ "ext-mbstring": "For best support/performance"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ZBateson\\MbWrapper\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Zaahid Bateson"
+ }
+ ],
+ "description": "Wrapper for mbstring with fallback to iconv for encoding conversion and string manipulation",
+ "keywords": [
+ "charset",
+ "encoding",
+ "http",
+ "iconv",
+ "mail",
+ "mb",
+ "mb_convert_encoding",
+ "mbstring",
+ "mime",
+ "multibyte",
+ "string"
+ ],
+ "support": {
+ "issues": "https://github.com/zbateson/mb-wrapper/issues",
+ "source": "https://github.com/zbateson/mb-wrapper/tree/1.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/zbateson",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-21T22:14:27+00:00"
+ },
+ {
+ "name": "zbateson/stream-decorators",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zbateson/stream-decorators.git",
+ "reference": "6f54738dfecc65e1d5bfb855035836748083a6dd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/6f54738dfecc65e1d5bfb855035836748083a6dd",
+ "reference": "6f54738dfecc65e1d5bfb855035836748083a6dd",
+ "shasum": ""
+ },
+ "require": {
+ "guzzlehttp/psr7": "^1.0.0",
+ "php": ">=5.4",
+ "zbateson/mb-wrapper": "^1.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ZBateson\\StreamDecorators\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Zaahid Bateson"
+ }
+ ],
+ "description": "PHP psr7 stream decorators for mime message part streams",
+ "keywords": [
+ "base64",
+ "charset",
+ "decorators",
+ "mail",
+ "mime",
+ "psr7",
+ "quoted-printable",
+ "stream",
+ "uuencode"
+ ],
+ "support": {
+ "issues": "https://github.com/zbateson/stream-decorators/issues",
+ "source": "https://github.com/zbateson/stream-decorators/tree/master"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/zbateson",
+ "type": "github"
+ }
+ ],
+ "time": "2020-08-10T18:59:43+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "dev",
+ "stability-flags": [],
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^7.3.0|^8.0"
+ },
+ "platform-dev": [],
+ "plugin-api-version": "2.0.0"
+}
diff --git a/config/nova-cms-portfolio.php b/config/nova-cms-portfolio.php
new file mode 100644
index 0000000..bf931e0
--- /dev/null
+++ b/config/nova-cms-portfolio.php
@@ -0,0 +1,12 @@
+ '',
+ 'custom_artists_label' => '',
+ 'custom_artist_label' => '',
+ 'custom_slideshows_label' => '',
+ 'custom_slideshow_label' => '',
+ 'custom_works_label' => '',
+ 'custom_work_label' => '',
+ 'artists_have_custom_bg' => false,
+];
diff --git a/database/migrations/2021_04_19_000000_create_portfolio_tables.php b/database/migrations/2021_04_19_000000_create_portfolio_tables.php
new file mode 100644
index 0000000..d71e49f
--- /dev/null
+++ b/database/migrations/2021_04_19_000000_create_portfolio_tables.php
@@ -0,0 +1,115 @@
+id();
+ $table->string('name');
+ $table->string('slug');
+ $table->boolean('is_published')->default(true)->index();
+ $table->json('description')->nullable();
+ $table->unsignedInteger('portfolio_image')->nullable();
+ $table->unsignedInteger('portrait_image')->nullable();
+ $table->json('meta_description')->nullable();
+ $table->json('browser_title')->nullable();
+ $table->json('robots')->nullable();
+ $table->unsignedInteger('og_image')->nullable();
+ $table->string('bgcolor')->nullable();
+ $table->timestamps();
+ });
+
+ Schema::create($prefix.'disciplines', function (Blueprint $table) {
+ $table->id();
+ $table->json('title');
+ $table->json('slug');
+ $table->json('description')->nullable();
+ $table->integer('sort_order')->nullable();
+ $table->unsignedBigInteger('discipline_id')->nullable();
+ $table->json('meta_description')->nullable();
+ $table->json('browser_title')->nullable();
+ $table->json('robots')->nullable();
+ $table->unsignedInteger('og_image')->nullable();
+ $table->string('bgcolor')->nullable();
+ $table->timestamps();
+ });
+
+ Schema::create($prefix.'artist_discipline', function (Blueprint $table) {
+ $table->unsignedBigInteger('artist_id');
+ $table->unsignedBigInteger('discipline_id');
+ $table->unsignedBigInteger('work_id')->nullable();
+ $table->primary(['artist_id', 'discipline_id']);
+ });
+
+ Schema::create($prefix.'categories', function (Blueprint $table) {
+ $table->id();
+ $table->json('title');
+ $table->json('slug');
+ $table->timestamps();
+ });
+
+ Schema::create($prefix.'slideshows', function (Blueprint $table) use ($prefix) {
+ $table->id();
+ $table->foreignId('artist_id')->constrained($prefix.'artists')->onUpdate('cascade')->onDelete('cascade');
+ $table->string('title');
+ $table->string('slug');
+ $table->boolean('is_published')->default(true)->index();
+ $table->integer('sort_order')->nullable();
+ $table->json('description')->nullable();
+ $table->json('slides')->nullable();
+
+ $table->json('meta_description')->nullable();
+ $table->json('browser_title')->nullable();
+ $table->json('robots')->nullable();
+ $table->unsignedInteger('og_image')->nullable();
+
+ $table->timestamps();
+ });
+
+ Schema::create($prefix.'category_slideshow', function (Blueprint $table) {
+ $table->unsignedBigInteger('category_id');
+ $table->unsignedBigInteger('slideshow_id');
+ $table->primary(['category_id', 'slideshow_id']);
+ });
+
+ Schema::create($prefix.'category_overview_work', function (Blueprint $table) {
+ $table->unsignedBigInteger('category_id');
+ $table->unsignedBigInteger('work_id');
+ $table->primary(['category_id', 'work_id']);
+ });
+
+ Schema::create($prefix.'works', function (Blueprint $table) use ($prefix) {
+ $table->id();
+ $table->foreignId('slideshow_id')->constrained($prefix.'slideshows')->onUpdate('cascade')->onDelete('cascade');
+ $table->string('title')->nullable();
+ $table->unsignedInteger('file')->nullable();
+ $table->integer('sort_order')->nullable();
+ $table->boolean('show_in_overview')->default(false)->index();
+ $table->boolean('is_artist_portfolio_image')->default(false)->index();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ $prefix = config('nova-cms-portfolio.db_prefix');
+
+ Schema::dropIfExists($prefix.'artists');
+ }
+};
diff --git a/dist/js/cards.js b/dist/js/cards.js
new file mode 100644
index 0000000..6a52a65
--- /dev/null
+++ b/dist/js/cards.js
@@ -0,0 +1,540 @@
+/******/ (() => { // webpackBootstrap
+/******/ var __webpack_modules__ = ({
+
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/QuickWorksCard.vue?vue&type=script&lang=js&":
+/*!*********************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/QuickWorksCard.vue?vue&type=script&lang=js& ***!
+ \*********************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ data: function data() {
+ return {
+ files: [],
+ uploading: false,
+ count: 0
+ };
+ },
+ props: ['card', 'slideshowId'],
+ methods: {
+ selectFiles: function selectFiles(input) {
+ if (!input.target.files.length) return;
+ this.files = Object.assign({}, input.target.files);
+ this.uploadFiles();
+ document.getElementById('quick_upload').value = null;
+ },
+ uploadFile: function uploadFile(file) {},
+ uploadFiles: function uploadFiles() {
+ this.uploading = true;
+
+ _.forEach(this.files, function (file) {
+ var _this = this;
+
+ var config = {
+ headers: {
+ 'Content-Type': 'multipart/form-data'
+ }
+ };
+ var data = new FormData();
+ data.append('file', file);
+ data.append('folder', null);
+ Nova.request().post('/nova-vendor/nova-cms-media/upload', data, config).then(function (r) {
+ Nova.request().post('/nova-vendor/nova-cms-portfolio/works/create-from-file/' + _this.card.slideshowId + '/' + r.data.id + '/', data, config).then(function (r) {
+ _this.count++;
+
+ if (_this.count >= Object.keys(_this.files).length) {
+ Nova.request().post('/nova-vendor/nova-cms-portfolio/slideshows/reorder-works/' + _this.card.slideshowId);
+ window.location.reload();
+ }
+ })["catch"](function (e) {
+ _this.count++;
+ });
+ })["catch"](function (e) {
+ _this.count++;
+ });
+ }.bind(this));
+ }
+ }
+});
+
+/***/ }),
+
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/SlideshowArtistCard.vue?vue&type=script&lang=js&":
+/*!**************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/SlideshowArtistCard.vue?vue&type=script&lang=js& ***!
+ \**************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ data: function data() {
+ return {};
+ },
+ props: ['card']
+});
+
+/***/ }),
+
+/***/ "./resources/js/components/QuickWorksCard.vue":
+/*!****************************************************!*\
+ !*** ./resources/js/components/QuickWorksCard.vue ***!
+ \****************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _QuickWorksCard_vue_vue_type_template_id_3f88e220___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./QuickWorksCard.vue?vue&type=template&id=3f88e220& */ "./resources/js/components/QuickWorksCard.vue?vue&type=template&id=3f88e220&");
+/* harmony import */ var _QuickWorksCard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./QuickWorksCard.vue?vue&type=script&lang=js& */ "./resources/js/components/QuickWorksCard.vue?vue&type=script&lang=js&");
+/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
+
+
+
+
+
+/* normalize component */
+;
+var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__.default)(
+ _QuickWorksCard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__.default,
+ _QuickWorksCard_vue_vue_type_template_id_3f88e220___WEBPACK_IMPORTED_MODULE_0__.render,
+ _QuickWorksCard_vue_vue_type_template_id_3f88e220___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* hot reload */
+if (false) { var api; }
+component.options.__file = "resources/js/components/QuickWorksCard.vue"
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);
+
+/***/ }),
+
+/***/ "./resources/js/components/SlideshowArtistCard.vue":
+/*!*********************************************************!*\
+ !*** ./resources/js/components/SlideshowArtistCard.vue ***!
+ \*********************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _SlideshowArtistCard_vue_vue_type_template_id_2f3acdac___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SlideshowArtistCard.vue?vue&type=template&id=2f3acdac& */ "./resources/js/components/SlideshowArtistCard.vue?vue&type=template&id=2f3acdac&");
+/* harmony import */ var _SlideshowArtistCard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SlideshowArtistCard.vue?vue&type=script&lang=js& */ "./resources/js/components/SlideshowArtistCard.vue?vue&type=script&lang=js&");
+/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
+
+
+
+
+
+/* normalize component */
+;
+var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__.default)(
+ _SlideshowArtistCard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__.default,
+ _SlideshowArtistCard_vue_vue_type_template_id_2f3acdac___WEBPACK_IMPORTED_MODULE_0__.render,
+ _SlideshowArtistCard_vue_vue_type_template_id_2f3acdac___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* hot reload */
+if (false) { var api; }
+component.options.__file = "resources/js/components/SlideshowArtistCard.vue"
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);
+
+/***/ }),
+
+/***/ "./resources/js/components/QuickWorksCard.vue?vue&type=script&lang=js&":
+/*!*****************************************************************************!*\
+ !*** ./resources/js/components/QuickWorksCard.vue?vue&type=script&lang=js& ***!
+ \*****************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_0_rules_0_use_0_node_modules_vue_loader_lib_index_js_vue_loader_options_QuickWorksCard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuickWorksCard.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/QuickWorksCard.vue?vue&type=script&lang=js&");
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_clonedRuleSet_5_0_rules_0_use_0_node_modules_vue_loader_lib_index_js_vue_loader_options_QuickWorksCard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__.default);
+
+/***/ }),
+
+/***/ "./resources/js/components/SlideshowArtistCard.vue?vue&type=script&lang=js&":
+/*!**********************************************************************************!*\
+ !*** ./resources/js/components/SlideshowArtistCard.vue?vue&type=script&lang=js& ***!
+ \**********************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_0_rules_0_use_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SlideshowArtistCard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideshowArtistCard.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/SlideshowArtistCard.vue?vue&type=script&lang=js&");
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_clonedRuleSet_5_0_rules_0_use_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SlideshowArtistCard_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__.default);
+
+/***/ }),
+
+/***/ "./resources/js/components/QuickWorksCard.vue?vue&type=template&id=3f88e220&":
+/*!***********************************************************************************!*\
+ !*** ./resources/js/components/QuickWorksCard.vue?vue&type=template&id=3f88e220& ***!
+ \***********************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_QuickWorksCard_vue_vue_type_template_id_3f88e220___WEBPACK_IMPORTED_MODULE_0__.render),
+/* harmony export */ "staticRenderFns": () => (/* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_QuickWorksCard_vue_vue_type_template_id_3f88e220___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns)
+/* harmony export */ });
+/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_QuickWorksCard_vue_vue_type_template_id_3f88e220___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuickWorksCard.vue?vue&type=template&id=3f88e220& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/QuickWorksCard.vue?vue&type=template&id=3f88e220&");
+
+
+/***/ }),
+
+/***/ "./resources/js/components/SlideshowArtistCard.vue?vue&type=template&id=2f3acdac&":
+/*!****************************************************************************************!*\
+ !*** ./resources/js/components/SlideshowArtistCard.vue?vue&type=template&id=2f3acdac& ***!
+ \****************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "render": () => (/* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SlideshowArtistCard_vue_vue_type_template_id_2f3acdac___WEBPACK_IMPORTED_MODULE_0__.render),
+/* harmony export */ "staticRenderFns": () => (/* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SlideshowArtistCard_vue_vue_type_template_id_2f3acdac___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns)
+/* harmony export */ });
+/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_SlideshowArtistCard_vue_vue_type_template_id_2f3acdac___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideshowArtistCard.vue?vue&type=template&id=2f3acdac& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/SlideshowArtistCard.vue?vue&type=template&id=2f3acdac&");
+
+
+/***/ }),
+
+/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/QuickWorksCard.vue?vue&type=template&id=3f88e220&":
+/*!**************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/QuickWorksCard.vue?vue&type=template&id=3f88e220& ***!
+ \**************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "render": () => (/* binding */ render),
+/* harmony export */ "staticRenderFns": () => (/* binding */ staticRenderFns)
+/* harmony export */ });
+var render = function() {
+ var _vm = this
+ var _h = _vm.$createElement
+ var _c = _vm._self._c || _h
+ return _c("card", { staticClass: "flex flex-col h-20" }, [
+ _c(
+ "label",
+ {
+ staticClass: "block p-8 h-full text-center cursor-pointer",
+ class: {
+ "pointer-events-none": _vm.uploading
+ }
+ },
+ [
+ _c("input", {
+ staticClass: "form-file-input",
+ attrs: {
+ id: "quick_upload",
+ type: "file",
+ multiple: "",
+ accept: ".jpg,.jpeg,.png,.gif,.svg,.mp4"
+ },
+ on: { change: _vm.selectFiles }
+ }),
+ _vm._v(" "),
+ !_vm.uploading
+ ? [_vm._v("\n " + _vm._s(_vm.card.text) + "\n ")]
+ : _vm._e(),
+ _vm._v(" "),
+ _vm.uploading
+ ? [_c("em", [_vm._v(_vm._s(_vm.__("Uploading")) + "...")])]
+ : _vm._e()
+ ],
+ 2
+ )
+ ])
+}
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+
+/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/SlideshowArtistCard.vue?vue&type=template&id=2f3acdac&":
+/*!*******************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/SlideshowArtistCard.vue?vue&type=template&id=2f3acdac& ***!
+ \*******************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "render": () => (/* binding */ render),
+/* harmony export */ "staticRenderFns": () => (/* binding */ staticRenderFns)
+/* harmony export */ });
+var render = function() {
+ var _vm = this
+ var _h = _vm.$createElement
+ var _c = _vm._self._c || _h
+ return _c("card", { staticClass: "flex flex-col flex flex-col h-20" }, [
+ _c(
+ "a",
+ {
+ staticClass: "block p-8 h-full text-center",
+ attrs: { href: _vm.card.url }
+ },
+ [_vm._v("\n " + _vm._s(_vm.card.text) + "\n ")]
+ )
+ ])
+}
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+
+/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***!
+ \********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ normalizeComponent)
+/* harmony export */ });
+/* globals __VUE_SSR_CONTEXT__ */
+
+// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
+// This module is a runtime utility for cleaner component module output and will
+// be included in the final webpack user bundle.
+
+function normalizeComponent (
+ scriptExports,
+ render,
+ staticRenderFns,
+ functionalTemplate,
+ injectStyles,
+ scopeId,
+ moduleIdentifier, /* server only */
+ shadowMode /* vue-cli only */
+) {
+ // Vue.extend constructor export interop
+ var options = typeof scriptExports === 'function'
+ ? scriptExports.options
+ : scriptExports
+
+ // render functions
+ if (render) {
+ options.render = render
+ options.staticRenderFns = staticRenderFns
+ options._compiled = true
+ }
+
+ // functional template
+ if (functionalTemplate) {
+ options.functional = true
+ }
+
+ // scopedId
+ if (scopeId) {
+ options._scopeId = 'data-v-' + scopeId
+ }
+
+ var hook
+ if (moduleIdentifier) { // server build
+ hook = function (context) {
+ // 2.3 injection
+ context =
+ context || // cached call
+ (this.$vnode && this.$vnode.ssrContext) || // stateful
+ (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
+ // 2.2 with runInNewContext: true
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
+ context = __VUE_SSR_CONTEXT__
+ }
+ // inject component styles
+ if (injectStyles) {
+ injectStyles.call(this, context)
+ }
+ // register component module identifier for async chunk inferrence
+ if (context && context._registeredComponents) {
+ context._registeredComponents.add(moduleIdentifier)
+ }
+ }
+ // used by ssr in case component is cached and beforeCreate
+ // never gets called
+ options._ssrRegister = hook
+ } else if (injectStyles) {
+ hook = shadowMode
+ ? function () {
+ injectStyles.call(
+ this,
+ (options.functional ? this.parent : this).$root.$options.shadowRoot
+ )
+ }
+ : injectStyles
+ }
+
+ if (hook) {
+ if (options.functional) {
+ // for template-only hot-reload because in that case the render fn doesn't
+ // go through the normalizer
+ options._injectStyles = hook
+ // register for functional component in vue file
+ var originalRender = options.render
+ options.render = function renderWithStyleInjection (h, context) {
+ hook.call(context)
+ return originalRender(h, context)
+ }
+ } else {
+ // inject component registration as beforeCreate hook
+ var existing = options.beforeCreate
+ options.beforeCreate = existing
+ ? [].concat(existing, hook)
+ : [hook]
+ }
+ }
+
+ return {
+ exports: scriptExports,
+ options: options
+ }
+}
+
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ (() => {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = (exports) => {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ })();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
+(() => {
+/*!*******************************!*\
+ !*** ./resources/js/cards.js ***!
+ \*******************************/
+Nova.booting(function (Vue, router, store) {
+ Vue.component('quick-works-card', __webpack_require__(/*! ./components/QuickWorksCard */ "./resources/js/components/QuickWorksCard.vue").default), Vue.component('slideshow-artist-card', __webpack_require__(/*! ./components/SlideshowArtistCard */ "./resources/js/components/SlideshowArtistCard.vue").default);
+});
+})();
+
+/******/ })()
+;
\ No newline at end of file
diff --git a/dist/mix-manifest.json b/dist/mix-manifest.json
new file mode 100644
index 0000000..6361db4
--- /dev/null
+++ b/dist/mix-manifest.json
@@ -0,0 +1,3 @@
+{
+ "/js/cards.js": "/js/cards.js"
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..b0e08d5
--- /dev/null
+++ b/package.json
@@ -0,0 +1,25 @@
+{
+ "private": true,
+ "scripts": {
+ "dev": "mix",
+ "watch": "mix watch",
+ "hot": "mix watch --hot",
+ "prod": "mix --production",
+ "format": "prettier --write 'resources/**/*.{css,js,vue}'"
+ },
+ "devDependencies": {
+ "cross-env": "^7.0.3",
+ "laravel-mix": "^6.0.11",
+ "postcss": "^8.2.5",
+ "prettier": "^2.2.1",
+ "resolve-url-loader": "^3.1.2",
+ "sass": "^1.32.6",
+ "sass-loader": "^11.0.0",
+ "vue-loader": "^15.9.6",
+ "vue-template-compiler": "^2.6.12"
+ },
+ "dependencies": {
+ "laravel-nova": "^1.8.0",
+ "vue": "^2.6.12"
+ }
+}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
new file mode 100644
index 0000000..bfc86f5
--- /dev/null
+++ b/phpunit.xml.dist
@@ -0,0 +1,31 @@
+
+
+
+
+ tests
+
+
+
+
+ src/
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/js/cards.js b/resources/js/cards.js
new file mode 100644
index 0000000..626cde3
--- /dev/null
+++ b/resources/js/cards.js
@@ -0,0 +1,4 @@
+Nova.booting((Vue, router, store) => {
+ Vue.component('quick-works-card', require('./components/QuickWorksCard').default),
+ Vue.component('slideshow-artist-card', require('./components/SlideshowArtistCard').default)
+})
diff --git a/resources/js/components/QuickWorksCard.vue b/resources/js/components/QuickWorksCard.vue
new file mode 100644
index 0000000..927a295
--- /dev/null
+++ b/resources/js/components/QuickWorksCard.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
diff --git a/resources/js/components/SlideshowArtistCard.vue b/resources/js/components/SlideshowArtistCard.vue
new file mode 100644
index 0000000..334c848
--- /dev/null
+++ b/resources/js/components/SlideshowArtistCard.vue
@@ -0,0 +1,23 @@
+
+
+
+ {{ card.text }}
+
+
+
+
+
diff --git a/resources/lang/nova-cms-portfolio/de/artists.php b/resources/lang/nova-cms-portfolio/de/artists.php
new file mode 100644
index 0000000..926cccf
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/de/artists.php
@@ -0,0 +1,11 @@
+ 'Künstler',
+ 'artists' => 'Künstler',
+ 'description' => 'Beschreibung/Vita/etc.',
+ 'portfolio_image' => 'Portfolio-Bild',
+ 'portrait_image' => 'Portrait-Bild',
+ 'slug_explanation' => 'Wird in der URL verwendet',
+ 'title' => 'Name',
+];
diff --git a/resources/lang/nova-cms-portfolio/de/categories.php b/resources/lang/nova-cms-portfolio/de/categories.php
new file mode 100644
index 0000000..ba8b3fc
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/de/categories.php
@@ -0,0 +1,6 @@
+ 'Kategorie',
+ 'categories' => 'Kategorien',
+];
diff --git a/resources/lang/nova-cms-portfolio/de/disciplines.php b/resources/lang/nova-cms-portfolio/de/disciplines.php
new file mode 100644
index 0000000..656ac89
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/de/disciplines.php
@@ -0,0 +1,6 @@
+ 'Disziplin',
+ 'disciplines' => 'Disziplinen',
+];
diff --git a/resources/lang/nova-cms-portfolio/de/portfolio.php b/resources/lang/nova-cms-portfolio/de/portfolio.php
new file mode 100644
index 0000000..bf645c9
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/de/portfolio.php
@@ -0,0 +1,7 @@
+ 'Hintergrund-Farbe',
+ 'description' => 'Beschreibung',
+ 'title' => 'Titel',
+];
diff --git a/resources/lang/nova-cms-portfolio/de/slideshows.php b/resources/lang/nova-cms-portfolio/de/slideshows.php
new file mode 100644
index 0000000..2415833
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/de/slideshows.php
@@ -0,0 +1,12 @@
+ 'Werk hinzufügen',
+ 'caption' => 'Caption',
+ 'quick_upload' => 'Werke-Schnellupload',
+ 'slide' => 'Werk',
+ 'slides' => 'Werke',
+ 'slideshows' => 'Bildstrecken',
+ 'slideshow' => 'Bildstrecke',
+ 'title' => 'Titel',
+];
diff --git a/resources/lang/nova-cms-portfolio/de/works.php b/resources/lang/nova-cms-portfolio/de/works.php
new file mode 100644
index 0000000..2fea80b
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/de/works.php
@@ -0,0 +1,9 @@
+ 'Caption',
+ 'is_artist_portfolio_image' => 'Ist Künstler-Portfolio-Bild',
+ 'title' => 'Titel',
+ 'work' => 'Werk',
+ 'works' => 'Werke',
+];
diff --git a/resources/lang/nova-cms-portfolio/en/artists.php b/resources/lang/nova-cms-portfolio/en/artists.php
new file mode 100644
index 0000000..8a2ff5e
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/en/artists.php
@@ -0,0 +1,12 @@
+ 'artist',
+ 'artists' => 'artists',
+ 'back_to_wildcard' => 'back to :artist',
+ 'description' => 'description/CV/etc.',
+ 'portfolio_image' => 'portfolio image',
+ 'portrait_image' => 'portrait image',
+ 'slug_explanation' => 'is used in the URL',
+ 'title' => 'name',
+];
diff --git a/resources/lang/nova-cms-portfolio/en/categories.php b/resources/lang/nova-cms-portfolio/en/categories.php
new file mode 100644
index 0000000..49d2b81
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/en/categories.php
@@ -0,0 +1,6 @@
+ 'Category',
+ 'categories' => 'Categories',
+];
diff --git a/resources/lang/nova-cms-portfolio/en/disciplines.php b/resources/lang/nova-cms-portfolio/en/disciplines.php
new file mode 100644
index 0000000..2c8d013
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/en/disciplines.php
@@ -0,0 +1,6 @@
+ 'discipline',
+ 'disciplines' => 'disciplines',
+];
diff --git a/resources/lang/nova-cms-portfolio/en/portfolio.php b/resources/lang/nova-cms-portfolio/en/portfolio.php
new file mode 100644
index 0000000..dcbe4ba
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/en/portfolio.php
@@ -0,0 +1,7 @@
+ 'background color',
+ 'description' => 'description',
+ 'title' => 'title',
+];
diff --git a/resources/lang/nova-cms-portfolio/en/slideshows.php b/resources/lang/nova-cms-portfolio/en/slideshows.php
new file mode 100644
index 0000000..b9794c5
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/en/slideshows.php
@@ -0,0 +1,13 @@
+ 'add work',
+ 'caption' => 'caption',
+ 'quick_upload' => 'quick upload',
+ 'quick_wildcard_upload' => 'quick :works upload',
+ 'slide' => 'work',
+ 'slides' => 'works',
+ 'slideshows' => 'image sets',
+ 'slideshow' => 'image set',
+ 'title' => 'title',
+];
diff --git a/resources/lang/nova-cms-portfolio/en/works.php b/resources/lang/nova-cms-portfolio/en/works.php
new file mode 100644
index 0000000..0ef2689
--- /dev/null
+++ b/resources/lang/nova-cms-portfolio/en/works.php
@@ -0,0 +1,9 @@
+ 'caption',
+ 'is_artist_portfolio_image' => 'is artist portfolio image',
+ 'title' => 'title',
+ 'work' => 'work',
+ 'works' => 'works',
+];
diff --git a/routes/api.php b/routes/api.php
new file mode 100644
index 0000000..6042e03
--- /dev/null
+++ b/routes/api.php
@@ -0,0 +1,8 @@
+name('nova-page-multi');
+ // Route::get(RoutesHelper::prefix().'/', 'Kraenkvisuell\NovaCms\Controllers\PagesController@show')->name('nova-page-single-home');
+ // Route::get(RoutesHelper::prefix().'/{page}', 'Kraenkvisuell\NovaCms\Controllers\PagesController@show')->name('nova-page-single');
+}
diff --git a/src/Console/DummyData.php b/src/Console/DummyData.php
new file mode 100644
index 0000000..8a016bb
--- /dev/null
+++ b/src/Console/DummyData.php
@@ -0,0 +1,24 @@
+info('seeding dummy data');
+
+ if (\Kraenkvisuell\NovaCmsPortfolio\Models\Discipline::count() == 0) {
+ $this->call('db:seed', [
+ 'class' => DummySeeder::class
+ ]);
+ } else {
+ $this->warn('did not seed data because tables are not empty.');
+ }
+ }
+}
diff --git a/src/Controllers/PortfolioController.php b/src/Controllers/PortfolioController.php
new file mode 100644
index 0000000..c302f1e
--- /dev/null
+++ b/src/Controllers/PortfolioController.php
@@ -0,0 +1,25 @@
+ 1 ? $args[0] : app()->getLocale();
+ $slug = count($args) > 1 ? $args[1] : $args[0];
+
+ if (count($args) > 1) {
+ app()->setLocale($locale);
+ }
+
+ return Artist::where('slug->' . $locale, $slug)->first();
+ }
+}
diff --git a/src/Controllers/SlideshowsController.php b/src/Controllers/SlideshowsController.php
new file mode 100644
index 0000000..24e4436
--- /dev/null
+++ b/src/Controllers/SlideshowsController.php
@@ -0,0 +1,19 @@
+works as $position => $work) {
+ $work->update(['sort_order' => $position + 1]);
+ }
+
+
+ return ['success' => true];
+ }
+}
diff --git a/src/Controllers/WorksController.php b/src/Controllers/WorksController.php
new file mode 100644
index 0000000..e0bd24b
--- /dev/null
+++ b/src/Controllers/WorksController.php
@@ -0,0 +1,23 @@
+workFilenames();
+ $filename = API::getOriginalName($fileId);
+
+ if (!in_array($filename, $existingFilenames)) {
+ $slideshow->works()->create([
+ 'file' => $fileId,
+ ]);
+ }
+
+ return ['success' => true];
+ }
+}
diff --git a/src/Facades/RoutesHelper.php b/src/Facades/RoutesHelper.php
new file mode 100644
index 0000000..e92e4ea
--- /dev/null
+++ b/src/Facades/RoutesHelper.php
@@ -0,0 +1,13 @@
+getLocale();
+ $name = $this->faker->unique()->name;
+ $slug = Str::slug($name);
+ return [
+ 'name' => $name,
+ 'slug' => $slug,
+ 'description' => [ $locale => $this->faker->sentences() ],
+ 'meta_description' => [ $locale => $this->faker->sentence ],
+ 'browser_title' => [ $locale => $this->faker->words ],
+ 'robots' => [
+ 'index' => true,
+ 'follow' => true,
+ ]
+ ];
+ }
+}
diff --git a/src/Factories/CategoryFactory.php b/src/Factories/CategoryFactory.php
new file mode 100644
index 0000000..feca2b6
--- /dev/null
+++ b/src/Factories/CategoryFactory.php
@@ -0,0 +1,22 @@
+getLocale();
+ $title = ucfirst($this->faker->unique()->word);
+ $slug = Str::slug($title);
+ return [
+ 'title' => [ $locale => $title ],
+ 'slug' => [ $locale => $slug ],
+ ];
+ }
+}
diff --git a/src/Factories/DisciplineFactory.php b/src/Factories/DisciplineFactory.php
new file mode 100644
index 0000000..00e4751
--- /dev/null
+++ b/src/Factories/DisciplineFactory.php
@@ -0,0 +1,29 @@
+getLocale();
+ $title = ucfirst($this->faker->unique()->word);
+ $slug = Str::slug($title);
+ return [
+ 'title' => [ $locale => $title ],
+ 'slug' => [ $locale => $slug ],
+ 'description' => [ $locale => $this->faker->sentences() ],
+ 'meta_description' => [ $locale => $this->faker->sentence ],
+ 'browser_title' => [ $locale => $this->faker->words ],
+ 'robots' => [
+ 'index' => true,
+ 'follow' => true,
+ ]
+ ];
+ }
+}
diff --git a/src/Factories/SlideshowFactory.php b/src/Factories/SlideshowFactory.php
new file mode 100644
index 0000000..331ccc2
--- /dev/null
+++ b/src/Factories/SlideshowFactory.php
@@ -0,0 +1,30 @@
+getLocale();
+ $title = ucwords($this->faker->unique()->words(3, true));
+ $slug = Str::slug($title);
+
+ return [
+ 'title' => $title,
+ 'slug' => $slug,
+ 'description' => [ $locale => $this->faker->sentences() ],
+ 'meta_description' => [ $locale => $this->faker->sentence ],
+ 'browser_title' => [ $locale => $this->faker->words ],
+ 'robots' => [
+ 'index' => true,
+ 'follow' => true,
+ ]
+ ];
+ }
+}
diff --git a/src/Models/Artist.php b/src/Models/Artist.php
new file mode 100644
index 0000000..0d676e2
--- /dev/null
+++ b/src/Models/Artist.php
@@ -0,0 +1,112 @@
+ 'array',
+ ];
+
+ protected static function newFactory()
+ {
+ return ArtistFactory::new();
+ }
+
+ public function slideshows()
+ {
+ return $this->hasMany(Slideshow::class)
+ ->orderBy('sort_order');
+ }
+
+ public function works()
+ {
+ return $this->hasManyThrough(Work::class, Slideshow::class);
+ }
+
+ public function disciplines()
+ {
+ return $this->belongsToMany(Discipline::class, config('nova-cms-portfolio.db_prefix').'artist_discipline');
+ }
+
+ public function url()
+ {
+ $locales = config('nova-translatable.locales');
+ $locale = app()->getLocale();
+
+ // Multi-language
+ if (is_array($locales) and count($locales) > 1) {
+ return route('nova-artist-multi', ['locale' => $locale, 'artist' => $this->slug]);
+ }
+
+ return route('nova-artist-single', ['artist' => $this->slug]);
+ }
+
+ public function portfolioImage()
+ {
+ if ($this->portfolio_image) {
+ return nova_cms_image($this->portfolio_image);
+ }
+
+ if ($this->works->count()) {
+ $markedWork = $this->works->where('is_artist_portfolio_image', true)->first();
+
+ if (!$markedWork) {
+ $markedWork = $this->works->where('show_in_overview', true)->first();
+ }
+
+ if (!$markedWork) {
+ $markedWork = $this->works->first();
+ }
+
+ if ($markedWork) {
+ return nova_cms_image($markedWork->file);
+ }
+ }
+
+ return null;
+ }
+
+ public function categoriesForDiscipline($disciplineId)
+ {
+ $slidewhows = $this->slideshows;
+
+ if ($disciplineId) {
+ $slidewhows = $slidewhows->filter(function ($slideshow) use ($disciplineId) {
+ return !$slideshow->disciplines
+ || $slideshow->disciplines->pluck('id')->contains($disciplineId);
+ });
+ }
+
+ $categories = collect([]);
+
+ foreach ($slidewhows as $slidewhow) {
+ foreach ($slidewhow->categories as $category) {
+ $categories->push($category);
+ }
+ }
+
+ return $categories->unique('id')->sortBy('title');
+ }
+}
diff --git a/src/Models/Category.php b/src/Models/Category.php
new file mode 100644
index 0000000..25d9f8e
--- /dev/null
+++ b/src/Models/Category.php
@@ -0,0 +1,41 @@
+title;
+ }
+
+ public function slideshows()
+ {
+ return $this->belongsToMany(Slideshow::class, config('nova-cms-portfolio.db_prefix').'category_slideshow');
+ }
+}
diff --git a/src/Models/Discipline.php b/src/Models/Discipline.php
new file mode 100644
index 0000000..f79c66a
--- /dev/null
+++ b/src/Models/Discipline.php
@@ -0,0 +1,130 @@
+ 'sort_order',
+ 'sort_when_creating' => true,
+ ];
+
+ protected $guarded = [];
+
+ protected static function newFactory()
+ {
+ return DisciplineFactory::new();
+ }
+
+ public function getTable()
+ {
+ return config('nova-cms-portfolio.db_prefix').'disciplines';
+ }
+
+ public $translatable = [
+ 'title',
+ 'slug',
+ 'description',
+ 'browser_title',
+ 'meta_description',
+ ];
+
+ protected $casts = [
+ 'robots' => 'array',
+ ];
+
+ public function getTitleForDropdownAttribute()
+ {
+ return $this->title;
+ }
+
+ public function artists()
+ {
+ return $this->belongsToMany(Artist::class, config('nova-cms-portfolio.db_prefix').'artist_discipline');
+ }
+
+ public function getCategories()
+ {
+ $categories = collect([]);
+
+ $this->artists
+ ->where('is_published', true)
+ ->each(function ($artist) use (&$categories) {
+ $artist->slideshows->each(function ($slideshow) use (&$categories) {
+ $slideshow->categories->each(function ($category) use (&$categories) {
+ $categories->push($category);
+ });
+ });
+ });
+
+ $categories = $categories->unique('title')->sortBy('title')->all();
+
+ return $categories;
+ }
+
+ public function getCachedCategories()
+ {
+ return Cache::remember('disciplineCategories.'.app()->getLocale(), now()->addSeconds(5), function () {
+ return $this->getCategories();
+ });
+ }
+
+ public static function getWithSortedArtists()
+ {
+ return static::ordered()
+ ->with('artists', function ($q) {
+ $q->with([
+ 'slideshows.categories'
+ ])
+ ->where('is_published', true)
+ ->has('slideshows')
+ ->orderBy('name');
+ })
+ ->whereHas('artists', function ($q) {
+ $q->where('is_published', true)
+ ->has('slideshows');
+ })
+ ->get();
+ }
+
+ public static function getCachedWithSortedArtists()
+ {
+ return Cache::remember('discipliesWithSortedArtists.'.app()->getLocale(), now()->addSeconds(5), function () {
+ return static::getWithSortedArtists();
+ });
+ }
+
+ public static function getCachedWithSortedArtistsAndCategories()
+ {
+ $disciplines = static::getCachedWithSortedArtists();
+
+ $disciplines->each(function ($discipline) {
+ $discipline->categories = $discipline->getCategories();
+ });
+
+ return $disciplines;
+ }
+
+ public static function getVisibleFilled()
+ {
+ return static::ordered()
+ ->whereHas('artists', function ($q) {
+ $q->where('is_published', true)
+ ->has('slideshows');
+ })
+ ->select('title', 'slug')
+ ->get();
+ }
+}
diff --git a/src/Models/Slideshow.php b/src/Models/Slideshow.php
new file mode 100644
index 0000000..a5128f6
--- /dev/null
+++ b/src/Models/Slideshow.php
@@ -0,0 +1,104 @@
+ 'sort_order',
+ 'sort_when_creating' => true,
+ 'sort_on_has_many' => true,
+ ];
+
+ protected $guarded = [];
+
+ public function getTable()
+ {
+ return config('nova-cms-portfolio.db_prefix').'slideshows';
+ }
+
+ protected static function newFactory()
+ {
+ return SlideshowFactory::new();
+ }
+
+ public $translatable = [
+ 'description',
+ 'browser_title',
+ 'meta_description',
+ ];
+
+ protected $casts = [
+ 'robots' => 'array',
+ ];
+
+ public function artist()
+ {
+ return $this->belongsTo(Artist::class);
+ }
+
+ public function discipline()
+ {
+ return $this->belongsTo(Discipline::class);
+ }
+
+ public function works()
+ {
+ return $this->hasMany(Work::class);
+ }
+
+ public function categories()
+ {
+ return $this->belongsToMany(Category::class, config('nova-cms-portfolio.db_prefix').'category_slideshow');
+ }
+
+ public function getDiscipline()
+ {
+ if ($this->discipline) {
+ return $this->discipline;
+ }
+
+ return $this->artist->disciplines->first();
+ }
+
+ public function buildSortQuery()
+ {
+ return static::query()->where('artist_id', $this->artist_id);
+ }
+
+ public function workFilenames()
+ {
+ $filenames = [];
+ foreach ($this->works as $work) {
+ $filenames[] = API::getOriginalName($work->file);
+ }
+ ray($filenames);
+ return $filenames;
+ }
+
+ public function scopePresentable($builder)
+ {
+ return $builder->where('is_published', true)
+ ->has('works');
+ }
+
+ public function scopePresentableForOverview($builder)
+ {
+ return $builder->where('is_published', true)
+ ->whereHas('works', function ($q) {
+ $q->where('show_in_overview', true);
+ });
+ }
+}
diff --git a/src/Models/Work.php b/src/Models/Work.php
new file mode 100644
index 0000000..e4a7060
--- /dev/null
+++ b/src/Models/Work.php
@@ -0,0 +1,42 @@
+ 'sort_order',
+ 'sort_when_creating' => true,
+ 'sort_on_has_many' => true,
+ ];
+
+ protected $guarded = [];
+
+ public function getTable()
+ {
+ return config('nova-cms-portfolio.db_prefix').'works';
+ }
+
+ public $translatable = [
+ 'title',
+ 'slug',
+ ];
+
+ public function slideshow()
+ {
+ return $this->belongsTo(Slideshow::class);
+ }
+
+ public function buildSortQuery()
+ {
+ return static::query()->where('slideshow_id', $this->slideshow_id);
+ }
+}
diff --git a/src/Nova/Artist.php b/src/Nova/Artist.php
new file mode 100644
index 0000000..f1ea94f
--- /dev/null
+++ b/src/Nova/Artist.php
@@ -0,0 +1,120 @@
+ 'asc'
+ ];
+
+ public static function label()
+ {
+ return __(config('nova-cms-portfolio.custom_artists_label'))
+ ?: ucfirst(__('nova-cms-portfolio::artists.artists'));
+ }
+
+ public static function singularLabel()
+ {
+ return __(config('nova-cms-portfolio.custom_artist_label'))
+ ?: ucfirst(__('nova-cms-portfolio::artists.artist'));
+ }
+
+ public function fields(Request $request)
+ {
+ $slideshowLabel = __(config('nova-cms-portfolio.custom_slideshows_label'))
+ ?: __('nova-cms-portfolio::slideshows.slideshows');
+
+ $slideshowSingularLabel = __(config('nova-cms-portfolio.custom_slideshow_label'))
+ ?: __('nova-cms-portfolio::slideshows.slideshow');
+
+ $tabs = [];
+
+ $tabs[__('nova-cms::settings.settings')] = [
+ Text::make(__('nova-cms-portfolio::artists.title'), 'name')
+ ->rules('required')
+ ->onlyOnForms(),
+
+ Slug::make(__('nova-cms::pages.slug'), 'slug')->from('name')
+ ->rules('required')
+ ->creationRules('unique:'.config('nova-cms-portfolio.db_prefix').'artists,slug')
+ ->updateRules('unique:'.config('nova-cms-portfolio.db_prefix').'artists,slug,{{resourceId}}')
+ ->help(__('nova-cms-portfolio::artists.slug_explanation'))
+ ->onlyOnForms(),
+
+ BelongsToManyField::make(__('nova-cms-portfolio::disciplines.disciplines'), 'disciplines', Discipline::class)
+ ->optionsLabel('title')
+ ->hideFromDetail(),
+
+ Color::make(__('nova-cms-portfolio::portfolio.background_color'), 'bgcolor')
+ ->sketch()
+ ->hideFromDetail(),
+ ];
+
+ $tabs[__('nova-cms::pages.content')] = [
+ TipTap::make(__('nova-cms-portfolio::artists.description'), 'description')
+ ->onlyOnForms(),
+
+ MediaLibrary::make(__('nova-cms-portfolio::artists.portfolio_image'), 'portfolio_image')
+ ->uploadOnly()
+ ->onlyOnForms(),
+
+ MediaLibrary::make(__('nova-cms-portfolio::artists.portrait_image'), 'portrait_image')
+ ->uploadOnly()
+ ->onlyOnForms(),
+ ];
+
+ $tabs[__('nova-cms::seo.seo')] = Seo::make();
+
+ return [
+ Stack::make('Details', [
+ Line::make('', 'name')->asBase(),
+ Line::make('', function () {
+ return '/'.$this->slug;
+ })->asSmall(),
+ ]),
+
+ (new Tabs(static::singularLabel(), $tabs))->withToolbar(),
+
+ Stack::make('', [
+ Line::make($slideshowLabel, function () use ($slideshowLabel, $slideshowSingularLabel) {
+ return '';
+ })->asHtml(),
+ ])
+ ->onlyOnIndex(),
+
+ HasMany::make($slideshowLabel, 'slideshows', Slideshow::class),
+ ];
+ }
+}
diff --git a/src/Nova/Category.php b/src/Nova/Category.php
new file mode 100644
index 0000000..ff2ed83
--- /dev/null
+++ b/src/Nova/Category.php
@@ -0,0 +1,57 @@
+resource->title;
+ }
+
+ public static function label()
+ {
+ return ucfirst(__('nova-cms-portfolio::categories.categories'));
+ }
+
+ public static function singularLabel()
+ {
+ return ucfirst(__('nova-cms-portfolio::categories.category'));
+ }
+
+ public function fields(Request $request)
+ {
+ return [
+
+ Text::make(__('nova-cms-portfolio::portfolio.title'), 'title')
+ ->rules('required')
+ ->translatable(),
+
+ Text::make(__('nova-cms::pages.slug'), 'slug')
+ ->rules('required')
+ ->translatable()
+ ->help(__('nova-cms-portfolio::artists.slug_explanation')),
+ ];
+ }
+
+ public static function redirectAfterUpdate(NovaRequest $request, $resource)
+ {
+ return '/resources/categories';
+ }
+
+ public static function redirectAfterCreate(NovaRequest $request, $resource)
+ {
+ return '/resources/categories';
+ }
+}
diff --git a/src/Nova/Discipline.php b/src/Nova/Discipline.php
new file mode 100644
index 0000000..7b74108
--- /dev/null
+++ b/src/Nova/Discipline.php
@@ -0,0 +1,88 @@
+resource->title;
+ }
+
+ public static function label()
+ {
+ return ucfirst(__('nova-cms-portfolio::disciplines.disciplines'));
+ }
+
+ public static function singularLabel()
+ {
+ return ucfirst(__('nova-cms-portfolio::disciplines.discipline'));
+ }
+
+ public function fields(Request $request)
+ {
+ $tabs = [];
+
+ $tabs[__('nova-cms::settings.settings')] = [
+ Text::make(__('nova-cms-portfolio::portfolio.title'), 'title')
+ ->rules('required')
+ ->translatable()
+ ->onlyOnForms(),
+
+ Text::make(__('nova-cms::pages.slug'), 'slug')
+ ->rules('required')
+ ->translatable()
+ ->help(__('nova-cms-portfolio::artists.slug_explanation'))
+ ->onlyOnForms(),
+ ];
+
+ $tabs[__('nova-cms::pages.content')] = [
+ TipTap::make(__('nova-cms-portfolio::portfolio.description'), 'description')
+ ->onlyOnForms(),
+ ];
+
+ $tabs[__('nova-cms::seo.seo')] = Seo::make();
+
+ return [
+ Stack::make('Details', [
+ Line::make('', 'title')->asBase(),
+ Line::make('', function () {
+ return '/'.$this->slug;
+ })->asSmall(),
+ ]),
+
+ (new Tabs(static::singularLabel(), $tabs))->withToolbar(),
+ ];
+ }
+
+ public static function redirectAfterUpdate(NovaRequest $request, $resource)
+ {
+ return '/resources/disciplines';
+ }
+
+ public static function redirectAfterCreate(NovaRequest $request, $resource)
+ {
+ return '/resources/disciplines';
+ }
+}
diff --git a/src/Nova/Resource.php b/src/Nova/Resource.php
new file mode 100644
index 0000000..bf3b644
--- /dev/null
+++ b/src/Nova/Resource.php
@@ -0,0 +1,18 @@
+rules('required'),
+
+ Slug::make(__('nova-cms::pages.slug'), 'slug')->from('title')
+ ->rules('required')
+ ->creationRules('unique:'.config('nova-cms-portfolio.db_prefix').'slideshows,slug')
+ ->updateRules('unique:'.config('nova-cms-portfolio.db_prefix').'slideshows,slug,{{resourceId}}')
+ ->onlyOnForms(),
+
+ BelongsToManyField::make(__('nova-cms-portfolio::categories.categories'), 'categories', Category::class)
+ ->optionsLabel('title'),
+
+ Stack::make('', [
+ Line::make($workLabel, function () use ($workLabel, $workSingularLabel) {
+ return '';
+ })->asHtml(),
+ ])
+ ->onlyOnIndex(),
+
+ HasMany::make($workLabel, 'works', Work::class),
+ ];
+
+ $artist = $this->artist;
+ if (!$artist) {
+ $artist = $request->viaResourceId ? Artist::find($request->viaResourceId) : null;
+ }
+
+ if ($artist && $artist->disciplines->count() > 1) {
+ $options = $artist->disciplines->pluck('title', 'id')->toArray();
+ $fields[] = RadioButton::make(ucfirst(__('nova-cms-portfolio::disciplines.discipline')), 'discipline_id')
+ ->options($options)
+ ->default(key($options));
+ }
+
+ return $fields;
+ }
+
+ public function cards(Request $request)
+ {
+ return [
+ (new QuickWorksCard)->addMeta($request->resourceId)->onlyOnDetail(),
+ (new SlideshowArtistCard)->addMeta($request->resourceId)->onlyOnDetail(),
+ ];
+ }
+}
diff --git a/src/Nova/Work.php b/src/Nova/Work.php
new file mode 100644
index 0000000..b1bc96a
--- /dev/null
+++ b/src/Nova/Work.php
@@ -0,0 +1,69 @@
+uploadOnly(),
+
+ Stack::make('Details', [
+ Line::make('', function () {
+ return API::getOriginalName($this->file);
+ })->asBase(),
+ ]),
+
+ Text::make(__('nova-cms::pages.title'), 'title'),
+
+ Boolean::make(__('nova-cms-portfolio::works.is_artist_portfolio_image'), 'is_artist_portfolio_image'),
+ ];
+ }
+
+ public static function redirectAfterUpdate(NovaRequest $request, $resource)
+ {
+ return '/resources/slideshows/'.$resource->slideshow_id;
+ }
+
+ public static function redirectAfterCreate(NovaRequest $request, $resource)
+ {
+ return '/resources/slideshows/'.$resource->slideshow_id;
+ }
+}
diff --git a/src/NovaCmsPortfolioServiceProvider.php b/src/NovaCmsPortfolioServiceProvider.php
new file mode 100644
index 0000000..d9242d3
--- /dev/null
+++ b/src/NovaCmsPortfolioServiceProvider.php
@@ -0,0 +1,80 @@
+loadTranslationsFrom(__DIR__.'/../resources/lang/nova-cms-portfolio', 'nova-cms-portfolio');
+
+ $this->publishes([
+ __DIR__.'/../resources/lang/nova-cms-portfolio' => resource_path('lang/vendor/nova-cms-portfolio'),
+ ]);
+
+ $this->loadMigrationsFrom(__DIR__ . '/../database/migrations');
+
+ $this->loadRoutesFrom(__DIR__.'/../routes/web.php');
+
+ $this->publishes([
+ __DIR__ . '/../config/nova-cms-portfolio.php' => config_path('nova-cms-portfolio.php'),
+ ]);
+
+ Nova::resources([
+ Work::class,
+ Artist::class,
+ Category::class,
+ Slideshow::class,
+ Discipline::class,
+ ]);
+
+ // Serve assets
+ Nova::serving(function (ServingNova $event) {
+ Nova::script('cards', __DIR__.'/../dist/js/cards.js');
+ });
+
+ if ($this->app->runningInConsole()) {
+ $this->commands([
+ DummyData::class,
+ ]);
+ }
+
+ $this->app->booted(function () {
+ $this->routes();
+ });
+
+ WorkModel::observe(WorkObserver::class);
+ }
+
+ public function register()
+ {
+ $this->mergeConfigFrom(
+ __DIR__ . '/../config/nova-cms-portfolio.php',
+ 'nova-cms-portfolio'
+ );
+ }
+
+ protected function routes()
+ {
+ if ($this->app->routesAreCached()) {
+ return;
+ }
+
+ Route::middleware(['nova'])
+ ->prefix('nova-vendor/nova-cms-portfolio')
+ ->group(__DIR__.'/../routes/api.php');
+ }
+}
diff --git a/src/Observers/WorkObserver.php b/src/Observers/WorkObserver.php
new file mode 100644
index 0000000..bd767a3
--- /dev/null
+++ b/src/Observers/WorkObserver.php
@@ -0,0 +1,29 @@
+ensureOnlyOneArtistPortfolioImage($work);
+ }
+
+ public function updated(Work $work)
+ {
+ $this->ensureOnlyOneArtistPortfolioImage($work);
+ }
+
+ protected function ensureOnlyOneArtistPortfolioImage($work)
+ {
+ if ($work->is_artist_portfolio_image) {
+ Work::withoutEvents(function () use ($work) {
+ Work::where('id', '!=', $work->id)
+ ->where('is_artist_portfolio_image', true)
+ ->update(['is_artist_portfolio_image' => false]);
+ });
+ }
+ }
+}
diff --git a/src/QuickWorksCard.php b/src/QuickWorksCard.php
new file mode 100644
index 0000000..dbbd538
--- /dev/null
+++ b/src/QuickWorksCard.php
@@ -0,0 +1,40 @@
+ __(config('nova-cms-portfolio.custom_works_label'))
+ ?: __('nova-cms-portfolio::works.works')
+ ]
+ );
+
+ return $this->withMeta([
+ 'text' => $text,
+ 'slideshowId' => $slideshowId
+ ]);
+ }
+}
diff --git a/src/Seeders/DummySeeder.php b/src/Seeders/DummySeeder.php
new file mode 100644
index 0000000..d788a69
--- /dev/null
+++ b/src/Seeders/DummySeeder.php
@@ -0,0 +1,42 @@
+create();
+
+ Artist::factory(4)
+ ->has(
+ Slideshow::factory(2)
+ ->has(
+ Category::factory(2)
+ )
+ )
+ ->create();
+
+ $disciplines = Discipline::pluck('id');
+
+ foreach (Artist::all() as $artistIndex => $artist) {
+ $disciplineIndex = 0;
+ if ($artistIndex > 1) {
+ $disciplineIndex = 1;
+ }
+
+ $artist->disciplines()->attach($disciplines[$disciplineIndex]);
+ }
+ }
+}
diff --git a/src/SlideshowArtistCard.php b/src/SlideshowArtistCard.php
new file mode 100644
index 0000000..210417d
--- /dev/null
+++ b/src/SlideshowArtistCard.php
@@ -0,0 +1,42 @@
+ __(config('nova-cms-portfolio.custom_artist_label'))
+ ?: __('nova-cms-portfolio::artists.artist')
+ ]
+ );
+ return $this->withMeta([
+ 'text' => $text,
+ 'url' => config('nova.path').'/resources/artists/'.$slideshow->artist_id
+ ]);
+ }
+}
diff --git a/tests/CommandsTest.php b/tests/CommandsTest.php
new file mode 100644
index 0000000..4e05ba9
--- /dev/null
+++ b/tests/CommandsTest.php
@@ -0,0 +1,56 @@
+up();
+ }
+
+ /** @test */
+ public function init_creates_home_page()
+ {
+ $this->assertTrue(Page::where('is_home', true)->count() == 0);
+
+ $this->artisan('nova-pages:init');
+
+ $this->assertTrue(Page::where('is_home', true)->count() == 1);
+ }
+
+ /** @test */
+ public function init_does_not_create_second_home_page_and_returns_correct_info()
+ {
+ $this->withoutMockingConsoleOutput();
+
+ Page::create([
+ 'slug' => 'home',
+ 'title' => 'Home',
+ 'is_home' => true
+ ]);
+
+ $this->assertTrue(Page::where('is_home', true)->count() == 1);
+ $this->assertTrue(Page::count() == 1);
+
+ $this->artisan('nova-pages:init');
+
+ $this->assertTrue(Page::where('is_home', true)->count() == 1);
+ $this->assertTrue(Page::count() == 1);
+ $this->assertSame('Home page already existed.' . PHP_EOL, Artisan::output());
+ }
+}
diff --git a/tests/LaravelTest.php b/tests/LaravelTest.php
new file mode 100644
index 0000000..46259c1
--- /dev/null
+++ b/tests/LaravelTest.php
@@ -0,0 +1,85 @@
+up();
+ }
+
+ /** @test */
+ public function it_can_save_a_page()
+ {
+ $page = new Page();
+
+ $page->title = 'Foo!';
+ $page->slug = 'foo';
+ $page->save();
+
+ $savedPage = Page::find($page->id);
+
+ $this->assertSame($savedPage->title, 'Foo!');
+ }
+
+ /** @test */
+ public function only_one_page_can_be_home_on_create_new()
+ {
+ $firstPage = Page::create([
+ 'title' => 'First',
+ 'slug' => 'first',
+ 'is_home' => true,
+ ]);
+
+ $this->assertTrue($firstPage->fresh()->is_home == 1);
+
+ $secondPage = Page::create([
+ 'title' => 'Second',
+ 'slug' => 'second',
+ 'is_home' => true,
+ ]);
+
+ $this->assertTrue($secondPage->fresh()->is_home == 1);
+ $this->assertTrue($firstPage->fresh()->is_home == 0);
+ }
+
+ /** @test */
+ public function only_one_page_can_be_home_on_update()
+ {
+ $firstPage = Page::create([
+ 'title' => 'First',
+ 'slug' => 'first',
+ 'is_home' => true,
+ ]);
+
+ $this->assertTrue($firstPage->fresh()->is_home == 1);
+
+ $secondPage = Page::create([
+ 'title' => 'Second',
+ 'slug' => 'second',
+ 'is_home' => false,
+ ]);
+
+ $this->assertTrue($secondPage->fresh()->is_home == 0);
+ $this->assertTrue($firstPage->fresh()->is_home == 1);
+
+ $secondPage->update(['is_home' => true]);
+
+ $this->assertTrue($secondPage->fresh()->is_home == 1);
+ $this->assertTrue($firstPage->fresh()->is_home == 0);
+ }
+}
diff --git a/webpack.mix.js b/webpack.mix.js
new file mode 100644
index 0000000..5e30f13
--- /dev/null
+++ b/webpack.mix.js
@@ -0,0 +1,5 @@
+const mix = require('laravel-mix');
+
+mix.setPublicPath('dist')
+ .js('resources/js/cards.js', 'js')
+ .vue();