From 748c0b9b89a5fe2152eaf0ce31b01ade6343bd0e Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Fri, 19 Nov 2021 13:32:14 +0100 Subject: [PATCH] wait #4895 @1.5 --- app/Fields/FluidbookExportVersion.php | 26 ++++ app/Models/FluidbookCollection.php | 48 ++++++- app/Services/WorkshopV2.php | 23 +++- app/SubForms/CollectionPublication.php | 3 +- composer.lock | 171 +++++++++++++------------ 5 files changed, 178 insertions(+), 93 deletions(-) create mode 100644 app/Fields/FluidbookExportVersion.php diff --git a/app/Fields/FluidbookExportVersion.php b/app/Fields/FluidbookExportVersion.php new file mode 100644 index 000000000..508695f0d --- /dev/null +++ b/app/Fields/FluidbookExportVersion.php @@ -0,0 +1,26 @@ + __('Version online - Version par défaut'), + 'sharepoint' => __('Version Sharepoint - Version par défaut'), + 'scorm' => __('Version SCORM - Version par défaut'), + 'win_inss_html' => __('Version offline - Executable Windows'), + 'win_ins_html' => __('Version offline - Installeur Auto-executable Windows'), + 'win_exe_html' => __('Version offline - ZIP Windows'), + 'mac_exe_html' => __('Version offline - Exécutable Mac OS X'), + 'win_cd_html' => __('Version offline - CD-ROM / Clé USB'), + 'win_html' => __('Version offline - HTML (Non adaptée à l\'installation sur un serveur web)'), + 'precompiled' => __('Version precompilée'), + ]; + } +} diff --git a/app/Models/FluidbookCollection.php b/app/Models/FluidbookCollection.php index 698b324e4..a6dc8119e 100644 --- a/app/Models/FluidbookCollection.php +++ b/app/Models/FluidbookCollection.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Fields\FluidbookExportVersion; use App\Fields\User; use App\Http\Controllers\Admin\Operations\FluidbookCollection\DownloadOperation; use App\Services\WorkshopV2; @@ -11,9 +12,9 @@ use Cubist\Backpack\Magic\Fields\SelectFromArray; use Cubist\Backpack\Magic\Fields\Text; use Cubist\Backpack\Magic\Models\CubistMagicAbstractModel; use Cubist\Util\Files\Files; +use Cubist\Util\Str; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\Auth; -use function Symfony\Component\String\s; class FluidbookCollection extends CubistMagicAbstractModel { @@ -51,8 +52,8 @@ class FluidbookCollection extends CubistMagicAbstractModel 'default' => Auth::id()] ); - $this->addField('type', SelectFromArray::class, __('Type'), ['column' => true, 'options' => ['scorm_multilang' => __('SCORM multilingue')]]); - + $this->addField('type', SelectFromArray::class, __('Type'), ['column' => true, 'options' => ['export' => __('Export'), 'scorm_multilang' => __('SCORM multilingue')]]); + $this->addField('version', FluidbookExportVersion::class, __('Version')); $this->addField('publications', BunchOfFieldsMultiple::class, __('Publications'), ['bunch' => CollectionPublication::class]); } @@ -64,18 +65,25 @@ class FluidbookCollection extends CubistMagicAbstractModel if ($data->type === 'scorm_multilang') { return $this->compileSCORMMultilang($data, $path); + } elseif ($data->type === 'export') { + return $this->compileExport($data, $path); } } - /** - * @throws \Exception - */ - protected function compileSCORMMultilang($data, $path) + protected function _getws2() { $ws = new WorkshopV2(); $user = backpack_user(); $ws->login($user->email, $user->api_token); + return $ws; + } + /** + * @throws \Exception + */ + protected function compileSCORMMultilang($data, $path) + { + $ws = $this->_getws2(); $langs = []; foreach ($data->publications as $publication) { $fbid = $publication['fluidbook']; @@ -149,4 +157,30 @@ window.location='./' + locale + '/index.html'; file_put_contents($path . '/index.html', $redirectionScript); } + + protected function compileExport($data, $path) + { + $ws = $this->_getws2(); + + $zipmerge = in_array($data->version, ['online', 'scorm', 'sharepoint', 'precompiled', 'win_exe_html', 'win_html', 'win_cd_html', 'mac_exe_html']); + foreach ($data->publications as $publication) { + $fbid = $publication['fluidbook']; + $metadata = $ws->getMetadata($fbid); + + $dir = $path . '/'; + if ($publication['export']) { + $dir .= $publication['export']; + } else { + $dir .= Str::slug($metadata->title); + } + if (!$zipmerge) { + $dir .= '.exe'; + } + if ($zipmerge) { + $ws->installBook($fbid, $dir, $data->version, 3); + } else { + $ws->downloadBookExport($fbid, $dir, $data->version, 3); + } + } + } } diff --git a/app/Services/WorkshopV2.php b/app/Services/WorkshopV2.php index 44ce32a5a..617e3eea3 100644 --- a/app/Services/WorkshopV2.php +++ b/app/Services/WorkshopV2.php @@ -87,7 +87,7 @@ class WorkshopV2 return $res; } - public function installBook($id, $dir, $version = 'online', $tries = 3, $beforeInstallCallback = null) + public function installBook($id, $dir, $version = 'online', $tries = 3, $beforeInstallCallback = null, $function = 'downloadBookAndInstall') { $url = 'ajax/exportbookExe'; @@ -95,28 +95,41 @@ class WorkshopV2 $xml = $this->_getXMLFromResponse($response); if ($xml !== false && isset($xml->redirection) && !is_null($xml->redirection)) { - $this->downloadBook((string)$xml->redirection, $dir, $beforeInstallCallback); + $this->$function((string)$xml->redirection, $dir, $beforeInstallCallback); return true; } else { if ($tries == 0) { throw new Exception('Unable to download book'); } $this->validDownloadBook($id); - $this->installBook($id, $dir, $version, $tries - 1, $beforeInstallCallback); + $this->installBook($id, $dir, $version, $tries - 1, $beforeInstallCallback, $function); return true; } } + public function downloadBookExport($id, $dir, $version = 'online', $tries = 3, $beforeInstallCallback = null) + { + return $this->installBook($id, $dir, $version, $tries, $beforeInstallCallback, 'downloadBook'); + } + public function validDownloadBook($id) { return $this->_request('ajax/downbook/' . $id . '/html', 'post', array('valide' => '1')); } - public function downloadBook($uri, $dir, $beforeInstallCallback = null) + public function downloadBook($uri, $dest = null) + { + if (null === $dest) { + $dest = Files::tempnam(); + } + $this->_request($uri, 'GET', [], false, [], ['sink' => $dest]); + } + + public function downloadBookAndInstall($uri, $dir, $beforeInstallCallback = null) { set_time_limit(0); $tmp = Files::tempnam() . '.zip'; - $this->_request($uri, 'GET', [], false, [], ['sink' => $tmp]); + $this->downloadBook($uri, $tmp); // Unzip $tdir = $dir . '.temp'; diff --git a/app/SubForms/CollectionPublication.php b/app/SubForms/CollectionPublication.php index b26eb1fa1..28579366a 100644 --- a/app/SubForms/CollectionPublication.php +++ b/app/SubForms/CollectionPublication.php @@ -3,7 +3,7 @@ namespace App\SubForms; use App\Fields\FluidbookID; -use Cubist\Backpack\Magic\Fields\Integer; +use Cubist\Backpack\Magic\Fields\Text; use Cubist\Backpack\Magic\SubForm; class CollectionPublication extends SubForm @@ -13,5 +13,6 @@ class CollectionPublication extends SubForm parent::init(); $this->addField('fluidbook', FluidbookID::class, __('Fluidbook #')); + $this->addField('export', Text::class, __('Nom d\'export'), ['hint'=>__('Laisser vide pour laisser le système déterminer le nom')]); } } diff --git a/composer.lock b/composer.lock index 7c3a842dd..430afcf93 100644 --- a/composer.lock +++ b/composer.lock @@ -1321,13 +1321,13 @@ "source": { "type": "git", "url": "git://git.cubedesigners.com/cubist_cms-back.git", - "reference": "6fd5806f9f7ec93cc9872da4863e2c953cc2957f" + "reference": "4b56609bfb475a1145c5b6da9745af89b79d2eea" }, "dist": { "type": "tar", - "url": "https://composer.cubedesigners.com/dist/cubist/cms-back/cubist-cms-back-dev-master-5fee90.tar", - "reference": "6fd5806f9f7ec93cc9872da4863e2c953cc2957f", - "shasum": "04ec51640737f3034154feda0c5bea7dd0509843" + "url": "https://composer.cubedesigners.com/dist/cubist/cms-back/cubist-cms-back-dev-master-aaf93f.tar", + "reference": "4b56609bfb475a1145c5b6da9745af89b79d2eea", + "shasum": "687c642d9290ac29e5547a7af2dafce71858f62e" }, "require": { "backpack/backupmanager": "^3.0", @@ -1404,7 +1404,7 @@ } ], "description": "Cubist Backpack extension", - "time": "2021-11-12T12:38:04+00:00" + "time": "2021-11-19T11:34:22+00:00" }, { "name": "cubist/cms-front", @@ -1659,13 +1659,13 @@ "source": { "type": "git", "url": "git://git.cubedesigners.com/cubist_util.git", - "reference": "96722c3f2b74399d909d56c0f80cb76a5febd2a4" + "reference": "dabb7fa0d6d98b56605e2fe38917ab7dab599742" }, "dist": { "type": "tar", - "url": "https://composer.cubedesigners.com/dist/cubist/util/cubist-util-dev-master-5860bf.tar", - "reference": "96722c3f2b74399d909d56c0f80cb76a5febd2a4", - "shasum": "aef5d1437cf8c33ba92b9e4c03f20c489eb073e3" + "url": "https://composer.cubedesigners.com/dist/cubist/util/cubist-util-dev-master-5fcaaf.tar", + "reference": "dabb7fa0d6d98b56605e2fe38917ab7dab599742", + "shasum": "67b9d36d1939aafad01d73754f39432b0965d2a5" }, "require": { "cubist/net": "dev-master", @@ -1696,7 +1696,7 @@ } ], "description": "Utilities class", - "time": "2021-10-15T10:39:56+00:00" + "time": "2021-11-19T10:39:55+00:00" }, { "name": "cviebrock/eloquent-sluggable", @@ -2007,16 +2007,16 @@ }, { "name": "doctrine/dbal", - "version": "3.1.3", + "version": "3.1.4", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "96b0053775a544b4a6ab47654dac0621be8b4cf8" + "reference": "821b4f01a36ce63ed36c090ea74767b72db367e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/96b0053775a544b4a6ab47654dac0621be8b4cf8", - "reference": "96b0053775a544b4a6ab47654dac0621be8b4cf8", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/821b4f01a36ce63ed36c090ea74767b72db367e9", + "reference": "821b4f01a36ce63ed36c090ea74767b72db367e9", "shasum": "" }, "require": { @@ -2029,14 +2029,14 @@ "require-dev": { "doctrine/coding-standard": "9.0.0", "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "0.12.99", - "phpstan/phpstan-strict-rules": "^0.12.11", + "phpstan/phpstan": "1.1.1", + "phpstan/phpstan-strict-rules": "^1", "phpunit/phpunit": "9.5.10", "psalm/plugin-phpunit": "0.16.1", - "squizlabs/php_codesniffer": "3.6.0", + "squizlabs/php_codesniffer": "3.6.1", "symfony/cache": "^5.2|^6.0", "symfony/console": "^2.0.5|^3.0|^4.0|^5.0|^6.0", - "vimeo/psalm": "4.10.0" + "vimeo/psalm": "4.12.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -2096,7 +2096,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.1.3" + "source": "https://github.com/doctrine/dbal/tree/3.1.4" }, "funding": [ { @@ -2112,7 +2112,7 @@ "type": "tidelift" } ], - "time": "2021-10-02T16:15:05+00:00" + "time": "2021-11-15T16:44:33+00:00" }, { "name": "doctrine/deprecations", @@ -2719,16 +2719,16 @@ }, { "name": "ezimuel/ringphp", - "version": "1.1.2", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/ezimuel/ringphp.git", - "reference": "0b78f89d8e0bb9e380046c31adfa40347e9f663b" + "reference": "92b8161404ab1ad84059ebed41d9f757e897ce74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezimuel/ringphp/zipball/0b78f89d8e0bb9e380046c31adfa40347e9f663b", - "reference": "0b78f89d8e0bb9e380046c31adfa40347e9f663b", + "url": "https://api.github.com/repos/ezimuel/ringphp/zipball/92b8161404ab1ad84059ebed41d9f757e897ce74", + "reference": "92b8161404ab1ad84059ebed41d9f757e897ce74", "shasum": "" }, "require": { @@ -2736,9 +2736,12 @@ "php": ">=5.4.0", "react/promise": "~2.0" }, + "replace": { + "guzzlehttp/ringphp": "self.version" + }, "require-dev": { "ext-curl": "*", - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "~9.0" }, "suggest": { "ext-curl": "Guzzle will use specific adapters if cURL is present" @@ -2767,9 +2770,9 @@ ], "description": "Fork of guzzle/RingPHP (abandoned) to be used with elasticsearch-php", "support": { - "source": "https://github.com/ezimuel/ringphp/tree/1.1.2" + "source": "https://github.com/ezimuel/ringphp/tree/1.2.0" }, - "time": "2020-02-14T23:51:21+00:00" + "time": "2021-11-16T11:51:30+00:00" }, { "name": "ezyang/htmlpurifier", @@ -3009,16 +3012,16 @@ }, { "name": "geoip2/geoip2", - "version": "v2.11.0", + "version": "v2.12.0", "source": { "type": "git", "url": "https://github.com/maxmind/GeoIP2-php.git", - "reference": "d01be5894a5c1a3381c58c9b1795cd07f96c30f7" + "reference": "a320c2c3b7498c83bf9b2a670af6888c73e29f50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/d01be5894a5c1a3381c58c9b1795cd07f96c30f7", - "reference": "d01be5894a5c1a3381c58c9b1795cd07f96c30f7", + "url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/a320c2c3b7498c83bf9b2a670af6888c73e29f50", + "reference": "a320c2c3b7498c83bf9b2a670af6888c73e29f50", "shasum": "" }, "require": { @@ -3028,7 +3031,8 @@ "php": ">=7.2" }, "require-dev": { - "friendsofphp/php-cs-fixer": "2.*", + "friendsofphp/php-cs-fixer": "3.*", + "phpstan/phpstan": "*", "phpunit/phpunit": "^8.0 || ^9.0", "squizlabs/php_codesniffer": "3.*" }, @@ -3060,9 +3064,9 @@ ], "support": { "issues": "https://github.com/maxmind/GeoIP2-php/issues", - "source": "https://github.com/maxmind/GeoIP2-php/tree/v2.11.0" + "source": "https://github.com/maxmind/GeoIP2-php/tree/v2.12.0" }, - "time": "2020-10-01T18:48:34+00:00" + "time": "2021-11-17T20:54:16+00:00" }, { "name": "graham-campbell/markdown", @@ -3743,16 +3747,16 @@ }, { "name": "laravel/framework", - "version": "v8.70.2", + "version": "v8.72.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "dec9524cd0f9fa35a6eb8e25d0b40f8bbc8ec225" + "reference": "5168f8589195a5f48b9c41ad2eec77a6c15f14f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/dec9524cd0f9fa35a6eb8e25d0b40f8bbc8ec225", - "reference": "dec9524cd0f9fa35a6eb8e25d0b40f8bbc8ec225", + "url": "https://api.github.com/repos/laravel/framework/zipball/5168f8589195a5f48b9c41ad2eec77a6c15f14f3", + "reference": "5168f8589195a5f48b9c41ad2eec77a6c15f14f3", "shasum": "" }, "require": { @@ -3829,12 +3833,12 @@ }, "require-dev": { "aws/aws-sdk-php": "^3.198.1", - "doctrine/dbal": "^2.13.3|^3.1.2", + "doctrine/dbal": "^2.13.3|^3.1.4", "filp/whoops": "^2.14.3", "guzzlehttp/guzzle": "^6.5.5|^7.0.1", "league/flysystem-cached-adapter": "^1.0", "mockery/mockery": "^1.4.4", - "orchestra/testbench-core": "^6.23", + "orchestra/testbench-core": "^6.27", "pda/pheanstalk": "^4.0", "phpunit/phpunit": "^8.5.19|^9.5.8", "predis/predis": "^1.1.9", @@ -3843,7 +3847,7 @@ "suggest": { "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).", "brianium/paratest": "Required to run tests in parallel (^6.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.2).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", "ext-bcmath": "Required to use the multiple_of validation rule.", "ext-ftp": "Required to use the Flysystem FTP driver.", "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", @@ -3864,7 +3868,7 @@ "phpunit/phpunit": "Required to use assertions and run tests (^8.5.19|^9.5.8).", "predis/predis": "Required to use the predis connector (^1.1.9).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0|^7.0).", "symfony/cache": "Required to PSR-6 cache bridge (^5.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).", @@ -3911,20 +3915,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-11-09T22:48:33+00:00" + "time": "2021-11-17T15:15:08+00:00" }, { "name": "laravel/serializable-closure", - "version": "v1.0.3", + "version": "v1.0.4", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "6cfc678735f22ccedad761b8cae2bab14c3d8e5b" + "reference": "8148e72e6c2c3af7f05640ada1b26c3bca970f8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/6cfc678735f22ccedad761b8cae2bab14c3d8e5b", - "reference": "6cfc678735f22ccedad761b8cae2bab14c3d8e5b", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/8148e72e6c2c3af7f05640ada1b26c3bca970f8d", + "reference": "8148e72e6c2c3af7f05640ada1b26c3bca970f8d", "shasum": "" }, "require": { @@ -3970,7 +3974,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2021-10-07T14:00:57+00:00" + "time": "2021-11-16T17:01:57+00:00" }, { "name": "lavary/laravel-menu", @@ -6552,26 +6556,26 @@ }, { "name": "spatie/image-optimizer", - "version": "1.5.0", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/spatie/image-optimizer.git", - "reference": "1b3585c3da2cc8872141fce40fbd17e07e6655d1" + "reference": "8bad7f04fd7d31d021b4752ee89f8a450dad8017" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/1b3585c3da2cc8872141fce40fbd17e07e6655d1", - "reference": "1b3585c3da2cc8872141fce40fbd17e07e6655d1", + "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/8bad7f04fd7d31d021b4752ee89f8a450dad8017", + "reference": "8bad7f04fd7d31d021b4752ee89f8a450dad8017", "shasum": "" }, "require": { "ext-fileinfo": "*", - "php": "^7.2|^8.0", + "php": "^7.3|^8.0", "psr/log": "^1.0 | ^2.0 | ^3.0", "symfony/process": "^4.2|^5.0" }, "require-dev": { - "phpunit/phpunit": "^8.0|^9.0", + "phpunit/phpunit": "^8.5.21|^9.4.4", "symfony/var-dumper": "^4.2|^5.0" }, "type": "library", @@ -6600,9 +6604,9 @@ ], "support": { "issues": "https://github.com/spatie/image-optimizer/issues", - "source": "https://github.com/spatie/image-optimizer/tree/1.5.0" + "source": "https://github.com/spatie/image-optimizer/tree/1.6.1" }, - "time": "2021-10-11T15:44:16+00:00" + "time": "2021-11-17T10:36:45+00:00" }, { "name": "spatie/laravel-backup", @@ -6696,16 +6700,16 @@ }, { "name": "spatie/laravel-googletagmanager", - "version": "2.6.2", + "version": "2.6.3", "source": { "type": "git", "url": "https://github.com/spatie/laravel-googletagmanager.git", - "reference": "aadef9d3fc9ced1a8ab03a91ddab59979644182c" + "reference": "d28e9b979c5959cf7cae78306b61a0386072dd97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-googletagmanager/zipball/aadef9d3fc9ced1a8ab03a91ddab59979644182c", - "reference": "aadef9d3fc9ced1a8ab03a91ddab59979644182c", + "url": "https://api.github.com/repos/spatie/laravel-googletagmanager/zipball/d28e9b979c5959cf7cae78306b61a0386072dd97", + "reference": "d28e9b979c5959cf7cae78306b61a0386072dd97", "shasum": "" }, "require": { @@ -6752,9 +6756,15 @@ ], "support": { "issues": "https://github.com/spatie/laravel-googletagmanager/issues", - "source": "https://github.com/spatie/laravel-googletagmanager/tree/master" + "source": "https://github.com/spatie/laravel-googletagmanager/tree/2.6.3" }, - "time": "2019-09-13T09:03:47+00:00" + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2021-11-17T09:42:01+00:00" }, { "name": "spatie/laravel-honeypot", @@ -6831,16 +6841,16 @@ }, { "name": "spatie/laravel-medialibrary", - "version": "9.8.3", + "version": "9.9.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-medialibrary.git", - "reference": "687e769a7ba17e49d183947fe058e357ed3c615f" + "reference": "71ce715b5be60fe73bbcd6b8dba23ac9b78c9b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/687e769a7ba17e49d183947fe058e357ed3c615f", - "reference": "687e769a7ba17e49d183947fe058e357ed3c615f", + "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/71ce715b5be60fe73bbcd6b8dba23ac9b78c9b62", + "reference": "71ce715b5be60fe73bbcd6b8dba23ac9b78c9b62", "shasum": "" }, "require": { @@ -6920,7 +6930,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-medialibrary/issues", - "source": "https://github.com/spatie/laravel-medialibrary/tree/9.8.3" + "source": "https://github.com/spatie/laravel-medialibrary/tree/9.9.0" }, "funding": [ { @@ -6932,7 +6942,7 @@ "type": "github" } ], - "time": "2021-10-18T22:57:53+00:00" + "time": "2021-11-17T09:36:26+00:00" }, { "name": "spatie/laravel-package-tools", @@ -10605,23 +10615,24 @@ }, { "name": "composer/spdx-licenses", - "version": "1.5.5", + "version": "1.5.6", "source": { "type": "git", "url": "https://github.com/composer/spdx-licenses.git", - "reference": "de30328a7af8680efdc03e396aad24befd513200" + "reference": "a30d487169d799745ca7280bc90fdfa693536901" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/de30328a7af8680efdc03e396aad24befd513200", - "reference": "de30328a7af8680efdc03e396aad24befd513200", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/a30d487169d799745ca7280bc90fdfa693536901", + "reference": "a30d487169d799745ca7280bc90fdfa693536901", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7" + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { @@ -10664,7 +10675,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/spdx-licenses/issues", - "source": "https://github.com/composer/spdx-licenses/tree/1.5.5" + "source": "https://github.com/composer/spdx-licenses/tree/1.5.6" }, "funding": [ { @@ -10680,7 +10691,7 @@ "type": "tidelift" } ], - "time": "2020-12-03T16:04:16+00:00" + "time": "2021-11-18T10:14:14+00:00" }, { "name": "composer/xdebug-handler", @@ -10882,16 +10893,16 @@ }, { "name": "facade/ignition", - "version": "2.16.0", + "version": "2.16.1", "source": { "type": "git", "url": "https://github.com/facade/ignition.git", - "reference": "23400e6cc565c9dcae2c53704b4de1c4870c0697" + "reference": "29b533f63a3b269aa599d08dd4d22a0d720e295f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/23400e6cc565c9dcae2c53704b4de1c4870c0697", - "reference": "23400e6cc565c9dcae2c53704b4de1c4870c0697", + "url": "https://api.github.com/repos/facade/ignition/zipball/29b533f63a3b269aa599d08dd4d22a0d720e295f", + "reference": "29b533f63a3b269aa599d08dd4d22a0d720e295f", "shasum": "" }, "require": { @@ -10955,7 +10966,7 @@ "issues": "https://github.com/facade/ignition/issues", "source": "https://github.com/facade/ignition" }, - "time": "2021-10-28T11:47:23+00:00" + "time": "2021-11-16T13:09:30+00:00" }, { "name": "facade/ignition-contracts", -- 2.39.5