]> _ Git - fluidbook-toolbox.git/commitdiff
wip #7199 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 21 Nov 2024 14:23:14 +0000 (15:23 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 21 Nov 2024 14:23:14 +0000 (15:23 +0100)
.docker/images/php-alpha/Dockerfile
.docker/images/php-dev/Dockerfile
app/Console/Kernel.php
app/Jobs/Maintenance/ListWorkingSymlinks.php
app/Models/FluidbookPublication.php
composer.lock

index e2a22fad2758867b58dd41382d6472baf166ff73..c16d7e286073bcbd68d66101bca4f6e9910080d6 100644 (file)
@@ -69,7 +69,7 @@ RUN apt -y --no-install-recommends install sshfs python3 python3-pip
 RUN apt -y --no-install-recommends install openssh-server rsyslog
 RUN apt -y --no-install-recommends install wine libwine wine64
 RUN apt -y --no-install-recommends install pdfposter rename
-RUN apt -y --no-install-recommends install jdupes
+RUN apt -y --no-install-recommends install jdupes symlinks
 RUN apt -y --no-install-recommends install dnsutils
 
 RUN apt -y --no-install-recommends install locales
@@ -81,6 +81,7 @@ ENV LC_ALL fr_FR.UTF-8
 
 RUN cd /root;wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2;tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2;mv phantomjs-2.1.1-linux-x86_64 /usr/local/share;ln -sf /usr/local/share/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin
 RUN cd /root;wget https://github.com/RazrFalcon/svgcleaner/releases/download/v0.9.5/svgcleaner_linux_x86_64_0.9.5.tar.gz; tar xvzf svgcleaner_linux_x86_64_0.9.5.tar.gz;mv svgcleaner /usr/local/bin
+RUN cd /root;wget https://github.com/astraw/svg_stack/archive/refs/tags/0.1.0.tar.gz; tar xvzf 0.1.0.tar.gz;mv svg_stack-0.1.0 /usr/local/svg_stack
 
 RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && chmod 755 /usr/local/bin/yt-dlp
 
@@ -88,7 +89,7 @@ RUN apt clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
 
 ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
 RUN npm install --unsafe-perm --global uglify-js less sass puppeteer favicons crx3 oslllo-svg-fixer terser npm-check-updates nw-builder@^4 ttf2woff2
-RUN pip3 install font-line
+RUN pip3 install font-line lxml six
 
 RUN groupadd sudo;useradd -d /application -g 33 -G sudo -s /bin/bash -u 1001 toolbox
 
index e2a22fad2758867b58dd41382d6472baf166ff73..c16d7e286073bcbd68d66101bca4f6e9910080d6 100644 (file)
@@ -69,7 +69,7 @@ RUN apt -y --no-install-recommends install sshfs python3 python3-pip
 RUN apt -y --no-install-recommends install openssh-server rsyslog
 RUN apt -y --no-install-recommends install wine libwine wine64
 RUN apt -y --no-install-recommends install pdfposter rename
-RUN apt -y --no-install-recommends install jdupes
+RUN apt -y --no-install-recommends install jdupes symlinks
 RUN apt -y --no-install-recommends install dnsutils
 
 RUN apt -y --no-install-recommends install locales
@@ -81,6 +81,7 @@ ENV LC_ALL fr_FR.UTF-8
 
 RUN cd /root;wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2;tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2;mv phantomjs-2.1.1-linux-x86_64 /usr/local/share;ln -sf /usr/local/share/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin
 RUN cd /root;wget https://github.com/RazrFalcon/svgcleaner/releases/download/v0.9.5/svgcleaner_linux_x86_64_0.9.5.tar.gz; tar xvzf svgcleaner_linux_x86_64_0.9.5.tar.gz;mv svgcleaner /usr/local/bin
+RUN cd /root;wget https://github.com/astraw/svg_stack/archive/refs/tags/0.1.0.tar.gz; tar xvzf 0.1.0.tar.gz;mv svg_stack-0.1.0 /usr/local/svg_stack
 
 RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && chmod 755 /usr/local/bin/yt-dlp
 
@@ -88,7 +89,7 @@ RUN apt clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
 
 ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
 RUN npm install --unsafe-perm --global uglify-js less sass puppeteer favicons crx3 oslllo-svg-fixer terser npm-check-updates nw-builder@^4 ttf2woff2
