From 29d738d88795b5d06db45b3998f5576970a58106 Mon Sep 17 00:00:00 2001 From: bnomei Date: Tue, 3 Sep 2024 19:20:35 +0200 Subject: [PATCH] :recycle: fixed test for reload api option Signed-off-by: bnomei --- composer.json | 2 +- composer.lock | 308 +++++++++--------- index.js | 2 +- src/components/fields/Janitor.vue | 2 +- tests/site/commands/reload.php | 3 - tests/site/config/config.php | 7 + vendor/composer/installed.php | 14 +- .../Iterator/RecursiveDirectoryIterator.php | 3 +- 8 files changed, 173 insertions(+), 168 deletions(-) diff --git a/composer.json b/composer.json index 1d0cb22..1f327c2 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "bnomei/kirby3-janitor", "type": "kirby-plugin", - "version": "4.4.0", + "version": "4.4.1", "license": "MIT", "homepage": "https://github.com/bnomei/kirby3-janitor", "description": "Kirby Plugin for running commands like cleaning the cache from within the Panel, PHP code or a cronjob", diff --git a/composer.lock b/composer.lock index 9bed296..a55d9df 100644 --- a/composer.lock +++ b/composer.lock @@ -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": "67cb21222b7d527045d96869cca8a702", + "content-hash": "79249db17c5506be5a0035aa154a72e9", "packages": [ { "name": "getkirby/composer-installer", @@ -122,16 +122,16 @@ }, { "name": "symfony/finder", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "717c6329886f32dc65e27461f80f2a465412fdca" + "reference": "d95bbf319f7d052082fb7af147e0f835a695e823" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/717c6329886f32dc65e27461f80f2a465412fdca", - "reference": "717c6329886f32dc65e27461f80f2a465412fdca", + "url": "https://api.github.com/repos/symfony/finder/zipball/d95bbf319f7d052082fb7af147e0f835a695e823", + "reference": "d95bbf319f7d052082fb7af147e0f835a695e823", "shasum": "" }, "require": { @@ -166,7 +166,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.1.3" + "source": "https://github.com/symfony/finder/tree/v7.1.4" }, "funding": [ { @@ -182,7 +182,7 @@ "type": "tidelift" } ], - "time": "2024-07-24T07:08:44+00:00" + "time": "2024-08-13T14:28:19+00:00" } ], "packages-dev": [ @@ -742,16 +742,16 @@ }, { "name": "fidry/cpu-core-counter", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42" + "reference": "8520451a140d3f46ac33042715115e290cf5785f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42", - "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", + "reference": "8520451a140d3f46ac33042715115e290cf5785f", "shasum": "" }, "require": { @@ -791,7 +791,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0" + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" }, "funding": [ { @@ -799,7 +799,7 @@ "type": "github" } ], - "time": "2024-02-07T09:43:46+00:00" + "time": "2024-08-06T10:04:20+00:00" }, { "name": "filp/whoops", @@ -1011,16 +1011,16 @@ }, { "name": "getkirby/cms", - "version": "4.3.0", + "version": "4.3.1", "source": { "type": "git", "url": "https://github.com/getkirby/kirby.git", - "reference": "f9f00b16a22fe9dbbbddc2bfd4719ca3437cbee9" + "reference": "576306d3c56db387d49539c8b88dbecca6319bd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getkirby/kirby/zipball/f9f00b16a22fe9dbbbddc2bfd4719ca3437cbee9", - "reference": "f9f00b16a22fe9dbbbddc2bfd4719ca3437cbee9", + "url": "https://api.github.com/repos/getkirby/kirby/zipball/576306d3c56db387d49539c8b88dbecca6319bd9", + "reference": "576306d3c56db387d49539c8b88dbecca6319bd9", "shasum": "" }, "require": { @@ -1110,7 +1110,7 @@ "type": "custom" } ], - "time": "2024-06-13T09:58:27+00:00" + "time": "2024-08-29T08:54:24+00:00" }, { "name": "guzzlehttp/guzzle", @@ -1525,16 +1525,16 @@ }, { "name": "illuminate/bus", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/bus.git", - "reference": "eb5952412b1401530819bda5b42b09e873ba5fe0" + "reference": "808de7c6c4dea7e5cbb37266ddb49aa38281918b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/bus/zipball/eb5952412b1401530819bda5b42b09e873ba5fe0", - "reference": "eb5952412b1401530819bda5b42b09e873ba5fe0", + "url": "https://api.github.com/repos/illuminate/bus/zipball/808de7c6c4dea7e5cbb37266ddb49aa38281918b", + "reference": "808de7c6c4dea7e5cbb37266ddb49aa38281918b", "shasum": "" }, "require": { @@ -1574,20 +1574,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-08-01T18:54:27+00:00" + "time": "2024-08-15T18:31:38+00:00" }, { "name": "illuminate/collections", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/collections.git", - "reference": "dc68a7ccad93f3c2baa0bc8f559431c06391aa75" + "reference": "d373c9f382f38dc5e612dbe1cd196b154cd1063c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/collections/zipball/dc68a7ccad93f3c2baa0bc8f559431c06391aa75", - "reference": "dc68a7ccad93f3c2baa0bc8f559431c06391aa75", + "url": "https://api.github.com/repos/illuminate/collections/zipball/d373c9f382f38dc5e612dbe1cd196b154cd1063c", + "reference": "d373c9f382f38dc5e612dbe1cd196b154cd1063c", "shasum": "" }, "require": { @@ -1629,11 +1629,11 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-08-01T18:54:27+00:00" + "time": "2024-08-19T02:05:39+00:00" }, { "name": "illuminate/conditionable", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/conditionable.git", @@ -1679,7 +1679,7 @@ }, { "name": "illuminate/console", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/console.git", @@ -1745,16 +1745,16 @@ }, { "name": "illuminate/container", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/container.git", - "reference": "f47be671981a4438257c4fbfc3ad257f4e3e929a" + "reference": "4e353ac5dc1c61eb28e1d3721741989dd692df15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/container/zipball/f47be671981a4438257c4fbfc3ad257f4e3e929a", - "reference": "f47be671981a4438257c4fbfc3ad257f4e3e929a", + "url": "https://api.github.com/repos/illuminate/container/zipball/4e353ac5dc1c61eb28e1d3721741989dd692df15", + "reference": "4e353ac5dc1c61eb28e1d3721741989dd692df15", "shasum": "" }, "require": { @@ -1792,11 +1792,11 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-08-05T15:04:01+00:00" + "time": "2024-08-17T21:07:31+00:00" }, { "name": "illuminate/contracts", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/contracts.git", @@ -1844,16 +1844,16 @@ }, { "name": "illuminate/database", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/database.git", - "reference": "dae4ab28c830a906a410a168d8ece8fb4ab7b2be" + "reference": "9df2b37cf3cee3962b26f3598718dcb2631561a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/database/zipball/dae4ab28c830a906a410a168d8ece8fb4ab7b2be", - "reference": "dae4ab28c830a906a410a168d8ece8fb4ab7b2be", + "url": "https://api.github.com/repos/illuminate/database/zipball/9df2b37cf3cee3962b26f3598718dcb2631561a8", + "reference": "9df2b37cf3cee3962b26f3598718dcb2631561a8", "shasum": "" }, "require": { @@ -1908,20 +1908,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-08-06T14:16:43+00:00" + "time": "2024-08-15T18:42:07+00:00" }, { "name": "illuminate/events", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/events.git", - "reference": "2ca94accf7e30e478a1cb2b0501c5be4478cb717" + "reference": "cfd8a636234cc5b5f736f2987f33b0d471d974b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/events/zipball/2ca94accf7e30e478a1cb2b0501c5be4478cb717", - "reference": "2ca94accf7e30e478a1cb2b0501c5be4478cb717", + "url": "https://api.github.com/repos/illuminate/events/zipball/cfd8a636234cc5b5f736f2987f33b0d471d974b3", + "reference": "cfd8a636234cc5b5f736f2987f33b0d471d974b3", "shasum": "" }, "require": { @@ -1963,11 +1963,11 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-06-28T20:10:30+00:00" + "time": "2024-08-07T14:43:54+00:00" }, { "name": "illuminate/filesystem", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/filesystem.git", @@ -2034,16 +2034,16 @@ }, { "name": "illuminate/http", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/http.git", - "reference": "36ab177d468692fe95acc590b33130e465c2477b" + "reference": "19e976d575cd9f1951ef84c1d9c1de3c5e0f83a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/http/zipball/36ab177d468692fe95acc590b33130e465c2477b", - "reference": "36ab177d468692fe95acc590b33130e465c2477b", + "url": "https://api.github.com/repos/illuminate/http/zipball/19e976d575cd9f1951ef84c1d9c1de3c5e0f83a4", + "reference": "19e976d575cd9f1951ef84c1d9c1de3c5e0f83a4", "shasum": "" }, "require": { @@ -2091,11 +2091,11 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-08-06T14:16:43+00:00" + "time": "2024-08-07T21:08:03+00:00" }, { "name": "illuminate/macroable", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/macroable.git", @@ -2141,7 +2141,7 @@ }, { "name": "illuminate/pipeline", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/pipeline.git", @@ -2189,16 +2189,16 @@ }, { "name": "illuminate/session", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/session.git", - "reference": "b831db344028e665052a4de88fd5590bfa1707c3" + "reference": "cc4be7c46678328858ef2aa692013536717f32ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/session/zipball/b831db344028e665052a4de88fd5590bfa1707c3", - "reference": "b831db344028e665052a4de88fd5590bfa1707c3", + "url": "https://api.github.com/repos/illuminate/session/zipball/cc4be7c46678328858ef2aa692013536717f32ec", + "reference": "cc4be7c46678328858ef2aa692013536717f32ec", "shasum": "" }, "require": { @@ -2242,20 +2242,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-06-28T20:10:30+00:00" + "time": "2024-08-08T13:30:23+00:00" }, { "name": "illuminate/support", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/support.git", - "reference": "40457b4694486e506bad1b5be6de8dc86afce46f" + "reference": "82e493e7b9bb94d1b065260170e3ecbfd3670126" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/support/zipball/40457b4694486e506bad1b5be6de8dc86afce46f", - "reference": "40457b4694486e506bad1b5be6de8dc86afce46f", + "url": "https://api.github.com/repos/illuminate/support/zipball/82e493e7b9bb94d1b065260170e3ecbfd3670126", + "reference": "82e493e7b9bb94d1b065260170e3ecbfd3670126", "shasum": "" }, "require": { @@ -2316,11 +2316,11 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-08-06T14:20:50+00:00" + "time": "2024-08-20T14:50:34+00:00" }, { "name": "illuminate/view", - "version": "v11.20.0", + "version": "v11.21.0", "source": { "type": "git", "url": "https://github.com/illuminate/view.git", @@ -2663,16 +2663,16 @@ }, { "name": "laravel/prompts", - "version": "v0.1.24", + "version": "v0.1.25", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "409b0b4305273472f3754826e68f4edbd0150149" + "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/409b0b4305273472f3754826e68f4edbd0150149", - "reference": "409b0b4305273472f3754826e68f4edbd0150149", + "url": "https://api.github.com/repos/laravel/prompts/zipball/7b4029a84c37cb2725fc7f011586e2997040bc95", + "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95", "shasum": "" }, "require": { @@ -2715,9 +2715,9 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.24" + "source": "https://github.com/laravel/prompts/tree/v0.1.25" }, - "time": "2024-06-17T13:58:22+00:00" + "time": "2024-08-12T22:06:33+00:00" }, { "name": "league/climate", @@ -3396,21 +3396,21 @@ }, { "name": "pestphp/pest", - "version": "v2.35.0", + "version": "v2.35.1", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "d0ff2c8ec294b7aa7fcb0f3ddc4fdec864234646" + "reference": "b13acb630df52c06123588d321823c31fc685545" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/d0ff2c8ec294b7aa7fcb0f3ddc4fdec864234646", - "reference": "d0ff2c8ec294b7aa7fcb0f3ddc4fdec864234646", + "url": "https://api.github.com/repos/pestphp/pest/zipball/b13acb630df52c06123588d321823c31fc685545", + "reference": "b13acb630df52c06123588d321823c31fc685545", "shasum": "" }, "require": { "brianium/paratest": "^7.3.1", - "nunomaduro/collision": "^7.10.0|^8.3.0", + "nunomaduro/collision": "^7.10.0|^8.4.0", "nunomaduro/termwind": "^1.15.1|^2.0.1", "pestphp/pest-plugin": "^2.1.1", "pestphp/pest-plugin-arch": "^2.7.0", @@ -3488,7 +3488,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v2.35.0" + "source": "https://github.com/pestphp/pest/tree/v2.35.1" }, "funding": [ { @@ -3500,7 +3500,7 @@ "type": "github" } ], - "time": "2024-08-02T10:57:29+00:00" + "time": "2024-08-20T21:41:50+00:00" }, { "name": "pestphp/pest-plugin", @@ -3645,26 +3645,26 @@ }, { "name": "pestphp/pest-plugin-type-coverage", - "version": "v2.8.5", + "version": "v2.8.6", "source": { "type": "git", "url": "https://github.com/pestphp/pest-plugin-type-coverage.git", - "reference": "147f8b6d5dc180a756aa694d34f606050b823c71" + "reference": "9d4db78b72f27a925f65994708e24874a5dccf45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-type-coverage/zipball/147f8b6d5dc180a756aa694d34f606050b823c71", - "reference": "147f8b6d5dc180a756aa694d34f606050b823c71", + "url": "https://api.github.com/repos/pestphp/pest-plugin-type-coverage/zipball/9d4db78b72f27a925f65994708e24874a5dccf45", + "reference": "9d4db78b72f27a925f65994708e24874a5dccf45", "shasum": "" }, "require": { "pestphp/pest-plugin": "^2.1.1", "php": "^8.1", - "phpstan/phpstan": "^1.11.8", + "phpstan/phpstan": "^1.12.0", "tomasvotruba/type-coverage": "^0.2.8" }, "require-dev": { - "pestphp/pest": "^2.34.9", + "pestphp/pest": "^2.35.1", "pestphp/pest-dev-tools": "^2.16.0" }, "type": "library", @@ -3698,7 +3698,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest-plugin-type-coverage/issues", - "source": "https://github.com/pestphp/pest-plugin-type-coverage/tree/v2.8.5" + "source": "https://github.com/pestphp/pest-plugin-type-coverage/tree/v2.8.6" }, "funding": [ { @@ -3714,7 +3714,7 @@ "type": "patreon" } ], - "time": "2024-07-24T12:09:30+00:00" + "time": "2024-08-28T16:05:38+00:00" }, { "name": "phar-io/manifest", @@ -4092,16 +4092,16 @@ }, { "name": "phpmyadmin/sql-parser", - "version": "5.9.1", + "version": "5.10.0", "source": { "type": "git", "url": "https://github.com/phpmyadmin/sql-parser.git", - "reference": "169a9f11f1957ea36607c9b29eac1b48679f1ecc" + "reference": "91d980ab76c3f152481e367f62b921adc38af451" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/169a9f11f1957ea36607c9b29eac1b48679f1ecc", - "reference": "169a9f11f1957ea36607c9b29eac1b48679f1ecc", + "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/91d980ab76c3f152481e367f62b921adc38af451", + "reference": "91d980ab76c3f152481e367f62b921adc38af451", "shasum": "" }, "require": { @@ -4175,20 +4175,20 @@ "type": "other" } ], - "time": "2024-08-13T19:01:01+00:00" + "time": "2024-08-29T20:56:34+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.29.1", + "version": "1.30.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/5ceb0e384997db59f38774bf79c2a6134252c08f", + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f", "shasum": "" }, "require": { @@ -4220,22 +4220,22 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.0" }, - "time": "2024-05-31T08:52:43+00:00" + "time": "2024-08-29T09:54:52+00:00" }, { "name": "phpstan/phpstan", - "version": "1.11.10", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "640410b32995914bde3eed26fa89552f9c2c082f" + "reference": "384af967d35b2162f69526c7276acadce534d0e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/640410b32995914bde3eed26fa89552f9c2c082f", - "reference": "640410b32995914bde3eed26fa89552f9c2c082f", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/384af967d35b2162f69526c7276acadce534d0e1", + "reference": "384af967d35b2162f69526c7276acadce534d0e1", "shasum": "" }, "require": { @@ -4280,36 +4280,36 @@ "type": "github" } ], - "time": "2024-08-08T09:02:50+00:00" + "time": "2024-08-27T09:18:05+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.15", + "version": "10.1.16", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae" + "reference": "7e308268858ed6baedc8704a304727d20bc07c77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", - "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", + "reference": "7e308268858ed6baedc8704a304727d20bc07c77", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=8.1", - "phpunit/php-file-iterator": "^4.0", - "phpunit/php-text-template": "^3.0", - "sebastian/code-unit-reverse-lookup": "^3.0", - "sebastian/complexity": "^3.0", - "sebastian/environment": "^6.0", - "sebastian/lines-of-code": "^2.0", - "sebastian/version": "^4.0", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-text-template": "^3.0.1", + "sebastian/code-unit-reverse-lookup": "^3.0.0", + "sebastian/complexity": "^3.2.0", + "sebastian/environment": "^6.1.0", + "sebastian/lines-of-code": "^2.0.2", + "sebastian/version": "^4.0.1", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { "phpunit/phpunit": "^10.1" @@ -4321,7 +4321,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.1-dev" + "dev-main": "10.1.x-dev" } }, "autoload": { @@ -4350,7 +4350,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" }, "funding": [ { @@ -4358,7 +4358,7 @@ "type": "github" } ], - "time": "2024-06-29T08:25:15+00:00" + "time": "2024-08-22T04:31:57+00:00" }, { "name": "phpunit/php-file-iterator", @@ -5017,16 +5017,16 @@ }, { "name": "psr/log", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + "reference": "79dff0b268932c640297f5208d6298f71855c03e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e", + "reference": "79dff0b268932c640297f5208d6298f71855c03e", "shasum": "" }, "require": { @@ -5061,9 +5061,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.1" }, - "time": "2021-07-14T16:46:02+00:00" + "time": "2024-08-21T13:31:24+00:00" }, { "name": "psr/simple-cache", @@ -6586,16 +6586,16 @@ }, { "name": "symfony/console", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9" + "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9", - "reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9", + "url": "https://api.github.com/repos/symfony/console/zipball/1eed7af6961d763e7832e874d7f9b21c3ea9c111", + "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111", "shasum": "" }, "require": { @@ -6659,7 +6659,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.3" + "source": "https://github.com/symfony/console/tree/v7.1.4" }, "funding": [ { @@ -6675,7 +6675,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:41:01+00:00" + "time": "2024-08-15T22:48:53+00:00" }, { "name": "symfony/error-handler", @@ -6987,16 +6987,16 @@ }, { "name": "symfony/http-kernel", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "db9702f3a04cc471ec8c70e881825db26ac5f186" + "reference": "6efcbd1b3f444f631c386504fc83eeca25963747" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/db9702f3a04cc471ec8c70e881825db26ac5f186", - "reference": "db9702f3a04cc471ec8c70e881825db26ac5f186", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6efcbd1b3f444f631c386504fc83eeca25963747", + "reference": "6efcbd1b3f444f631c386504fc83eeca25963747", "shasum": "" }, "require": { @@ -7081,7 +7081,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.1.3" + "source": "https://github.com/symfony/http-kernel/tree/v7.1.4" }, "funding": [ { @@ -7097,20 +7097,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T14:58:15+00:00" + "time": "2024-08-30T17:02:28+00:00" }, { "name": "symfony/mime", - "version": "v7.1.2", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc" + "reference": "ccaa6c2503db867f472a587291e764d6a1e58758" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/26a00b85477e69a4bab63b66c5dce64f18b0cbfc", - "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc", + "url": "https://api.github.com/repos/symfony/mime/zipball/ccaa6c2503db867f472a587291e764d6a1e58758", + "reference": "ccaa6c2503db867f472a587291e764d6a1e58758", "shasum": "" }, "require": { @@ -7165,7 +7165,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.1.2" + "source": "https://github.com/symfony/mime/tree/v7.1.4" }, "funding": [ { @@ -7181,7 +7181,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T10:03:55+00:00" + "time": "2024-08-13T14:28:19+00:00" }, { "name": "symfony/polyfill-ctype", @@ -7949,16 +7949,16 @@ }, { "name": "symfony/string", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "ea272a882be7f20cad58d5d78c215001617b7f07" + "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ea272a882be7f20cad58d5d78c215001617b7f07", - "reference": "ea272a882be7f20cad58d5d78c215001617b7f07", + "url": "https://api.github.com/repos/symfony/string/zipball/6cd670a6d968eaeb1c77c2e76091c45c56bc367b", + "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b", "shasum": "" }, "require": { @@ -8016,7 +8016,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.3" + "source": "https://github.com/symfony/string/tree/v7.1.4" }, "funding": [ { @@ -8032,7 +8032,7 @@ "type": "tidelift" } ], - "time": "2024-07-22T10:25:37+00:00" + "time": "2024-08-12T09:59:40+00:00" }, { "name": "symfony/translation", @@ -8208,16 +8208,16 @@ }, { "name": "symfony/var-dumper", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "86af4617cca75a6e28598f49ae0690f3b9d4591f" + "reference": "a5fa7481b199090964d6fd5dab6294d5a870c7aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/86af4617cca75a6e28598f49ae0690f3b9d4591f", - "reference": "86af4617cca75a6e28598f49ae0690f3b9d4591f", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a5fa7481b199090964d6fd5dab6294d5a870c7aa", + "reference": "a5fa7481b199090964d6fd5dab6294d5a870c7aa", "shasum": "" }, "require": { @@ -8271,7 +8271,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.3" + "source": "https://github.com/symfony/var-dumper/tree/v7.1.4" }, "funding": [ { @@ -8287,7 +8287,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:41:01+00:00" + "time": "2024-08-30T16:12:47+00:00" }, { "name": "symfony/yaml", diff --git a/index.js b/index.js index a57ee8a..9425923 100644 --- a/index.js +++ b/index.js @@ -1 +1 @@ -(function(){"use strict";var _=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{staticClass:"janitor-wrapper"},[o("k-button",{class:["janitor",t.button.state],style:t.buttonStyle,attrs:{id:t.id,icon:t.currentIcon,command:t.command,disabled:!t.unsaved&&!t.isUnsaved&&t.hasChanges},on:{click:t.runJanitor}},[t._v(" "+t._s(t.button.label||t.label)+" ")]),t.button.help||t.help?o("k-text",{staticClass:"k-field-help",attrs:{theme:"help",html:t.button.help||t.help}}):t._e(),o("a",{directives:[{name:"show",rawName:"v-show",value:t.downloadRequest,expression:"downloadRequest"}],ref:"downloadAnchor",staticClass:"visually-hidden",attrs:{href:t.downloadRequest,download:""}}),o("a",{directives:[{name:"show",rawName:"v-show",value:t.urlRequest,expression:"urlRequest"}],ref:"tabAnchor",staticClass:"visually-hidden",attrs:{href:t.urlRequest,target:"_blank"}})],1)},w=[],q="";function C(t,e,o,d,r,b,a,f){var s=typeof t=="function"?t.options:t;e&&(s.render=e,s.staticRenderFns=o,s._compiled=!0),d&&(s.functional=!0),b&&(s._scopeId="data-v-"+b);var i;if(a?(i=function(n){n=n||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!n&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(n=__VUE_SSR_CONTEXT__),r&&r.call(this,n),n&&n._registeredComponents&&n._registeredComponents.add(a)},s._ssrRegister=i):r&&(i=f?function(){r.call(this,(s.functional?this.parent:this).$root.$options.shadowRoot)}:r),i)if(s.functional){s._injectStyles=i;var l=s.render;s.render=function(p,h){return i.call(h),l(p,h)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,i):[i]}return{exports:t,options:s}}const c="janitor.runAfterAutosave",y={props:{autosave:Boolean,backgroundColor:String,clipboard:Boolean,color:String,confirm:String,command:String,cooldown:Number,error:String,icon:String,intab:Boolean,help:String,label:String,progress:String,success:String,status:String,unsaved:Boolean},data(){return{button:{label:null,state:null,help:null,style:null},clipboardRequest:null,downloadRequest:null,icons:{"is-running":"janitorLoader","is-success":"check","has-error":"alert"},isUnsaved:!1,urlRequest:null}},computed:{buttonStyle(){return this.button.style||{color:this.color,backgroundColor:this.backgroundColor}},currentIcon(){var t;return(t=this.icons[this.status])!=null?t:this.icon},id(){var t;return"janitor-"+this.hashCode(this.command+((t=this.button.label)!=null?t:"")+this.label)},hasChanges(){return this.$store.getters["content/hasChanges"]()}},created(){this.$events.$on("model.update",()=>sessionStorage.getItem(c)&&location.reload()),sessionStorage.getItem(c)===this.id&&(sessionStorage.removeItem(c),this.runJanitor())},methods:{hashCode(t){let e=0;if(t.length===0)return e;for(const o of t)e=(e<<5)-e+t.charCodeAt(o),e=e&e;return e},async runJanitor(){if(!(this.confirm&&!window.confirm(this.confirm))){if(this.autosave&&this.hasChanges){const t=document.querySelector(".k-panel .k-form-buttons .k-view").lastChild;if(t){this.isUnsaved=!1,sessionStorage.setItem(c,this.id),this.simulateClick(t);return}}if(this.clipboardRequest){await this.copyToClipboard(this.clipboardRequest),this.resetButton(),this.clipboardRequest=null;return}this.status||this.postRequest("plugin-janitor",{command:this.command})}},async postRequest(t,e){var m;this.button.label=(m=this.progress)!=null?m:`${this.label} \u2026`,this.button.state="is-running";const{label:o,message:d,status:r,reload:b,open:a,download:f,clipboard:s,success:i,error:l,icon:u,help:n,color:p,backgroundColor:h,resetStyle:g}=await this.$api.post(t,e);r===200?this.button.label=i!=null?i:this.success:this.button.label=l!=null?l:this.error,o&&(this.label=o),d&&(this.button.label=d),n&&(this.button.help=n),u&&(this.icon=u),this.button.style={color:"white",reset:!0},r?(this.button.state=r===200?"is-success":"has-error",this.button.style.backgroundColor=r===200?"var(--color-positive)":"var(--color-negative-light)"):(this.button.state="has-response",this.button.style.backgroundColor="var(--color-text)"),p&&(this.button.style.reset=!1,this.button.style.color=p),h&&(this.button.style.reset=!1,this.button.style.backgroundColor=h),g&&(this.button.style.reset=g),b&&location.reload(),a&&(this.intab?(this.urlRequest=a,this.$nextTick(()=>{this.simulateClick(this.$refs.tabAnchor)})):location.href=a),f&&(this.downloadRequest=f,this.$nextTick(()=>{this.simulateClick(this.$refs.downloadAnchor)})),s?(this.clipboardRequest=s,this.button.label=this.progress,this.button.state="is-success",setTimeout(this.resetButton,this.cooldown),this.$nextTick(()=>{this.copyToClipboard(this.clipboardRequest)})):setTimeout(this.resetButton,this.cooldown)},resetButton(){var t;this.button.label=null,this.button.state=null,this.button.style=(t=this.button.style)!=null&&t.reset?null:this.button.style},simulateClick(t){const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});t.dispatchEvent(e)},async copyToClipboard(t){try{await navigator.clipboard.writeText(t)}catch{console.error("navigator.clipboard is not available")}}}},v={};var k=C(y,_,w,!1,R,null,null,null);function R(t){for(let e in v)this[e]=v[e]}var S=function(){return k.exports}();window.panel.plugin("bnomei/janitor",{fields:{janitor:S},icons:{janitorLoader:''}})})(); +(function(){"use strict";var _=function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("div",{staticClass:"janitor-wrapper"},[o("k-button",{class:["janitor",t.button.state],style:t.buttonStyle,attrs:{id:t.id,icon:t.currentIcon,command:t.command,disabled:!t.unsaved&&!t.isUnsaved&&t.hasChanges},on:{click:t.runJanitor}},[t._v(" "+t._s(t.button.label||t.label)+" ")]),t.button.help||t.help?o("k-text",{staticClass:"k-field-help",attrs:{theme:"help",html:t.button.help||t.help}}):t._e(),o("a",{directives:[{name:"show",rawName:"v-show",value:t.downloadRequest,expression:"downloadRequest"}],ref:"downloadAnchor",staticClass:"visually-hidden",attrs:{href:t.downloadRequest,download:""}}),o("a",{directives:[{name:"show",rawName:"v-show",value:t.urlRequest,expression:"urlRequest"}],ref:"tabAnchor",staticClass:"visually-hidden",attrs:{href:t.urlRequest,target:"_blank"}})],1)},w=[],q="";function C(t,e,o,d,r,b,a,f){var s=typeof t=="function"?t.options:t;e&&(s.render=e,s.staticRenderFns=o,s._compiled=!0),d&&(s.functional=!0),b&&(s._scopeId="data-v-"+b);var i;if(a?(i=function(n){n=n||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!n&&typeof __VUE_SSR_CONTEXT__!="undefined"&&(n=__VUE_SSR_CONTEXT__),r&&r.call(this,n),n&&n._registeredComponents&&n._registeredComponents.add(a)},s._ssrRegister=i):r&&(i=f?function(){r.call(this,(s.functional?this.parent:this).$root.$options.shadowRoot)}:r),i)if(s.functional){s._injectStyles=i;var l=s.render;s.render=function(p,h){return i.call(h),l(p,h)}}else{var u=s.beforeCreate;s.beforeCreate=u?[].concat(u,i):[i]}return{exports:t,options:s}}const c="janitor.runAfterAutosave",y={props:{autosave:Boolean,backgroundColor:String,clipboard:Boolean,color:String,confirm:String,command:String,cooldown:Number,error:String,icon:String,intab:Boolean,help:String,label:String,progress:String,success:String,status:String,unsaved:Boolean},data(){return{button:{label:null,state:null,help:null,style:null},clipboardRequest:null,downloadRequest:null,icons:{"is-running":"janitorLoader","is-success":"check","has-error":"alert"},isUnsaved:!1,urlRequest:null}},computed:{buttonStyle(){return this.button.style||{color:this.color,backgroundColor:this.backgroundColor}},currentIcon(){var t;return(t=this.icons[this.status])!=null?t:this.icon},id(){var t;return"janitor-"+this.hashCode(this.command+((t=this.button.label)!=null?t:"")+this.label)},hasChanges(){return this.$store.getters["content/hasChanges"]()}},created(){this.$events.$on("model.update",()=>sessionStorage.getItem(c)&&location.reload()),sessionStorage.getItem(c)===this.id&&(sessionStorage.removeItem(c),this.runJanitor())},methods:{hashCode(t){let e=0;if(t.length===0)return e;for(const o of t)e=(e<<5)-e+t.charCodeAt(o),e=e&e;return e},async runJanitor(){if(!(this.confirm&&!window.confirm(this.confirm))){if(this.autosave&&this.hasChanges){const t=document.querySelector(".k-panel .k-form-buttons .k-view").lastChild;if(t){this.isUnsaved=!1,sessionStorage.setItem(c,this.id),this.simulateClick(t);return}}if(this.clipboardRequest){await this.copyToClipboard(this.clipboardRequest),this.resetButton(),this.clipboardRequest=null;return}this.status||await this.postRequest("plugin-janitor",{command:this.command})}},async postRequest(t,e){var m;this.button.label=(m=this.progress)!=null?m:`${this.label} \u2026`,this.button.state="is-running";const{label:o,message:d,status:r,reload:b,open:a,download:f,clipboard:s,success:i,error:l,icon:u,help:n,color:p,backgroundColor:h,resetStyle:g}=await this.$api.post(t,e);r===200?this.button.label=i!=null?i:this.success:this.button.label=l!=null?l:this.error,o&&(this.label=o),d&&(this.button.label=d),n&&(this.button.help=n),u&&(this.icon=u),this.button.style={color:"white",reset:!0},r?(this.button.state=r===200?"is-success":"has-error",this.button.style.backgroundColor=r===200?"var(--color-positive)":"var(--color-negative-light)"):(this.button.state="has-response",this.button.style.backgroundColor="var(--color-text)"),p&&(this.button.style.reset=!1,this.button.style.color=p),h&&(this.button.style.reset=!1,this.button.style.backgroundColor=h),g&&(this.button.style.reset=g),b&&location.reload(),a&&(this.intab?(this.urlRequest=a,this.$nextTick(()=>{this.simulateClick(this.$refs.tabAnchor)})):location.href=a),f&&(this.downloadRequest=f,this.$nextTick(()=>{this.simulateClick(this.$refs.downloadAnchor)})),s?(this.clipboardRequest=s,this.button.label=this.progress,this.button.state="is-success",setTimeout(this.resetButton,this.cooldown),this.$nextTick(()=>{this.copyToClipboard(this.clipboardRequest)})):setTimeout(this.resetButton,this.cooldown)},resetButton(){var t;this.button.label=null,this.button.state=null,this.button.style=(t=this.button.style)!=null&&t.reset?null:this.button.style},simulateClick(t){const e=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});t.dispatchEvent(e)},async copyToClipboard(t){try{await navigator.clipboard.writeText(t)}catch{console.error("navigator.clipboard is not available")}}}},v={};var k=C(y,_,w,!1,R,null,null,null);function R(t){for(let e in v)this[e]=v[e]}var S=function(){return k.exports}();window.panel.plugin("bnomei/janitor",{fields:{janitor:S},icons:{janitorLoader:''}})})(); diff --git a/src/components/fields/Janitor.vue b/src/components/fields/Janitor.vue index 52202d5..c5e9021 100755 --- a/src/components/fields/Janitor.vue +++ b/src/components/fields/Janitor.vue @@ -165,7 +165,7 @@ export default { return; } - this.postRequest("plugin-janitor", { command: this.command }); + await this.postRequest("plugin-janitor", { command: this.command }); }, async postRequest(path, data) { diff --git a/tests/site/commands/reload.php b/tests/site/commands/reload.php index 8627652..f00f62d 100644 --- a/tests/site/commands/reload.php +++ b/tests/site/commands/reload.php @@ -1,4 +1,3 @@ - static function (CLI $cli): void { $cli->error('No reload in CLI.'); - ray('reload', $cli->args()); - janitor()->data($cli->arg('command'), [ 'status' => 200, 'reload' => true, // will trigger JS location.reload in panel diff --git a/tests/site/config/config.php b/tests/site/config/config.php index c227f99..de82ebc 100644 --- a/tests/site/config/config.php +++ b/tests/site/config/config.php @@ -10,6 +10,13 @@ ], ], + // DO NOT USE BASIC AUTH IN PRODUCTION + // I only use this in my dev env to test the janitor commands + 'api' => [ + 'basicAuth' => true, + 'allowInsecure' => true, + ], + 'bnomei.janitor.secret' => 'e9fe51f94eadabf54', // janitor v2 job callback diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 72d2793..59a8b93 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -1,8 +1,8 @@ array( 'name' => 'bnomei/kirby3-janitor', - 'pretty_version' => '4.4.0', - 'version' => '4.4.0.0', + 'pretty_version' => '4.4.1', + 'version' => '4.4.1.0', 'reference' => null, 'type' => 'kirby-plugin', 'install_path' => __DIR__ . '/../../', @@ -11,8 +11,8 @@ ), 'versions' => array( 'bnomei/kirby3-janitor' => array( - 'pretty_version' => '4.4.0', - 'version' => '4.4.0.0', + 'pretty_version' => '4.4.1', + 'version' => '4.4.1.0', 'reference' => null, 'type' => 'kirby-plugin', 'install_path' => __DIR__ . '/../../', @@ -38,9 +38,9 @@ 'dev_requirement' => false, ), 'symfony/finder' => array( - 'pretty_version' => 'v7.1.3', - 'version' => '7.1.3.0', - 'reference' => '717c6329886f32dc65e27461f80f2a465412fdca', + 'pretty_version' => 'v7.1.4', + 'version' => '7.1.4.0', + 'reference' => 'd95bbf319f7d052082fb7af147e0f835a695e823', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), diff --git a/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php index 34cced6..f5fd2d4 100644 --- a/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +++ b/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php @@ -63,8 +63,9 @@ public function current(): SplFileInfo $subPathname .= $this->directorySeparator; } $subPathname .= $this->getFilename(); + $basePath = $this->rootPath; - if ('/' !== $basePath = $this->rootPath) { + if ('/' !== $basePath && !str_ends_with($basePath, $this->directorySeparator) && !str_ends_with($basePath, '/')) { $basePath .= $this->directorySeparator; }