]> _ Git - fluidbook-toolbox.git/commitdiff
wait #4895 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 19 Nov 2021 12:32:14 +0000 (13:32 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 19 Nov 2021 12:32:14 +0000 (13:32 +0100)
app/Fields/FluidbookExportVersion.php [new file with mode: 0644]
app/Models/FluidbookCollection.php
app/Services/WorkshopV2.php
app/SubForms/CollectionPublication.php
composer.lock

diff --git a/app/Fields/FluidbookExportVersion.php b/app/Fields/FluidbookExportVersion.php
new file mode 100644 (file)
index 0000000..508695f
--- /dev/null
@@ -0,0 +1,26 @@
+<?php
+
+namespace App\Fields;
+
+use Cubist\Backpack\Magic\Fields\SelectFromArray;
+
+class FluidbookExportVersion extends SelectFromArray
+{
+
+    public function getOptions()
+    {
+
+        return [
+            'online' => __('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'),
+        ];
+    }
+}
index 698b324e4a737449ba4386d6678f0ccb94b0b7e6..a6dc8119e5e123900967e45134a242d63c9b2080 100644 (file)
@@ -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);
+            }
+        }
+    }
 }
index 44ce32a5a465dc2b3299abe836f547ac10579b87..617e3eea392371760493c81339bb84bd034b1aa0 100644 (file)
@@ -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';
index b26eb1fa139e7442e3f5a3f0561299048df5b827..28579366a7f2a5507aa12b34f1d9f01a2b63a90f 100644 (file)
@@ -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')]);
     }
 }
index 7c3a842dda8fefc2a5939499e1a5cb80afb075e7..430afcf934c86695d5071f691550740b08863a9b 100644 (file)
             "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",
                 }
             ],
             "description": "Cubist Backpack extension",
-            "time": "2021-11-12T12:38:04+00:00"
+            "time": "2021-11-19T11:34:22+00:00"
         },
         {
             "name": "cubist/cms-front",
             "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",
                 }
             ],
             "description": "Utilities class",
-            "time": "2021-10-15T10:39:56+00:00"
+            "time": "2021-11-19T10:39:55+00:00"
         },
         {
             "name": "cviebrock/eloquent-sluggable",
         },
         {
             "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": {
             "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."
             ],
             "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": [
                 {
                     "type": "tidelift"
                 }
             ],
-            "time": "2021-10-02T16:15:05+00:00"
+            "time": "2021-11-15T16:44:33+00:00"
         },
         {
             "name": "doctrine/deprecations",
         },
         {
             "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": {
                 "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"
             ],
             "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",
         },
         {
             "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": {
                 "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.*"
             },
             ],
             "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",
         },
         {
             "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": {
             },
             "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",
             "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().",
                 "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).",
                 "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": {
                 "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",
         },
         {
             "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",
             ],
             "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",
         },
         {
             "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": {
             ],
             "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",
         },
         {
             "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": {
             ],
             "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": [
                 {
                     "type": "github"
                 }
             ],
-            "time": "2021-10-18T22:57:53+00:00"
+            "time": "2021-11-17T09:36:26+00:00"
         },
         {
             "name": "spatie/laravel-package-tools",
         },
         {
             "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": {
             "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": [
                 {
                     "type": "tidelift"
                 }
             ],
-            "time": "2020-12-03T16:04:16+00:00"
+            "time": "2021-11-18T10:14:14+00:00"
         },
         {
             "name": "composer/xdebug-handler",
         },
         {
             "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": {
                 "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",