-RUN pip3 install font-line
+RUN pip3 install font-line lxml six
 
 RUN groupadd sudo;useradd -d /application -g 33 -G sudo -s /bin/bash -u 1001 toolbox
 
index 0dad1f2a416cc059de17a45ad9654c114216a315..b7ffc5e8d89772ed4bd5a37757fd2e6320969bd9 100644 (file)
@@ -35,6 +35,7 @@ class Kernel extends \Cubist\Backpack\Console\Kernel
             $schedule->command('job:dispatchNow Maintenance\\\\CleanDownloads')->dailyAt('4:00');
             $schedule->command('job:dispatchNow Maintenance\\\\CleanFTP')->dailyAt('4:30');
             $schedule->command('job:dispatchNow Maintenance\\\\RemoveDuplicates')->monthly();
+            $schedule->command('job:dispatchNow Maintenance\\\\ListWorkingSymlinks')->dailyAt('0:30');
             // Email config
             $schedule->command('job:dispatchNow Maintenance\\\\EmailServerRefresh')->twiceDailyAt();
             // WS to Toolbox migration
index 9308e98f8743e6ab3b1e534b13258ce11606d324..c676f45beee2832731715d50524145d1cb542e73 100644 (file)
@@ -22,7 +22,7 @@ class ListWorkingSymlinks extends Base
      * @return void
      */
 
-    protected static function parseFluidbookDir($fluidbook)
+    public static function parseFluidbookDir($fluidbook)
     {
         if (!($fluidbook instanceof FluidbookPublication)) {
             $fluidbook = FluidbookPublication::withoutGlobalScopes()->find($fluidbook);
@@ -31,15 +31,15 @@ class ListWorkingSymlinks extends Base
         /* @var $fluidbook FluidbookPublication */
         $dir = $fluidbook->getAssetDir();
         if (!file_exists($dir)) {
-            echo 'skip ' . $dir . " (not exists)\n";
+            //echo 'skip ' . $dir . " (not exists)\n";
             return;
         }
-        echo 'check ' . $dir . "\n";
+        //echo 'check ' . $dir . "\n";
         $output = `symlinks -rv $dir`;
         $changed = false;
         $outlinks = Text::explodeNewLines($output);
         if (!count($outlinks)) {
-            echo 'skip ' . $dir . " (no symlinks)\n";
+            //  echo 'skip ' . $dir . " (no symlinks)\n";
             return;
         }
         $links = static::getWorkingSymlinks();
@@ -57,7 +57,7 @@ class ListWorkingSymlinks extends Base
             }
         }
         if (!$changed) {
-            echo 'skip ' . $dir . " (nothing changed)\n";
+            //echo 'skip ' . $dir . " (nothing changed)\n";
             return;
         }
         static::saveWorkingSymlinks($links);
@@ -70,9 +70,9 @@ class ListWorkingSymlinks extends Base
 
     public static function getWorkingSymlinks()
     {
-       if(!file_exists(static::_getCacheFile())) {
-           return [];
-       }
+        if (!file_exists(static::_getCacheFile())) {
+            return [];
+        }
         return json_decode(file_get_contents(static::_getCacheFile()), true) ?? [];
     }
 
index 90ab9efbf1e87306a54b6ccdf66134623e2dd87c..226489d18c8b728a01f1c6282c03078b93e1ba80 100644 (file)
@@ -40,6 +40,7 @@ use App\Http\Controllers\Admin\Operations\FluidbookPublication\SettingsExportOpe
 use App\Jobs\FluidbookImagesPreprocess;
 use App\Jobs\FluidbookSocialImage;
 use App\Jobs\GenerateDeliveryThumbnailsPreview;
+use App\Jobs\Maintenance\ListWorkingSymlinks;
 use App\Models\Base\ToolboxDownloadable;
 use App\Models\Base\ToolboxStatusModel;
 use App\Models\Traits\CheckHash;
@@ -946,6 +947,9 @@ class FluidbookPublication extends ToolboxStatusModel
             $cmd = "rsync -a -v $from $to";
         }
         `$cmd`;
+        if ($mode === 'link_overwrite' || $mode === 'link') {
+            ListWorkingSymlinks::parseFluidbookDir($toId);
+        }
     }
 
     public function incrementPreviewVisit()
