From 39247ac7ef2e49d1de2b501b6884827a7d7ec3ff Mon Sep 17 00:00:00 2001 From: Djamil Legato Date: Wed, 2 Jun 2021 23:35:00 -0700 Subject: [PATCH 01/16] Updated blueprints inline-docs for `clear_images_by_default` --- system/config/system.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/config/system.yaml b/system/config/system.yaml index 8c14e5d49..e49ab4770 100644 --- a/system/config/system.yaml +++ b/system/config/system.yaml @@ -96,7 +96,7 @@ cache: purge_at: '0 4 * * *' # How often to purge old file cache (using new scheduler) clear_at: '0 3 * * *' # How often to clear cache (using new scheduler) clear_job_type: 'standard' # Type to clear when processing the scheduled clear job `standard`|`all` - clear_images_by_default: false # By default grav will include processed images in cache clear, this can be disabled + clear_images_by_default: false # By default grav does not include processed images in cache clear, this can be enabled cli_compatibility: false # Ensures only non-volatile drivers are used (file, redis, memcache, etc.) lifetime: 604800 # Lifetime of cached data in seconds (0 = infinite) gzip: false # GZip compress the page output From c288d4bd0b22ef695b59128ac75d45a2f93e0bd5 Mon Sep 17 00:00:00 2001 From: Djamil Legato Date: Thu, 3 Jun 2021 15:51:24 -0700 Subject: [PATCH 02/16] =?UTF-8?q?Allow=20to=20unset=20an=20asset=20attribu?= =?UTF-8?q?te=20by=20specifying=20null=20(ie,=20`=E2=80=99defer=E2=80=99?= =?UTF-8?q?=20=3D>=20null`)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php b/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php index 902a7c509..ac6e55a31 100644 --- a/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php +++ b/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php @@ -156,6 +156,10 @@ protected function renderAttributes() $no_key = ['loading']; foreach ($this->attributes as $key => $value) { + if ($value === null) { + continue; + } + if (is_numeric($key)) { $key = $value; } From 8d506db73c6f4ed342ef81200ab8fe2fe342b9e0 Mon Sep 17 00:00:00 2001 From: Djamil Legato Date: Thu, 3 Jun 2021 15:58:28 -0700 Subject: [PATCH 03/16] Added support specifying custom attributes to assets in a collection (fixes #3358) --- CHANGELOG.md | 7 +++++++ system/src/Grav/Common/Assets.php | 8 ++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66fe0b0c8..d87218026 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# v1.7.17 +## mm/dd/2021 + +1. [](#improved) + * Allow to unset an asset attribute by specifying null (ie, `'defer': null`) + * Support specifying custom attributes to assets in a collection [Read more](https://learn.getgrav.org/17/themes/asset-manager#collections-with-attributes?target=_blank) [#3358](https://github.com/getgrav/grav/issues/3358) + # v1.7.16 ## 06/02/2021 diff --git a/system/src/Grav/Common/Assets.php b/system/src/Grav/Common/Assets.php index 51a2531e4..18a6d9c09 100644 --- a/system/src/Grav/Common/Assets.php +++ b/system/src/Grav/Common/Assets.php @@ -201,8 +201,12 @@ public function add($asset) protected function addType($collection, $type, $asset, $options) { if (is_array($asset)) { - foreach ($asset as $a) { - $this->addType($collection, $type, $a, $options); + foreach ($asset as $index => $location) { + if (is_array($location)) { + $options = array_replace_recursive([], $options, $location); + $location = $index; + } + $this->addType($collection, $type, $location, $options); } return $this; From 1db66fd43dc0955b7107027a6e6b6e7bb8ff7400 Mon Sep 17 00:00:00 2001 From: Djamil Legato Date: Fri, 4 Jun 2021 11:21:17 -0700 Subject: [PATCH 04/16] Ported support for multi-parameter assignment in asset collection to method `add` (fixes #3358) --- system/src/Grav/Common/Assets.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/system/src/Grav/Common/Assets.php b/system/src/Grav/Common/Assets.php index 18a6d9c09..d2b5c890f 100644 --- a/system/src/Grav/Common/Assets.php +++ b/system/src/Grav/Common/Assets.php @@ -164,9 +164,15 @@ public function add($asset) // More than one asset if (is_array($asset)) { - foreach ($asset as $a) { + foreach ($asset as $index => $location) { array_shift($args); - $args = array_merge([$a], $args); + if (is_array($location)) { + $args = array_shift($args); + $args = [array_replace_recursive([], $location, $args)]; + $location = $index; + } + + $args = array_merge([$location], $args); call_user_func_array([$this, 'add'], $args); } } elseif (isset($this->collections[$asset])) { From 28790197aaf2e9c9d6c6daed713d8c03e2ed76a5 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Tue, 8 Jun 2021 09:28:30 +0300 Subject: [PATCH 05/16] File `frontmatter.yaml` isn't part of media, ignore it --- CHANGELOG.md | 1 + system/src/Grav/Common/Page/Media.php | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d87218026..04fdb8b49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ 1. [](#improved) * Allow to unset an asset attribute by specifying null (ie, `'defer': null`) * Support specifying custom attributes to assets in a collection [Read more](https://learn.getgrav.org/17/themes/asset-manager#collections-with-attributes?target=_blank) [#3358](https://github.com/getgrav/grav/issues/3358) + * File `frontmatter.yaml` isn't part of media, ignore it # v1.7.16 ## 06/02/2021 diff --git a/system/src/Grav/Common/Page/Media.php b/system/src/Grav/Common/Page/Media.php index 9201e66f8..94fd2c4f8 100644 --- a/system/src/Grav/Common/Page/Media.php +++ b/system/src/Grav/Common/Page/Media.php @@ -102,12 +102,13 @@ protected function init() foreach ($iterator as $file => $info) { // Ignore folders and Markdown files. - if (!$info->isFile() || $info->getExtension() === 'md' || strpos($info->getFilename(), '.') === 0) { + $filename = $info->getFilename(); + if (!$info->isFile() || $info->getExtension() === 'md' || $filename === 'frontmatter.yaml' || strpos($filename, '.') === 0) { continue; } // Find out what type we're dealing with - [$basename, $ext, $type, $extra] = $this->getFileParts($info->getFilename()); + [$basename, $ext, $type, $extra] = $this->getFileParts($filename); if (!in_array(strtolower($ext), $media_types, true)) { continue; From 564287eb210902996bf88a869da8402a6dc0f8ee Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 10 Jun 2021 09:23:41 +0300 Subject: [PATCH 06/16] Composer update --- composer.lock | 444 +++++++++++++++++++++++++++++--------------------- 1 file changed, 258 insertions(+), 186 deletions(-) diff --git a/composer.lock b/composer.lock index 1d512629a..7c2734215 100644 --- a/composer.lock +++ b/composer.lock @@ -56,16 +56,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.2.9", + "version": "1.2.10", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5" + "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/78a0e288fdcebf92aa2318a8d3656168da6ac1a5", - "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/9fdb22c2e97a614657716178093cd1da90a64aa8", + "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8", "shasum": "" }, "require": { @@ -112,7 +112,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.2.9" + "source": "https://github.com/composer/ca-bundle/tree/1.2.10" }, "funding": [ { @@ -128,7 +128,7 @@ "type": "tidelift" } ], - "time": "2021-01-12T12:10:35+00:00" + "time": "2021-06-07T13:58:28+00:00" }, { "name": "composer/semver", @@ -212,16 +212,16 @@ }, { "name": "doctrine/cache", - "version": "1.11.0", + "version": "1.11.3", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0" + "reference": "3bb5588cec00a0268829cc4a518490df6741af9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/a9c1b59eba5a08ca2770a76eddb88922f504e8e0", - "reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0", + "url": "https://api.github.com/repos/doctrine/cache/zipball/3bb5588cec00a0268829cc4a518490df6741af9d", + "reference": "3bb5588cec00a0268829cc4a518490df6741af9d", "shasum": "" }, "require": { @@ -291,7 +291,7 @@ ], "support": { "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/1.11.0" + "source": "https://github.com/doctrine/cache/tree/1.11.3" }, "funding": [ { @@ -307,7 +307,7 @@ "type": "tidelift" } ], - "time": "2021-04-13T14:46:17+00:00" + "time": "2021-05-25T09:01:55+00:00" }, { "name": "doctrine/collections", @@ -641,16 +641,16 @@ }, { "name": "filp/whoops", - "version": "2.12.1", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "c13c0be93cff50f88bbd70827d993026821914dd" + "reference": "2edbc73a4687d9085c8f20f398eebade844e8424" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/c13c0be93cff50f88bbd70827d993026821914dd", - "reference": "c13c0be93cff50f88bbd70827d993026821914dd", + "url": "https://api.github.com/repos/filp/whoops/zipball/2edbc73a4687d9085c8f20f398eebade844e8424", + "reference": "2edbc73a4687d9085c8f20f398eebade844e8424", "shasum": "" }, "require": { @@ -700,7 +700,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.12.1" + "source": "https://github.com/filp/whoops/tree/2.13.0" }, "funding": [ { @@ -708,7 +708,7 @@ "type": "github" } ], - "time": "2021-04-25T12:00:00+00:00" + "time": "2021-06-04T12:00:00+00:00" }, { "name": "getgrav/cache", @@ -823,16 +823,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.8.1", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1" + "reference": "dc960a912984efb74d0a90222870c72c87f10c91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1", - "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", + "reference": "dc960a912984efb74d0a90222870c72c87f10c91", "shasum": "" }, "require": { @@ -892,22 +892,22 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.1" + "source": "https://github.com/guzzle/psr7/tree/1.8.2" }, - "time": "2021-03-21T16:25:00+00:00" + "time": "2021-04-26T09:17:50+00:00" }, { "name": "itsgoingd/clockwork", - "version": "v5.0.7", + "version": "v5.0.8", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "e41ee368ff4dcc30d3f4563fe8bd80ed72b293b4" + "reference": "01686ebbf75d8e121dfb1b60e52f334858793830" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/e41ee368ff4dcc30d3f4563fe8bd80ed72b293b4", - "reference": "e41ee368ff4dcc30d3f4563fe8bd80ed72b293b4", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/01686ebbf75d8e121dfb1b60e52f334858793830", + "reference": "01686ebbf75d8e121dfb1b60e52f334858793830", "shasum": "" }, "require": { @@ -955,7 +955,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.0.7" + "source": "https://github.com/itsgoingd/clockwork/tree/v5.0.8" }, "funding": [ { @@ -963,7 +963,7 @@ "type": "github" } ], - "time": "2021-03-14T16:29:40+00:00" + "time": "2021-04-27T22:00:25+00:00" }, { "name": "league/climate", @@ -1288,16 +1288,16 @@ }, { "name": "monolog/monolog", - "version": "1.26.0", + "version": "1.26.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33" + "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33", - "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c6b00f05152ae2c9b04a448f99c7590beb6042f5", + "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5", "shasum": "" }, "require": { @@ -1358,7 +1358,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/1.26.0" + "source": "https://github.com/Seldaek/monolog/tree/1.26.1" }, "funding": [ { @@ -1370,7 +1370,7 @@ "type": "tidelift" } ], - "time": "2020-12-14T12:56:38+00:00" + "time": "2021-05-28T08:32:12+00:00" }, { "name": "nyholm/psr7", @@ -1451,16 +1451,16 @@ }, { "name": "nyholm/psr7-server", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/Nyholm/psr7-server.git", - "reference": "5c134aeb5dd6521c7978798663470dabf0528c96" + "reference": "b846a689844cef114e8079d8c80f0afd96745ae3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nyholm/psr7-server/zipball/5c134aeb5dd6521c7978798663470dabf0528c96", - "reference": "5c134aeb5dd6521c7978798663470dabf0528c96", + "url": "https://api.github.com/repos/Nyholm/psr7-server/zipball/b846a689844cef114e8079d8c80f0afd96745ae3", + "reference": "b846a689844cef114e8079d8c80f0afd96745ae3", "shasum": "" }, "require": { @@ -1501,7 +1501,7 @@ ], "support": { "issues": "https://github.com/Nyholm/psr7-server/issues", - "source": "https://github.com/Nyholm/psr7-server/tree/1.0.1" + "source": "https://github.com/Nyholm/psr7-server/tree/1.0.2" }, "funding": [ { @@ -1513,7 +1513,7 @@ "type": "github" } ], - "time": "2020-11-15T15:26:20+00:00" + "time": "2021-05-12T11:11:27+00:00" }, { "name": "phive/twig-extensions-deferred", @@ -2001,16 +2001,16 @@ }, { "name": "psr/log", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", "shasum": "" }, "require": { @@ -2034,7 +2034,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for logging libraries", @@ -2045,9 +2045,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.3" + "source": "https://github.com/php-fig/log/tree/1.1.4" }, - "time": "2020-03-23T09:12:05+00:00" + "time": "2021-05-03T11:20:27+00:00" }, { "name": "psr/simple-cache", @@ -2257,16 +2257,16 @@ }, { "name": "symfony/console", - "version": "v4.4.21", + "version": "v4.4.25", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23" + "reference": "a62acecdf5b50e314a4f305cd01b5282126f3095" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", - "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", + "url": "https://api.github.com/repos/symfony/console/zipball/a62acecdf5b50e314a4f305cd01b5282126f3095", + "reference": "a62acecdf5b50e314a4f305cd01b5282126f3095", "shasum": "" }, "require": { @@ -2326,7 +2326,7 @@ "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/console/tree/v4.4.21" + "source": "https://github.com/symfony/console/tree/v4.4.25" }, "funding": [ { @@ -2342,7 +2342,7 @@ "type": "tidelift" } ], - "time": "2021-03-26T09:23:24+00:00" + "time": "2021-05-26T11:20:16+00:00" }, { "name": "symfony/contracts", @@ -2440,16 +2440,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.20", + "version": "v4.4.25", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c" + "reference": "047773e7016e4fd45102cedf4bd2558ae0d0c32f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/047773e7016e4fd45102cedf4bd2558ae0d0c32f", + "reference": "047773e7016e4fd45102cedf4bd2558ae0d0c32f", "shasum": "" }, "require": { @@ -2503,7 +2503,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.20" + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.25" }, "funding": [ { @@ -2519,20 +2519,20 @@ "type": "tidelift" } ], - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-05-26T17:39:37+00:00" }, { "name": "symfony/http-client", - "version": "v4.4.21", + "version": "v4.4.25", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "911177e186b82e5b9a9f41c13af53699b6745657" + "reference": "00bb90bfb0b3823f700d7251735dced581f9dd90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/911177e186b82e5b9a9f41c13af53699b6745657", - "reference": "911177e186b82e5b9a9f41c13af53699b6745657", + "url": "https://api.github.com/repos/symfony/http-client/zipball/00bb90bfb0b3823f700d7251735dced581f9dd90", + "reference": "00bb90bfb0b3823f700d7251735dced581f9dd90", "shasum": "" }, "require": { @@ -2583,7 +2583,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v4.4.21" + "source": "https://github.com/symfony/http-client/tree/v4.4.25" }, "funding": [ { @@ -2599,20 +2599,20 @@ "type": "tidelift" } ], - "time": "2021-03-25T17:52:07+00:00" + "time": "2021-05-26T11:20:16+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", "shasum": "" }, "require": { @@ -2624,7 +2624,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2662,7 +2662,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" }, "funding": [ { @@ -2678,20 +2678,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342" + "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/06fb361659649bcfd6a208a0f1fcaf4e827ad342", - "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/63b5bb7db83e5673936d6e3b8b3e022ff6474933", + "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933", "shasum": "" }, "require": { @@ -2703,7 +2703,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2742,7 +2742,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.23.0" }, "funding": [ { @@ -2758,20 +2758,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-05-27T09:27:20+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1", + "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1", "shasum": "" }, "require": { @@ -2783,7 +2783,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2822,7 +2822,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0" }, "funding": [ { @@ -2838,20 +2838,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-05-27T09:27:20+00:00" }, { "name": "symfony/polyfill-php74", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php74.git", - "reference": "577e147350331efeb816897e004d85e6e765daaf" + "reference": "a5d80cdf049bd3b0af6da91184a2cd37533c0fd8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php74/zipball/577e147350331efeb816897e004d85e6e765daaf", - "reference": "577e147350331efeb816897e004d85e6e765daaf", + "url": "https://api.github.com/repos/symfony/polyfill-php74/zipball/a5d80cdf049bd3b0af6da91184a2cd37533c0fd8", + "reference": "a5d80cdf049bd3b0af6da91184a2cd37533c0fd8", "shasum": "" }, "require": { @@ -2860,7 +2860,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2902,7 +2902,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php74/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php74/tree/v1.23.0" }, "funding": [ { @@ -2918,20 +2918,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/eca0bf41ed421bed1b57c4958bab16aa86b757d0", + "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0", "shasum": "" }, "require": { @@ -2940,7 +2940,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2985,7 +2985,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.0" }, "funding": [ { @@ -3001,20 +3001,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/process", - "version": "v4.4.20", + "version": "v4.4.25", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a" + "reference": "cd61e6dd273975c6625316de9d141ebd197f93c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/7e950b6366d4da90292c2e7fa820b3c1842b965a", - "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a", + "url": "https://api.github.com/repos/symfony/process/zipball/cd61e6dd273975c6625316de9d141ebd197f93c9", + "reference": "cd61e6dd273975c6625316de9d141ebd197f93c9", "shasum": "" }, "require": { @@ -3046,7 +3046,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v4.4.20" + "source": "https://github.com/symfony/process/tree/v4.4.25" }, "funding": [ { @@ -3062,20 +3062,20 @@ "type": "tidelift" } ], - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-05-26T11:20:16+00:00" }, { "name": "symfony/var-dumper", - "version": "v4.4.21", + "version": "v4.4.25", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "0da0e174f728996f5d5072d6a9f0a42259dbc806" + "reference": "31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0da0e174f728996f5d5072d6a9f0a42259dbc806", - "reference": "0da0e174f728996f5d5072d6a9f0a42259dbc806", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0", + "reference": "31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0", "shasum": "" }, "require": { @@ -3135,7 +3135,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v4.4.21" + "source": "https://github.com/symfony/var-dumper/tree/v4.4.25" }, "funding": [ { @@ -3151,20 +3151,20 @@ "type": "tidelift" } ], - "time": "2021-03-27T19:49:03+00:00" + "time": "2021-05-27T09:48:32+00:00" }, { "name": "symfony/yaml", - "version": "v4.4.21", + "version": "v4.4.25", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "3871c720871029f008928244e56cf43497da7e9d" + "reference": "81cdac5536925c1c4b7b50aabc9ff6330b9eb5fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/3871c720871029f008928244e56cf43497da7e9d", - "reference": "3871c720871029f008928244e56cf43497da7e9d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/81cdac5536925c1c4b7b50aabc9ff6330b9eb5fc", + "reference": "81cdac5536925c1c4b7b50aabc9ff6330b9eb5fc", "shasum": "" }, "require": { @@ -3206,7 +3206,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v4.4.21" + "source": "https://github.com/symfony/yaml/tree/v4.4.25" }, "funding": [ { @@ -3222,20 +3222,20 @@ "type": "tidelift" } ], - "time": "2021-03-05T17:58:50+00:00" + "time": "2021-05-26T17:39:37+00:00" }, { "name": "twig/twig", - "version": "v1.44.2", + "version": "v1.44.4", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "138c493c5b8ee7cff3821f80b8896d371366b5fe" + "reference": "4d400421528e9fa40caaffcf7824c172526dd99d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/138c493c5b8ee7cff3821f80b8896d371366b5fe", - "reference": "138c493c5b8ee7cff3821f80b8896d371366b5fe", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/4d400421528e9fa40caaffcf7824c172526dd99d", + "reference": "4d400421528e9fa40caaffcf7824c172526dd99d", "shasum": "" }, "require": { @@ -3288,7 +3288,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v1.44.2" + "source": "https://github.com/twigphp/Twig/tree/v1.44.4" }, "funding": [ { @@ -3300,7 +3300,7 @@ "type": "tidelift" } ], - "time": "2021-01-05T10:10:05+00:00" + "time": "2021-05-16T12:11:20+00:00" }, { "name": "willdurand/negotiation", @@ -3426,16 +3426,16 @@ }, { "name": "codeception/codeception", - "version": "4.1.20", + "version": "4.1.21", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "d8b16e13e1781dbc3a7ae8292117d520c89a9c5a" + "reference": "c25f20d842a7e3fa0a8e6abf0828f102c914d419" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/d8b16e13e1781dbc3a7ae8292117d520c89a9c5a", - "reference": "d8b16e13e1781dbc3a7ae8292117d520c89a9c5a", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/c25f20d842a7e3fa0a8e6abf0828f102c914d419", + "reference": "c25f20d842a7e3fa0a8e6abf0828f102c914d419", "shasum": "" }, "require": { @@ -3455,11 +3455,11 @@ "symfony/yaml": ">=2.7 <6.0" }, "require-dev": { - "codeception/module-asserts": "*@dev", - "codeception/module-cli": "*@dev", - "codeception/module-db": "*@dev", - "codeception/module-filesystem": "*@dev", - "codeception/module-phpbrowser": "*@dev", + "codeception/module-asserts": "1.*@dev", + "codeception/module-cli": "1.*@dev", + "codeception/module-db": "1.*@dev", + "codeception/module-filesystem": "1.*@dev", + "codeception/module-phpbrowser": "1.*@dev", "codeception/specify": "~0.3", "codeception/util-universalframework": "*@dev", "monolog/monolog": "~1.8", @@ -3509,7 +3509,7 @@ ], "support": { "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/4.1.20" + "source": "https://github.com/Codeception/Codeception/tree/4.1.21" }, "funding": [ { @@ -3517,7 +3517,7 @@ "type": "open_collective" } ], - "time": "2021-04-02T16:41:51+00:00" + "time": "2021-05-28T17:43:39+00:00" }, { "name": "codeception/lib-asserts", @@ -4172,16 +4172,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.10.4", + "version": "v4.10.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f", + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f", "shasum": "" }, "require": { @@ -4222,9 +4222,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5" }, - "time": "2020-12-20T10:01:03+00:00" + "time": "2021-05-03T19:11:20+00:00" }, { "name": "phar-io/manifest", @@ -4564,16 +4564,16 @@ }, { "name": "phpstan/phpstan", - "version": "0.12.84", + "version": "0.12.89", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "9c43f15da8798c8f30a4b099e6a94530a558cfd5" + "reference": "54c0f5a6c30511b77128d58b6369f718df250542" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9c43f15da8798c8f30a4b099e6a94530a558cfd5", - "reference": "9c43f15da8798c8f30a4b099e6a94530a558cfd5", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/54c0f5a6c30511b77128d58b6369f718df250542", + "reference": "54c0f5a6c30511b77128d58b6369f718df250542", "shasum": "" }, "require": { @@ -4604,13 +4604,17 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/0.12.84" + "source": "https://github.com/phpstan/phpstan/tree/0.12.89" }, "funding": [ { "url": "https://github.com/ondrejmirtes", "type": "github" }, + { + "url": "https://github.com/phpstan", + "type": "github" + }, { "url": "https://www.patreon.com/phpstan", "type": "patreon" @@ -4620,7 +4624,7 @@ "type": "tidelift" } ], - "time": "2021-04-19T17:10:54+00:00" + "time": "2021-06-09T20:23:49+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -4993,16 +4997,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.4", + "version": "9.5.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c73c6737305e779771147af66c96ca6a7ed8a741" + "reference": "89ff45ea9d70e35522fb6654a2ebc221158de276" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741", - "reference": "c73c6737305e779771147af66c96ca6a7ed8a741", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/89ff45ea9d70e35522fb6654a2ebc221158de276", + "reference": "89ff45ea9d70e35522fb6654a2ebc221158de276", "shasum": "" }, "require": { @@ -5032,7 +5036,7 @@ "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3", + "sebastian/type": "^2.3.2", "sebastian/version": "^3.0.2" }, "require-dev": { @@ -5080,7 +5084,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.5" }, "funding": [ { @@ -5092,7 +5096,7 @@ "type": "github" } ], - "time": "2021-03-23T07:16:29+00:00" + "time": "2021-06-05T04:49:07+00:00" }, { "name": "psr/http-client", @@ -6003,16 +6007,16 @@ }, { "name": "sebastian/type", - "version": "2.3.1", + "version": "2.3.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" + "reference": "0d1c587401514d17e8f9258a27e23527cb1b06c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0d1c587401514d17e8f9258a27e23527cb1b06c1", + "reference": "0d1c587401514d17e8f9258a27e23527cb1b06c1", "shasum": "" }, "require": { @@ -6047,7 +6051,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" + "source": "https://github.com/sebastianbergmann/type/tree/2.3.2" }, "funding": [ { @@ -6055,7 +6059,7 @@ "type": "github" } ], - "time": "2020-10-26T13:18:59+00:00" + "time": "2021-06-04T13:02:07+00:00" }, { "name": "sebastian/version", @@ -6112,16 +6116,16 @@ }, { "name": "symfony/browser-kit", - "version": "v5.2.4", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "3ca3a57ce9860318b20a924fec5daf5c6db44d93" + "reference": "379984e25eee9811b0a25a2105e1a2b3b8d9b734" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/3ca3a57ce9860318b20a924fec5daf5c6db44d93", - "reference": "3ca3a57ce9860318b20a924fec5daf5c6db44d93", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/379984e25eee9811b0a25a2105e1a2b3b8d9b734", + "reference": "379984e25eee9811b0a25a2105e1a2b3b8d9b734", "shasum": "" }, "require": { @@ -6163,7 +6167,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.2.4" + "source": "https://github.com/symfony/browser-kit/tree/v5.3.0" }, "funding": [ { @@ -6179,20 +6183,20 @@ "type": "tidelift" } ], - "time": "2021-02-22T06:48:33+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/css-selector", - "version": "v5.2.4", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f" + "reference": "fcd0b29a7a0b1bb5bfbedc6231583d77fea04814" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/f65f217b3314504a1ec99c2d6ef69016bb13490f", - "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/fcd0b29a7a0b1bb5bfbedc6231583d77fea04814", + "reference": "fcd0b29a7a0b1bb5bfbedc6231583d77fea04814", "shasum": "" }, "require": { @@ -6228,7 +6232,74 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.2.4" + "source": "https://github.com/symfony/css-selector/tree/v5.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-05-26T17:40:38+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" }, "funding": [ { @@ -6244,24 +6315,25 @@ "type": "tidelift" } ], - "time": "2021-01-27T10:01:46+00:00" + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.2.4", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "400e265163f65aceee7e904ef532e15228de674b" + "reference": "55fff62b19f413f897a752488ade1bc9c8a19cdd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/400e265163f65aceee7e904ef532e15228de674b", - "reference": "400e265163f65aceee7e904ef532e15228de674b", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/55fff62b19f413f897a752488ade1bc9c8a19cdd", + "reference": "55fff62b19f413f897a752488ade1bc9c8a19cdd", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "^1.15" @@ -6302,7 +6374,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.2.4" + "source": "https://github.com/symfony/dom-crawler/tree/v5.3.0" }, "funding": [ { @@ -6318,20 +6390,20 @@ "type": "tidelift" } ], - "time": "2021-02-15T18:55:04+00:00" + "time": "2021-05-26T17:43:10+00:00" }, { "name": "symfony/finder", - "version": "v5.2.4", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "0d639a0943822626290d169965804f79400e6a04" + "reference": "0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/0d639a0943822626290d169965804f79400e6a04", - "reference": "0d639a0943822626290d169965804f79400e6a04", + "url": "https://api.github.com/repos/symfony/finder/zipball/0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6", + "reference": "0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6", "shasum": "" }, "require": { @@ -6363,7 +6435,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.4" + "source": "https://github.com/symfony/finder/tree/v5.3.0" }, "funding": [ { @@ -6379,7 +6451,7 @@ "type": "tidelift" } ], - "time": "2021-02-15T18:55:04+00:00" + "time": "2021-05-26T12:52:38+00:00" }, { "name": "theseer/tokenizer", From ea191602da8bcb0491d66e0424fb1c7a73305d91 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 10 Jun 2021 13:16:20 +0300 Subject: [PATCH 07/16] Fixed missing styles when CSS/JS Pipeline is used and `assets/` folder is missing --- CHANGELOG.md | 2 ++ system/src/Grav/Common/Assets.php | 2 +- system/src/Grav/Common/Assets/Pipeline.php | 29 +++++++++++++--------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 04fdb8b49..8f602a592 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ * Allow to unset an asset attribute by specifying null (ie, `'defer': null`) * Support specifying custom attributes to assets in a collection [Read more](https://learn.getgrav.org/17/themes/asset-manager#collections-with-attributes?target=_blank) [#3358](https://github.com/getgrav/grav/issues/3358) * File `frontmatter.yaml` isn't part of media, ignore it +1. [](#bugfix) + * Fixed missing styles when CSS/JS Pipeline is used and `assets/` folder is missing # v1.7.16 ## 06/02/2021 diff --git a/system/src/Grav/Common/Assets.php b/system/src/Grav/Common/Assets.php index d2b5c890f..4273b140b 100644 --- a/system/src/Grav/Common/Assets.php +++ b/system/src/Grav/Common/Assets.php @@ -110,7 +110,7 @@ public function init() /** @var UniformResourceLocator $locator */ $locator = $grav['locator']; - $this->assets_dir = $locator->findResource('asset://') . DS; + $this->assets_dir = $locator->findResource('asset://'); $this->assets_url = $locator->findResource('asset://', false); $this->config($asset_config); diff --git a/system/src/Grav/Common/Assets/Pipeline.php b/system/src/Grav/Common/Assets/Pipeline.php index 7aef0e145..2e499f98f 100644 --- a/system/src/Grav/Common/Assets/Pipeline.php +++ b/system/src/Grav/Common/Assets/Pipeline.php @@ -9,9 +9,9 @@ namespace Grav\Common\Assets; -use Grav\Common\Assets\BaseAsset; use Grav\Common\Assets\Traits\AssetUtilsTrait; use Grav\Common\Config\Config; +use Grav\Common\Filesystem\Folder; use Grav\Common\Grav; use Grav\Common\Uri; use Grav\Common\Utils; @@ -88,7 +88,14 @@ public function __construct(array $elements = [], ?string $key = null) $uri = Grav::instance()['uri']; $this->base_url = rtrim($uri->rootUrl($config->get('system.absolute_urls')), '/') . '/'; - $this->assets_dir = $locator->findResource('asset://') . DS; + $this->assets_dir = $locator->findResource('asset://'); + if (!$this->assets_dir) { + // Attempt to create assets folder if it doesn't exist yet. + $this->assets_dir = $locator->findResource('asset://', true, true); + Folder::mkdir($this->assets_dir); + $locator->clearCache(); + } + $this->assets_url = $locator->findResource('asset://', false); } @@ -119,10 +126,9 @@ public function renderCss($assets, $group, $attributes = []) $file = $uid . '.css'; $relative_path = "{$this->base_url}{$this->assets_url}/{$file}"; - $buffer = null; - - if (file_exists($this->assets_dir . $file)) { - $buffer = file_get_contents($this->assets_dir . $file) . "\n"; + $filepath = "{$this->assets_dir}/{$file}"; + if (file_exists($filepath)) { + $buffer = file_get_contents($filepath) . "\n"; } else { //if nothing found get out of here! if (empty($assets)) { @@ -141,7 +147,7 @@ public function renderCss($assets, $group, $attributes = []) // Write file if (trim($buffer) !== '') { - file_put_contents($this->assets_dir . $file, $buffer); + file_put_contents($filepath, $buffer); } } @@ -182,10 +188,9 @@ public function renderJs($assets, $group, $attributes = []) $file = $uid . '.js'; $relative_path = "{$this->base_url}{$this->assets_url}/{$file}"; - $buffer = null; - - if (file_exists($this->assets_dir . $file)) { - $buffer = file_get_contents($this->assets_dir . $file) . "\n"; + $filepath = "{$this->assets_dir}/{$file}"; + if (file_exists($filepath)) { + $buffer = file_get_contents($filepath) . "\n"; } else { //if nothing found get out of here! if (empty($assets)) { @@ -204,7 +209,7 @@ public function renderJs($assets, $group, $attributes = []) // Write file if (trim($buffer) !== '') { - file_put_contents($this->assets_dir . $file, $buffer); + file_put_contents($filepath, $buffer); } } From fbfa88739d2012a16d5d512b1e21a88839cbe26c Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 10 Jun 2021 13:19:47 +0300 Subject: [PATCH 08/16] Changelog update --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f602a592..42c80c190 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ * Support specifying custom attributes to assets in a collection [Read more](https://learn.getgrav.org/17/themes/asset-manager#collections-with-attributes?target=_blank) [#3358](https://github.com/getgrav/grav/issues/3358) * File `frontmatter.yaml` isn't part of media, ignore it 1. [](#bugfix) - * Fixed missing styles when CSS/JS Pipeline is used and `assets/` folder is missing + * Fixed missing styles when CSS/JS Pipeline is used and `asset://` folder is missing # v1.7.16 ## 06/02/2021 From 896695b30f552d6ce27a8cd78c74a358d2bfcc03 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 10 Jun 2021 13:55:12 +0300 Subject: [PATCH 09/16] Interface `FlexDirectoryInterface` now extends `FlexAuthorizeInterface` --- CHANGELOG.md | 2 ++ system/src/Grav/Framework/Flex/FlexDirectory.php | 2 +- .../Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42c80c190..cf85f9fdd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # v1.7.17 ## mm/dd/2021 +1. [](#new) + * Interface `FlexDirectoryInterface` now extends `FlexAuthorizeInterface` 1. [](#improved) * Allow to unset an asset attribute by specifying null (ie, `'defer': null`) * Support specifying custom attributes to assets in a collection [Read more](https://learn.getgrav.org/17/themes/asset-manager#collections-with-attributes?target=_blank) [#3358](https://github.com/getgrav/grav/issues/3358) diff --git a/system/src/Grav/Framework/Flex/FlexDirectory.php b/system/src/Grav/Framework/Flex/FlexDirectory.php index b9c9d543b..1f6962663 100644 --- a/system/src/Grav/Framework/Flex/FlexDirectory.php +++ b/system/src/Grav/Framework/Flex/FlexDirectory.php @@ -47,7 +47,7 @@ * @package Grav\Framework\Flex * @template T */ -class FlexDirectory implements FlexDirectoryInterface, FlexAuthorizeInterface +class FlexDirectory implements FlexDirectoryInterface { use FlexAuthorizeTrait; diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php index 752324133..07eab014a 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php @@ -17,7 +17,7 @@ * Interface FlexDirectoryInterface * @package Grav\Framework\Flex\Interfaces */ -interface FlexDirectoryInterface +interface FlexDirectoryInterface extends FlexAuthorizeInterface { /** * @return bool From 845fac8adf2fd50136fce763f89d71ebbf0e6c1b Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 10 Jun 2021 16:27:30 +0300 Subject: [PATCH 10/16] Fixed permission check when moving a page [#3382] --- CHANGELOG.md | 1 + .../Common/Flex/Types/Pages/PageObject.php | 36 ++++++++++++++++--- system/src/Grav/Framework/Flex/FlexObject.php | 11 ++++++ 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf85f9fdd..eb9e5a453 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ * File `frontmatter.yaml` isn't part of media, ignore it 1. [](#bugfix) * Fixed missing styles when CSS/JS Pipeline is used and `asset://` folder is missing + * Fixed permission check when moving a page [#3382](https://github.com/getgrav/grav/issues/3382) # v1.7.16 ## 06/02/2021 diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageObject.php b/system/src/Grav/Common/Flex/Types/Pages/PageObject.php index 914eb7f33..a8342d121 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/PageObject.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageObject.php @@ -262,6 +262,24 @@ protected function onAfterSave(array $variables): void $this->getFlexDirectory()->reloadIndex(); } + /** + * @param UserInterface|null $user + */ + public function check(UserInterface $user = null): void + { + parent::check($user); + + if ($user && $this->isMoved()) { + $parentKey = $this->getProperty('parent_key'); + + /** @var PageObject|null $parent */ + $parent = $this->getFlexDirectory()->getObject($parentKey); + if (!$parent || !$parent->isAuthorized('create', null, $user)) { + throw new \RuntimeException('Forbidden', 403); + } + } + } + /** * @param array|bool $reorder * @return FlexObject|FlexObjectInterface @@ -358,16 +376,26 @@ protected function isAuthorizedOverride(UserInterface $user, string $action, str } /** - * @param array $ordering - * @return PageCollection|null + * @return bool */ - protected function reorderSiblings(array $ordering) + protected function isMoved(): bool { $storageKey = $this->getMasterKey(); $filesystem = Filesystem::getInstance(false); $oldParentKey = ltrim($filesystem->dirname("/{$storageKey}"), '/'); $newParentKey = $this->getProperty('parent_key'); - $isMoved = $this->exists() && $oldParentKey !== $newParentKey; + + return $this->exists() && $oldParentKey !== $newParentKey; + } + + /** + * @param array $ordering + * @return PageCollection|null + */ + protected function reorderSiblings(array $ordering) + { + $storageKey = $this->getMasterKey(); + $isMoved = $this->isMoved(); $order = !$isMoved ? $this->order() : false; if ($order !== false) { $order = (int)$order; diff --git a/system/src/Grav/Framework/Flex/FlexObject.php b/system/src/Grav/Framework/Flex/FlexObject.php index d505e5603..06e383bff 100644 --- a/system/src/Grav/Framework/Flex/FlexObject.php +++ b/system/src/Grav/Framework/Flex/FlexObject.php @@ -691,6 +691,17 @@ public function createCopy(string $key = null) return $this->create($key); } + /** + * @param UserInterface|null $user + */ + public function check(UserInterface $user = null): void + { + // If user has been provided, check if the user has permissions to save this object. + if ($user && !$this->isAuthorized('save', null, $user)) { + throw new \RuntimeException('Forbidden', 403); + } + } + /** * {@inheritdoc} * @see FlexObjectInterface::save() From ee40ad59f2c81464d560bd6c8483755d9e1fe066 Mon Sep 17 00:00:00 2001 From: Djamil Legato Date: Mon, 14 Jun 2021 10:25:01 -0700 Subject: [PATCH 11/16] Ensure simple second argument for priority is also supported in multi-collections with params (fixes #3358) --- system/src/Grav/Common/Assets.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/system/src/Grav/Common/Assets.php b/system/src/Grav/Common/Assets.php index 4273b140b..5fc11c0f3 100644 --- a/system/src/Grav/Common/Assets.php +++ b/system/src/Grav/Common/Assets.php @@ -168,6 +168,9 @@ public function add($asset) array_shift($args); if (is_array($location)) { $args = array_shift($args); + if (is_numeric($args)) { + $args = [ 'priority' => $args ]; + } $args = [array_replace_recursive([], $location, $args)]; $location = $index; } From f1c623c14b2ded94f3c744b6fd0c6c0844932d86 Mon Sep 17 00:00:00 2001 From: Djamil Legato Date: Mon, 14 Jun 2021 11:55:14 -0700 Subject: [PATCH 12/16] Fixed mutability issue when adding multiple assets with different params (#3358) --- system/src/Grav/Common/Assets.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/system/src/Grav/Common/Assets.php b/system/src/Grav/Common/Assets.php index 5fc11c0f3..a9b930b13 100644 --- a/system/src/Grav/Common/Assets.php +++ b/system/src/Grav/Common/Assets.php @@ -165,18 +165,18 @@ public function add($asset) // More than one asset if (is_array($asset)) { foreach ($asset as $index => $location) { - array_shift($args); + $params = array_slice($args, 1); if (is_array($location)) { - $args = array_shift($args); - if (is_numeric($args)) { - $args = [ 'priority' => $args ]; + $params = array_shift($params); + if (is_numeric($params)) { + $params = [ 'priority' => $params ]; } - $args = [array_replace_recursive([], $location, $args)]; + $params = [array_replace_recursive([], $location, $params)]; $location = $index; } - $args = array_merge([$location], $args); - call_user_func_array([$this, 'add'], $args); + $params = array_merge([$location], $params); + call_user_func_array([$this, 'add'], $params); } } elseif (isset($this->collections[$asset])) { array_shift($args); @@ -211,11 +211,12 @@ protected function addType($collection, $type, $asset, $options) { if (is_array($asset)) { foreach ($asset as $index => $location) { + $assetOptions = $options; if (is_array($location)) { - $options = array_replace_recursive([], $options, $location); + $assetOptions = array_replace_recursive([], $options, $location); $location = $index; } - $this->addType($collection, $type, $location, $options); + $this->addType($collection, $type, $location, $assetOptions); } return $this; From acf8724402eebc171ca388baf36f3548d542a328 Mon Sep 17 00:00:00 2001 From: Djamil Legato Date: Mon, 14 Jun 2021 16:03:22 -0700 Subject: [PATCH 13/16] Added tests for new params support in collections (#3358) --- tests/unit/Grav/Common/AssetsTest.php | 74 +++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/tests/unit/Grav/Common/AssetsTest.php b/tests/unit/Grav/Common/AssetsTest.php index 747c8ed51..aea7be291 100644 --- a/tests/unit/Grav/Common/AssetsTest.php +++ b/tests/unit/Grav/Common/AssetsTest.php @@ -473,6 +473,59 @@ public function testAddingCSSAssetPropertiesWithArrayFromCollection(): void '' . PHP_EOL, $css); } + public function testAddingAssetPropertiesWithArrayFromCollectionAndParameters(): void + { + $this->assets->registerCollection('collection_multi_params', [ + 'foo.js' => [ 'defer' => true ], + 'bar.js' => [ 'integrity' => 'sha512-abc123' ], + 'foobar.css' => [ 'defer' => null, 'loading' => null ] + ]); + + // # Test adding properties with array + $this->assets->addJs('collection_multi_params', ['loading' => 'async']); + $js = $this->assets->js(); + + // expected output + $expected = [ + '', + '', + '', + ]; + + self::assertCount(count($expected), array_filter(explode("\n", $js))); + self::assertSame(implode("\n", $expected) . PHP_EOL, $js); + + // # Test priority as second argument + render JS should not have any css + $this->assets->reset(); + $this->assets->add('low_priority.js', 1); + $this->assets->add('collection_multi_params', 2); + $js = $this->assets->js(); + + // expected output + $expected = [ + '', + '', + '', + ]; + + self::assertCount(3, array_filter(explode("\n", $js))); + self::assertSame(implode("\n", $expected) . PHP_EOL, $js); + + // # Test rendering CSS, should not have any JS + $this->assets->reset(); + $this->assets->add('collection_multi_params', [ 'class' => '__classname' ]); + $css = $this->assets->css(); + + // expected output + $expected = [ + '', + ]; + + + self::assertCount(1, array_filter(explode("\n", $css))); + self::assertSame(implode("\n", $expected) . PHP_EOL, $css); + } + public function testPriorityOfAssets(): void { $this->assets->reset(); @@ -679,6 +732,27 @@ public function testRegisterCollection(): void self::assertContains('debugger', array_keys($this->assets->getCollections())); } + public function testRegisterCollectionWithParameters(): void + { + $this->assets->registerCollection('collection_multi_params', [ + 'foo.js' => [ 'defer' => true ], + 'bar.js' => [ 'integrity' => 'sha512-abc123' ], + 'foobar.css' => [ 'defer' => null ], + ]); + + self::assertTrue($this->assets->exists('collection_multi_params')); + + $collection = $this->assets->getCollections()['collection_multi_params']; + self::assertArrayHasKey('foo.js', $collection); + self::assertArrayHasKey('bar.js', $collection); + self::assertArrayHasKey('foobar.css', $collection); + self::assertArrayHasKey('defer', $collection['foo.js']); + self::assertArrayHasKey('defer', $collection['foobar.css']); + + self::assertNull($collection['foobar.css']['defer']); + self::assertTrue($collection['foo.js']['defer']); + } + public function testReset(): void { $this->assets->addInlineJs('alert("test")'); From 90f56354785593606958c3c37a868f5773e78bb5 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Tue, 15 Jun 2021 10:15:12 -0600 Subject: [PATCH 14/16] Switch to JQuery 3.x rather than 2.x --- CHANGELOG.md | 1 + system/config/system.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb9e5a453..a2b840c63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ * Allow to unset an asset attribute by specifying null (ie, `'defer': null`) * Support specifying custom attributes to assets in a collection [Read more](https://learn.getgrav.org/17/themes/asset-manager#collections-with-attributes?target=_blank) [#3358](https://github.com/getgrav/grav/issues/3358) * File `frontmatter.yaml` isn't part of media, ignore it + * Switched default `JQuery` collection to use 3.x rather than 2.x 1. [](#bugfix) * Fixed missing styles when CSS/JS Pipeline is used and `asset://` folder is missing * Fixed permission check when moving a page [#3382](https://github.com/getgrav/grav/issues/3382) diff --git a/system/config/system.yaml b/system/config/system.yaml index e49ab4770..fb5f391f4 100644 --- a/system/config/system.yaml +++ b/system/config/system.yaml @@ -131,7 +131,7 @@ assets: # Configuration for Assets Mana enable_asset_timestamp: false # Enable asset timestamps enable_asset_sri: false # Enable asset SRI collections: - jquery: system://assets/jquery/jquery-2.x.min.js + jquery: system://assets/jquery/jquery-3.x.min.js errors: display: 0 # Display either (1) Full backtrace | (0) Simple Error | (-1) System Error From d90b28a39984b4f79affd6fcfb1b309c4e8919f9 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Tue, 15 Jun 2021 10:20:57 -0600 Subject: [PATCH 15/16] fix jquery in tests --- tests/unit/Grav/Common/AssetsTest.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/unit/Grav/Common/AssetsTest.php b/tests/unit/Grav/Common/AssetsTest.php index aea7be291..57539a6f3 100644 --- a/tests/unit/Grav/Common/AssetsTest.php +++ b/tests/unit/Grav/Common/AssetsTest.php @@ -340,7 +340,7 @@ public function testAddingJSAssetPropertiesWithArrayFromCollection(): void $this->assets->reset(); $this->assets->addJs('jquery', ['loading' => 'async']); $js = $this->assets->js(); - self::assertSame('' . PHP_EOL, $js); + self::assertSame('' . PHP_EOL, $js); //Test priority too $this->assets->reset(); @@ -348,7 +348,7 @@ public function testAddingJSAssetPropertiesWithArrayFromCollection(): void $this->assets->addJs('test.js', ['loading' => 'async', 'priority' => 2]); $js = $this->assets->js(); self::assertSame('' . PHP_EOL . - '' . PHP_EOL, $js); + '' . PHP_EOL, $js); //Test multiple groups $this->assets->reset(); @@ -357,7 +357,7 @@ public function testAddingJSAssetPropertiesWithArrayFromCollection(): void $js = $this->assets->js(); self::assertSame('' . PHP_EOL, $js); $js = $this->assets->js('footer'); - self::assertSame('' . PHP_EOL, $js); + self::assertSame('' . PHP_EOL, $js); //Test adding array of assets //Test priority too @@ -365,7 +365,7 @@ public function testAddingJSAssetPropertiesWithArrayFromCollection(): void $this->assets->addJs(['jquery', 'test.js'], ['loading' => 'async']); $js = $this->assets->js(); - self::assertSame('' . PHP_EOL . + self::assertSame('' . PHP_EOL . '' . PHP_EOL, $js); } @@ -626,7 +626,7 @@ public function testAddAsyncJs(): void $this->assets->reset(); $this->assets->addAsyncJs('jquery'); $js = $this->assets->js(); - self::assertSame('' . PHP_EOL, $js); + self::assertSame('' . PHP_EOL, $js); } public function testAddDeferJs(): void @@ -634,7 +634,7 @@ public function testAddDeferJs(): void $this->assets->reset(); $this->assets->addDeferJs('jquery'); $js = $this->assets->js(); - self::assertSame('' . PHP_EOL, $js); + self::assertSame('' . PHP_EOL, $js); } public function testTimestamps(): void @@ -716,7 +716,7 @@ public function testGetCollections(): void { self::assertIsArray($this->assets->getCollections()); self::assertContains('jquery', array_keys($this->assets->getCollections())); - self::assertContains('system://assets/jquery/jquery-2.x.min.js', $this->assets->getCollections()); + self::assertContains('system://assets/jquery/jquery-3.x.min.js', $this->assets->getCollections()); } public function testExists(): void From 7e41938317e688facbc383f8d07b6ee891184b6a Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Tue, 15 Jun 2021 13:11:26 -0600 Subject: [PATCH 16/16] prepare for release --- CHANGELOG.md | 2 +- system/defines.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2b840c63..3d7352ebb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ # v1.7.17 -## mm/dd/2021 +## 06/15/2021 1. [](#new) * Interface `FlexDirectoryInterface` now extends `FlexAuthorizeInterface` diff --git a/system/defines.php b/system/defines.php index f6b095869..46126d059 100644 --- a/system/defines.php +++ b/system/defines.php @@ -9,7 +9,7 @@ // Some standard defines define('GRAV', true); -define('GRAV_VERSION', '1.7.16'); +define('GRAV_VERSION', '1.7.17'); define('GRAV_SCHEMA', '1.7.0_2020-11-20_1'); define('GRAV_TESTING', false);