@@ -994,6 +998,26 @@ class FluidbookPublication extends ToolboxStatusModel
         }
     }
 
+
+    protected function beforeReplaceFreeFile($filename)
+    {
+        parent::beforeReplaceFreeFile($filename);
+
+        $links = ListWorkingSymlinks::getWorkingSymlinks();
+        if (isset($links[$filename])) {
+            $symlinks = array_keys($links[$filename]);
+            foreach ($symlinks as $symlink) {
+                if (is_link($symlink)) {
+                    unlink($symlink);
+                    copy($filename, $symlink);
+                }
+            }
+        }
+        unset($links[$filename]);
+        ListWorkingSymlinks::saveWorkingSymlinks($links);
+
+    }
+
     public function getAssetDirId()
     {
         if ($this->composition_fluidbook && $this->composition_fluidbook_links && $this->composition_fluidbook_id && !$this->assetsDir) {
index 2be6be805ac98af183864a077cb7290f4c66e8ce..cf096b6bd9d1023ec67794bce5b8c3aaa1d1dbab 100644 (file)
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "fc99d0bf9a3d9708f002d68d4b914166",
+    "content-hash": "fc185c9fdea1aa5ea9a10ee6a279fe96",
     "packages": [
         {
             "name": "archtechx/enums",
         },
         {
             "name": "aws/aws-sdk-php",
-            "version": "3.325.7",
+            "version": "3.328.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/aws/aws-sdk-php.git",
-                "reference": "55852104253172e66c3358bf4c35281bbd8622b2"
+                "reference": "bceb5a6443ecd51e988ef28af70210f7168ad0e5"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/55852104253172e66c3358bf4c35281bbd8622b2",
-                "reference": "55852104253172e66c3358bf4c35281bbd8622b2",
+                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/bceb5a6443ecd51e988ef28af70210f7168ad0e5",
+                "reference": "bceb5a6443ecd51e988ef28af70210f7168ad0e5",
                 "shasum": ""
             },
             "require": {
                 "paragonie/random_compat": ">= 2",
                 "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
                 "psr/cache": "^1.0",
-                "psr/simple-cache": "^1.0",
+                "psr/simple-cache": "^1.0 || ^2.0 || ^3.0",
                 "sebastian/comparator": "^1.2.3 || ^4.0",
                 "yoast/phpunit-polyfills": "^1.0"
             },
             "support": {
                 "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
                 "issues": "https://github.com/aws/aws-sdk-php/issues",
-                "source": "https://github.com/aws/aws-sdk-php/tree/3.325.7"
+                "source": "https://github.com/aws/aws-sdk-php/tree/3.328.3"
             },
-            "time": "2024-11-12T19:27:31+00:00"
+            "time": "2024-11-20T19:04:23+00:00"
         },
         {
             "name": "backpack/backupmanager",
         },
         {
             "name": "barryvdh/laravel-debugbar",
-            "version": "v3.14.6",
+            "version": "v3.14.7",
             "source": {
                 "type": "git",
                 "url": "https://github.com/barryvdh/laravel-debugbar.git",
-                "reference": "14e4517bd49130d6119228107eb21ae47ae120ab"
+                "reference": "f484b8c9124de0b163da39958331098ffcd4a65e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/14e4517bd49130d6119228107eb21ae47ae120ab",
-                "reference": "14e4517bd49130d6119228107eb21ae47ae120ab",
+                "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/f484b8c9124de0b163da39958331098ffcd4a65e",
+                "reference": "f484b8c9124de0b163da39958331098ffcd4a65e",
                 "shasum": ""
             },
             "require": {
             ],
             "support": {
                 "issues": "https://github.com/barryvdh/laravel-debugbar/issues",
-                "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.14.6"
+                "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.14.7"
             },
             "funding": [
                 {
                     "type": "github"
                 }
             ],
-            "time": "2024-10-18T13:15:12+00:00"
+            "time": "2024-11-14T09:12:35+00:00"
         },
         {
             "name": "brick/math",
             "source": {
                 "type": "git",
                 "url": "https://github.com/chillerlan/php-qrcode.git",
-                "reference": "052c7c66fbb98e3969b1420cb79e77a83e8eb77d"
+                "reference": "10ed887663330bd9c73a26325f4f3b71095d3115"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/052c7c66fbb98e3969b1420cb79e77a83e8eb77d",
-                "reference": "052c7c66fbb98e3969b1420cb79e77a83e8eb77d",
+                "url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/10ed887663330bd9c73a26325f4f3b71095d3115",
+                "reference": "10ed887663330bd9c73a26325f4f3b71095d3115",
                 "shasum": ""
             },
             "require": {
                 "intervention/image": "^3.8",
                 "phpbench/phpbench": "^1.3",
                 "phpmd/phpmd": "^2.15",
-                "phpstan/phpstan": "^1.12",
-                "phpstan/phpstan-deprecation-rules": "^1.2",
+                "phpstan/phpstan": "^2.0",
+                "phpstan/phpstan-deprecation-rules": "^2.0",
                 "phpunit/phpunit": "^11.3",
                 "setasign/fpdf": "^1.8.2",
                 "slevomat/coding-standard": "^8.15",
                     "type": "Ko-Fi"
                 }
             ],
-            "time": "2024-11-07T09:23:14+00:00"
+            "time": "2024-11-17T19:37:19+00:00"
         },
         {
             "name": "chillerlan/php-settings-container",
             "source": {
                 "type": "git",
                 "url": "git://git.cubedesigners.com/cubist_cms-back.git",
-                "reference": "229a180601fbbbbbd6057853ca25bf8453282c3a"
+                "reference": "abe35cea50a76f8e9033cbda7048457e262b8f52"
             },
             "dist": {
                 "type": "tar",
-                "url": "https://composer.cubedesigners.com/dist/cubist/cms-back/cubist-cms-back-dev-master-709b38.tar",
-                "reference": "229a180601fbbbbbd6057853ca25bf8453282c3a",
-                "shasum": "400bf98022d03e771c0a5ad403a03b6df9cab994"
+                "url": "https://composer.cubedesigners.com/dist/cubist/cms-back/cubist-cms-back-dev-master-082987.tar",
+                "reference": "abe35cea50a76f8e9033cbda7048457e262b8f52",
+                "shasum": "fbdb8487f0d957ac7a506b716a966960bca08498"
             },
             "require": {
                 "backpack/backupmanager": "^v3.0.9",
                 "backpack/crud": "^5.6.1",
                 "backpack/logmanager": "^v4.0.10",
                 "backpack/permissionmanager": "^6.0.16",
-                "backpack/pro": "^1.6.6",
+                "backpack/pro": "1.6.6",
                 "backpack/revise-operation": "^1.0.12",
                 "barryvdh/laravel-debugbar": "^v3.10.0",
                 "cache/redis-adapter": "^1.2.0",
                 }
             ],
             "description": "Cubist Backpack extension",
-            "time": "2024-11-05T16:57:18+00:00"
+            "time": "2024-11-21T14:09:53+00:00"
         },
         {
             "name": "cubist/cms-front",
             "source": {
                 "type": "git",
                 "url": "git://git.cubedesigners.com/cubist_pdf.git",
-                "reference": "eae0d6a48cd097ca52866e815c2fdc9dd9c82885"
+                "reference": "66d7fbc1d8b92c09f7b946c31643ff317d1c5a72"
             },
             "dist": {
                 "type": "tar",
-                "url": "https://composer.cubedesigners.com/dist/cubist/pdf/cubist-pdf-dev-master-200f3f.tar",
-                "reference": "eae0d6a48cd097ca52866e815c2fdc9dd9c82885",
-                "shasum": "fdb6ed2b9b11a7bdbf2f7425417f0234d994fbb6"
+                "url": "https://composer.cubedesigners.com/dist/cubist/pdf/cubist-pdf-dev-master-3fcb19.tar",
+                "reference": "66d7fbc1d8b92c09f7b946c31643ff317d1c5a72",
+                "shasum": "c0636422c6f06d14367ff65c1009b26ee22ceff5"
             },
             "require": {
                 "cubist/util": "dev-master",
                 "cubist",
                 "pdf"
             ],
-            "time": "2024-11-04T13:14:25+00:00"
+            "time": "2024-11-18T14:31:42+00:00"
         },
         {
             "name": "cubist/scorm",
             "source": {
                 "type": "git",
                 "url": "git://git.cubedesigners.com/cubist_util.git",
-                "reference": "c5751aa1217fa19932af2abb14e8f77efe71cbf7"
+                "reference": "b41d80eef5f2940fa0d170ba2c7f1d42c5ad1d1d"
             },
             "dist": {
                 "type": "tar",
-                "url": "https://composer.cubedesigners.com/dist/cubist/util/cubist-util-dev-master-bda247.tar",
-                "reference": "c5751aa1217fa19932af2abb14e8f77efe71cbf7",
-                "shasum": "2e80e7c67047aa02193a424269164498894f5378"
+                "url": "https://composer.cubedesigners.com/dist/cubist/util/cubist-util-dev-master-a16dda.tar",
+                "reference": "b41d80eef5f2940fa0d170ba2c7f1d42c5ad1d1d",
+                "shasum": "4c0d05dccc5288a9b4935aa7f1f28f8b8c99c9ad"
             },
             "require": {
                 "cubist/net": "dev-master",
                 }
             ],
             "description": "Utilities class",
-            "time": "2024-11-05T18:53:34+00:00"
+            "time": "2024-11-13T18:12:58+00:00"
         },
         {
             "name": "cviebrock/eloquent-sluggable",
             "source": {
                 "type": "git",
                 "url": "git://git.cubedesigners.com/fluidbook_tools.git",
-                "reference": "49361737a3dd6334863ff0795b14612674440721"
+                "reference": "4a219b8bdcffc55e4db1c02f2a8d034d5da867ac"
             },
             "dist": {
                 "type": "tar",
-                "url": "https://composer.cubedesigners.com/dist/fluidbook/tools/fluidbook-tools-dev-master-89e453.tar",
-                "reference": "49361737a3dd6334863ff0795b14612674440721",
-                "shasum": "6960231bb0a7d59c76dcf8ec87326a94ec8bf804"
+                "url": "https://composer.cubedesigners.com/dist/fluidbook/tools/fluidbook-tools-dev-master-f3fede.tar",
+                "reference": "4a219b8bdcffc55e4db1c02f2a8d034d5da867ac",
+                "shasum": "193f68989ee620d4eed88fe816f6c1fb8fb47d6f"
             },
             "require": {
                 "barryvdh/laravel-debugbar": "*",
                 }
             ],
             "description": "Fluidbook Tools",
-            "time": "2024-11-13T14:57:08+00:00"
+            "time": "2024-11-13T16:03:47+00:00"
         },
         {
             "name": "fpdf/fpdf",
         },
         {
             "name": "laravel/framework",
-            "version": "v10.48.23",
+            "version": "v10.48.24",
             "source": {
                 "type": "git",
                 "url": "https://github.com/laravel/framework.git",
-                "reference": "625269ca4881d2b50eded2045cb930960a181d98"
+                "reference": "2add73f71b88fc45ee1d4f3421f22366247f6155"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/laravel/framework/zipball/625269ca4881d2b50eded2045cb930960a181d98",
-                "reference": "625269ca4881d2b50eded2045cb930960a181d98",
+                "url": "https://api.github.com/repos/laravel/framework/zipball/2add73f71b88fc45ee1d4f3421f22366247f6155",
+                "reference": "2add73f71b88fc45ee1d4f3421f22366247f6155",
                 "shasum": ""
             },
             "require": {
                 "issues": "https://github.com/laravel/framework/issues",
                 "source": "https://github.com/laravel/framework"
             },
-            "time": "2024-11-12T15:39:10+00:00"
+            "time": "2024-11-20T15:57:07+00:00"
         },
         {
             "name": "laravel/prompts",
         },
         {
             "name": "laravel/serializable-closure",
-            "version": "v1.3.6",
+            "version": "v1.3.7",
             "source": {
                 "type": "git",
                 "url": "https://github.com/laravel/serializable-closure.git",
-                "reference": "f865a58ea3a0107c336b7045104c75243fa59d96"
+                "reference": "4f48ade902b94323ca3be7646db16209ec76be3d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f865a58ea3a0107c336b7045104c75243fa59d96",
-                "reference": "f865a58ea3a0107c336b7045104c75243fa59d96",
+                "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d",
+                "reference": "4f48ade902b94323ca3be7646db16209ec76be3d",
                 "shasum": ""
             },
             "require": {
                 "issues": "https://github.com/laravel/serializable-closure/issues",
                 "source": "https://github.com/laravel/serializable-closure"
             },
-            "time": "2024-11-11T17:06:04+00:00"
+            "time": "2024-11-14T18:34:49+00:00"
         },
         {
             "name": "lavary/laravel-menu",
         },
         {
             "name": "norkunas/youtube-dl-php",
-            "version": "v2.8.0",
+            "version": "v2.8.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/norkunas/youtube-dl-php.git",
-                "reference": "c734c2b9b63b26133fd9c480f8bdde1b5523367d"
+                "reference": "2382ef521bbf1a42f9d99e817060485eb4e26adf"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/norkunas/youtube-dl-php/zipball/c734c2b9b63b26133fd9c480f8bdde1b5523367d",
-                "reference": "c734c2b9b63b26133fd9c480f8bdde1b5523367d",
+                "url": "https://api.github.com/repos/norkunas/youtube-dl-php/zipball/2382ef521bbf1a42f9d99e817060485eb4e26adf",
+                "reference": "2382ef521bbf1a42f9d99e817060485eb4e26adf",
                 "shasum": ""
             },
             "require": {
             ],
             "support": {
                 "issues": "https://github.com/norkunas/youtube-dl-php/issues",
-                "source": "https://github.com/norkunas/youtube-dl-php/tree/v2.8.0"
+                "source": "https://github.com/norkunas/youtube-dl-php/tree/v2.8.1"
             },
-            "time": "2024-09-23T04:25:06+00:00"
+            "time": "2024-11-20T10:16:01+00:00"
         },
         {
             "name": "nothingworks/blade-svg",
         },
         {
             "name": "nunomaduro/termwind",
-            "version": "v1.16.0",
+            "version": "v1.17.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nunomaduro/termwind.git",
-                "reference": "dcf1ec3dfa36137b7ce41d43866644a7ab8fc257"
+                "reference": "5369ef84d8142c1d87e4ec278711d4ece3cbf301"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/dcf1ec3dfa36137b7ce41d43866644a7ab8fc257",
-                "reference": "dcf1ec3dfa36137b7ce41d43866644a7ab8fc257",
+                "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/5369ef84d8142c1d87e4ec278711d4ece3cbf301",
+                "reference": "5369ef84d8142c1d87e4ec278711d4ece3cbf301",
                 "shasum": ""
             },
             "require": {
                 "ext-mbstring": "*",
                 "php": "^8.1",
-                "symfony/console": "^6.4.12"
+                "symfony/console": "^6.4.15"
             },
             "require-dev": {
-                "illuminate/console": "^10.48.22",
-                "illuminate/support": "^10.48.22",
-                "laravel/pint": "^1.18.1",
-                "pestphp/pest": "^2",
+                "illuminate/console": "^10.48.24",
+                "illuminate/support": "^10.48.24",
+                "laravel/pint": "^1.18.2",
+                "pestphp/pest": "^2.36.0",
                 "pestphp/pest-plugin-mock": "2.0.0",
-                "phpstan/phpstan": "^1.12.6",
+                "phpstan/phpstan": "^1.12.11",
                 "phpstan/phpstan-strict-rules": "^1.6.1",
-                "symfony/var-dumper": "^6.4.11",
+                "symfony/var-dumper": "^6.4.15",
                 "thecodingmachine/phpstan-strict-rules": "^1.0.0"
             },
             "type": "library",
             ],
             "support": {
                 "issues": "https://github.com/nunomaduro/termwind/issues",
-                "source": "https://github.com/nunomaduro/termwind/tree/v1.16.0"
+                "source": "https://github.com/nunomaduro/termwind/tree/v1.17.0"
             },
             "funding": [
                 {
                     "type": "github"
                 }
             ],
-            "time": "2024-10-15T15:27:12+00:00"
+            "time": "2024-11-21T10:36:35+00:00"
         },
         {
             "name": "nyholm/psr7",
         },
         {
             "name": "spatie/db-dumper",
-            "version": "3.7.0",
+            "version": "3.7.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/spatie/db-dumper.git",
-                "reference": "22553ab8c34a9bb70645cb9bc2d9f236f3135705"
+                "reference": "55d4d6710e1ab18c1e7ce2b22b8ad4bea2a30016"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/spatie/db-dumper/zipball/22553ab8c34a9bb70645cb9bc2d9f236f3135705",
-                "reference": "22553ab8c34a9bb70645cb9bc2d9f236f3135705",
+                "url": "https://api.github.com/repos/spatie/db-dumper/zipball/55d4d6710e1ab18c1e7ce2b22b8ad4bea2a30016",
+                "reference": "55d4d6710e1ab18c1e7ce2b22b8ad4bea2a30016",
                 "shasum": ""
             },
             "require": {
                 "spatie"
             ],
             "support": {
-                "source": "https://github.com/spatie/db-dumper/tree/3.7.0"
+                "source": "https://github.com/spatie/db-dumper/tree/3.7.1"
             },
             "funding": [
                 {
                     "type": "github"
                 }
             ],
-            "time": "2024-09-23T08:58:35+00:00"
+            "time": "2024-11-18T14:54:31+00:00"
         },
         {
             "name": "spatie/image",
         },
         {
             "name": "spatie/laravel-package-tools",
-            "version": "1.16.5",
+            "version": "1.16.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/spatie/laravel-package-tools.git",
-                "reference": "c7413972cf22ffdff97b68499c22baa04eddb6a2"
+                "reference": "1f26942dc1e5c49eacfced34fdbc29ed234bd7b3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/c7413972cf22ffdff97b68499c22baa04eddb6a2",
-                "reference": "c7413972cf22ffdff97b68499c22baa04eddb6a2",
+                "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/1f26942dc1e5c49eacfced34fdbc29ed234bd7b3",
+                "reference": "1f26942dc1e5c49eacfced34fdbc29ed234bd7b3",
                 "shasum": ""
             },
             "require": {
             ],
             "support": {
                 "issues": "https://github.com/spatie/laravel-package-tools/issues",
-                "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.5"
+                "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.6"
             },
             "funding": [
                 {
                     "type": "github"
                 }
             ],
-            "time": "2024-08-27T18:56:10+00:00"
+            "time": "2024-11-18T15:02:02+00:00"
         },
         {
             "name": "spatie/laravel-permission",
         },
         {
             "name": "voku/portable-ascii",
-            "version": "2.0.1",
+            "version": "2.0.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/voku/portable-ascii.git",
-                "reference": "b56450eed252f6801410d810c8e1727224ae0743"
+                "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
-                "reference": "b56450eed252f6801410d810c8e1727224ae0743",
+                "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d",
+                "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d",
                 "shasum": ""
             },
             "require": {
             "authors": [
                 {
                     "name": "Lars Moelleken",
-                    "homepage": "http://www.moelleken.org/"
+                    "homepage": "https://www.moelleken.org/"
                 }
             ],
             "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
             ],
             "support": {
                 "issues": "https://github.com/voku/portable-ascii/issues",
-                "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
+                "source": "https://github.com/voku/portable-ascii/tree/2.0.3"
             },
             "funding": [
                 {
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-03-08T17:03:00+00:00"
+            "time": "2024-11-21T01:49:47+00:00"
         },
         {
             "name": "voku/simple_html_dom",
         },
         {
             "name": "spatie/backtrace",
-            "version": "1.6.2",
+            "version": "1.6.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/spatie/backtrace.git",
-                "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9"
+                "reference": "7c18db2bc667ac84e5d7c18e33f16c38ff2d8838"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/spatie/backtrace/zipball/1a9a145b044677ae3424693f7b06479fc8c137a9",
-                "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9",
+                "url": "https://api.github.com/repos/spatie/backtrace/zipball/7c18db2bc667ac84e5d7c18e33f16c38ff2d8838",
+                "reference": "7c18db2bc667ac84e5d7c18e33f16c38ff2d8838",
                 "shasum": ""
             },
             "require": {
                 "spatie"
             ],
             "support": {
-                "source": "https://github.com/spatie/backtrace/tree/1.6.2"
+                "source": "https://github.com/spatie/backtrace/tree/1.6.3"
             },
             "funding": [
                 {
                     "type": "other"
                 }
             ],
-            "time": "2024-07-22T08:21:24+00:00"
+            "time": "2024-11-18T14:58:58+00:00"
         },
         {
             "name": "spatie/error-solutions",