diff --git a/composer.json b/composer.json index 39c9de1..b5ab481 100644 --- a/composer.json +++ b/composer.json @@ -35,5 +35,10 @@ "license": "GPL-3.0-or-later", "bugs": { "url": "https://github.com/ForestAdmin/symfony-forestadmin/issues" + }, + "config": { + "allow-plugins": { + "pestphp/pest-plugin": true + } } } diff --git a/composer.lock b/composer.lock index 29a4fb4..4ab02f5 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": "985d3e938ab057c3bf50ec8d21c7d956", + "content-hash": "d623178287f98a89f6189eb2e1d1a39a", "packages": [ { "name": "asm89/stack-cors", @@ -1120,16 +1120,16 @@ }, { "name": "forestadmin/agent-php", - "version": "1.0.0-beta.5", + "version": "1.0.0-beta.6", "source": { "type": "git", "url": "https://github.com/ForestAdmin/agent-php.git", - "reference": "0153a177a08554eb509cc4e0bdf1380d04e80313" + "reference": "e034a40c5858728561b22b76f9f438364a443e62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ForestAdmin/agent-php/zipball/0153a177a08554eb509cc4e0bdf1380d04e80313", - "reference": "0153a177a08554eb509cc4e0bdf1380d04e80313", + "url": "https://api.github.com/repos/ForestAdmin/agent-php/zipball/e034a40c5858728561b22b76f9f438364a443e62", + "reference": "e034a40c5858728561b22b76f9f438364a443e62", "shasum": "" }, "require": { @@ -1177,9 +1177,9 @@ "description": "The official agent PHP for Forest", "support": { "issues": "https://github.com/ForestAdmin/agent-php/issues", - "source": "https://github.com/ForestAdmin/agent-php/tree/v1.0.0-beta.5" + "source": "https://github.com/ForestAdmin/agent-php/tree/v1.0.0-beta.6" }, - "time": "2023-01-24T11:11:15+00:00" + "time": "2023-01-25T16:11:58+00:00" }, { "name": "galbar/jsonpath", @@ -3339,16 +3339,16 @@ }, { "name": "symfony/cache", - "version": "v6.0.18", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "079ec0afe323fdcd5ac1f16e3ffdb4991fb5d4c9" + "reference": "81ca309f056e836480928b20280ec52ce8369bb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/079ec0afe323fdcd5ac1f16e3ffdb4991fb5d4c9", - "reference": "079ec0afe323fdcd5ac1f16e3ffdb4991fb5d4c9", + "url": "https://api.github.com/repos/symfony/cache/zipball/81ca309f056e836480928b20280ec52ce8369bb3", + "reference": "81ca309f056e836480928b20280ec52ce8369bb3", "shasum": "" }, "require": { @@ -3412,7 +3412,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.0.18" + "source": "https://github.com/symfony/cache/tree/v6.0.19" }, "funding": [ { @@ -3428,7 +3428,7 @@ "type": "tidelift" } ], - "time": "2022-12-29T16:27:58+00:00" + "time": "2023-01-20T17:44:14+00:00" }, { "name": "symfony/cache-contracts", @@ -3511,16 +3511,16 @@ }, { "name": "symfony/config", - "version": "v6.0.11", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "956d4ec5df274dda91a4cedfccc2bfd063f6f649" + "reference": "db4fc45c24e0c3e2198e68ada9d7f90daa1f97e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/956d4ec5df274dda91a4cedfccc2bfd063f6f649", - "reference": "956d4ec5df274dda91a4cedfccc2bfd063f6f649", + "url": "https://api.github.com/repos/symfony/config/zipball/db4fc45c24e0c3e2198e68ada9d7f90daa1f97e3", + "reference": "db4fc45c24e0c3e2198e68ada9d7f90daa1f97e3", "shasum": "" }, "require": { @@ -3569,7 +3569,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.0.11" + "source": "https://github.com/symfony/config/tree/v6.0.19" }, "funding": [ { @@ -3585,20 +3585,20 @@ "type": "tidelift" } ], - "time": "2022-06-27T17:10:44+00:00" + "time": "2023-01-09T04:36:00+00:00" }, { "name": "symfony/console", - "version": "v6.0.17", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "2ab307342a7233b9a260edd5ef94087aaca57d18" + "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/2ab307342a7233b9a260edd5ef94087aaca57d18", - "reference": "2ab307342a7233b9a260edd5ef94087aaca57d18", + "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed", + "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed", "shasum": "" }, "require": { @@ -3664,7 +3664,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.0.17" + "source": "https://github.com/symfony/console/tree/v6.0.19" }, "funding": [ { @@ -3680,20 +3680,20 @@ "type": "tidelift" } ], - "time": "2022-12-28T14:21:34+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.0.17", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "37ffd67504beedbacaa7fd7358eff7042970d4dc" + "reference": "34302da3d0b723114484c49d0a8740422439f9c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/37ffd67504beedbacaa7fd7358eff7042970d4dc", - "reference": "37ffd67504beedbacaa7fd7358eff7042970d4dc", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/34302da3d0b723114484c49d0a8740422439f9c6", + "reference": "34302da3d0b723114484c49d0a8740422439f9c6", "shasum": "" }, "require": { @@ -3752,7 +3752,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.0.17" + "source": "https://github.com/symfony/dependency-injection/tree/v6.0.19" }, "funding": [ { @@ -3768,7 +3768,7 @@ "type": "tidelift" } ], - "time": "2022-12-28T14:21:34+00:00" + "time": "2023-01-23T15:49:22+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3839,16 +3839,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.0.17", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "1113c4bcf3bc77a9c79562543317479c90ba7b82" + "reference": "c7df52182f43a68522756ac31a532dd5b1e6db67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/1113c4bcf3bc77a9c79562543317479c90ba7b82", - "reference": "1113c4bcf3bc77a9c79562543317479c90ba7b82", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/c7df52182f43a68522756ac31a532dd5b1e6db67", + "reference": "c7df52182f43a68522756ac31a532dd5b1e6db67", "shasum": "" }, "require": { @@ -3890,7 +3890,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.0.17" + "source": "https://github.com/symfony/error-handler/tree/v6.0.19" }, "funding": [ { @@ -3906,20 +3906,20 @@ "type": "tidelift" } ], - "time": "2022-12-14T15:52:41+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.0.17", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "42b3985aa07837c9df36013ec5b965e9f2d480bc" + "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/42b3985aa07837c9df36013ec5b965e9f2d480bc", - "reference": "42b3985aa07837c9df36013ec5b965e9f2d480bc", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a", + "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a", "shasum": "" }, "require": { @@ -3973,7 +3973,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/v6.0.17" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.19" }, "funding": [ { @@ -3989,7 +3989,7 @@ "type": "tidelift" } ], - "time": "2022-12-14T15:52:41+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4072,16 +4072,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.0.13", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "3adca49133bd055ebe6011ed1e012be3c908af79" + "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/3adca49133bd055ebe6011ed1e012be3c908af79", - "reference": "3adca49133bd055ebe6011ed1e012be3c908af79", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/3d49eec03fda1f0fc19b7349fbbe55ebc1004214", + "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214", "shasum": "" }, "require": { @@ -4115,7 +4115,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.0.13" + "source": "https://github.com/symfony/filesystem/tree/v6.0.19" }, "funding": [ { @@ -4131,20 +4131,20 @@ "type": "tidelift" } ], - "time": "2022-09-21T20:25:27+00:00" + "time": "2023-01-20T17:44:14+00:00" }, { "name": "symfony/finder", - "version": "v6.0.17", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "d467d625fc88f7cebf96f495e588a7196a669db1" + "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/d467d625fc88f7cebf96f495e588a7196a669db1", - "reference": "d467d625fc88f7cebf96f495e588a7196a669db1", + "url": "https://api.github.com/repos/symfony/finder/zipball/5cc9cac6586fc0c28cd173780ca696e419fefa11", + "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11", "shasum": "" }, "require": { @@ -4176,7 +4176,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.0.17" + "source": "https://github.com/symfony/finder/tree/v6.0.19" }, "funding": [ { @@ -4192,20 +4192,20 @@ "type": "tidelift" } ], - "time": "2022-12-22T17:53:58+00:00" + "time": "2023-01-20T17:44:14+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.0.17", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "76a74c36915079e80dd0d538ae3f65a205881f2b" + "reference": "ee403597484be1073222373fc2962b44c36f5dd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/76a74c36915079e80dd0d538ae3f65a205881f2b", - "reference": "76a74c36915079e80dd0d538ae3f65a205881f2b", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/ee403597484be1073222373fc2962b44c36f5dd4", + "reference": "ee403597484be1073222373fc2962b44c36f5dd4", "shasum": "" }, "require": { @@ -4324,7 +4324,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.0.17" + "source": "https://github.com/symfony/framework-bundle/tree/v6.0.19" }, "funding": [ { @@ -4340,20 +4340,20 @@ "type": "tidelift" } ], - "time": "2022-12-20T16:40:04+00:00" + "time": "2023-01-11T11:50:03+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.0.17", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "22fe17e40b0481d39212e7165e004eb26422085d" + "reference": "56648fa8e50b076c46ecf7f8d409e6d5df724995" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/22fe17e40b0481d39212e7165e004eb26422085d", - "reference": "22fe17e40b0481d39212e7165e004eb26422085d", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/56648fa8e50b076c46ecf7f8d409e6d5df724995", + "reference": "56648fa8e50b076c46ecf7f8d409e6d5df724995", "shasum": "" }, "require": { @@ -4399,7 +4399,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.0.17" + "source": "https://github.com/symfony/http-foundation/tree/v6.0.19" }, "funding": [ { @@ -4415,20 +4415,20 @@ "type": "tidelift" } ], - "time": "2022-12-14T15:52:41+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.0.18", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "71b52f9e5740b124894b454244fa0db48bb15814" + "reference": "0a01b69b46b1be6d3c252307c8d683de56d4541f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/71b52f9e5740b124894b454244fa0db48bb15814", - "reference": "71b52f9e5740b124894b454244fa0db48bb15814", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/0a01b69b46b1be6d3c252307c8d683de56d4541f", + "reference": "0a01b69b46b1be6d3c252307c8d683de56d4541f", "shasum": "" }, "require": { @@ -4508,7 +4508,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/v6.0.18" + "source": "https://github.com/symfony/http-kernel/tree/v6.0.19" }, "funding": [ { @@ -4524,7 +4524,7 @@ "type": "tidelift" } ], - "time": "2022-12-29T18:58:12+00:00" + "time": "2023-01-24T13:42:21+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5096,16 +5096,16 @@ }, { "name": "symfony/routing", - "version": "v6.0.17", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "61687a0aa80f6807c52e116ee64072f6ec53780c" + "reference": "e56ca9b41c1ec447193474cd86ad7c0b547755ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/61687a0aa80f6807c52e116ee64072f6ec53780c", - "reference": "61687a0aa80f6807c52e116ee64072f6ec53780c", + "url": "https://api.github.com/repos/symfony/routing/zipball/e56ca9b41c1ec447193474cd86ad7c0b547755ac", + "reference": "e56ca9b41c1ec447193474cd86ad7c0b547755ac", "shasum": "" }, "require": { @@ -5164,7 +5164,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.0.17" + "source": "https://github.com/symfony/routing/tree/v6.0.19" }, "funding": [ { @@ -5180,7 +5180,7 @@ "type": "tidelift" } ], - "time": "2022-12-20T16:40:04+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/service-contracts", @@ -5267,16 +5267,16 @@ }, { "name": "symfony/string", - "version": "v6.0.17", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "3f57003dd8a67ed76870cc03092f8501db7788d9" + "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/3f57003dd8a67ed76870cc03092f8501db7788d9", - "reference": "3f57003dd8a67ed76870cc03092f8501db7788d9", + "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a", + "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a", "shasum": "" }, "require": { @@ -5332,7 +5332,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.17" + "source": "https://github.com/symfony/string/tree/v6.0.19" }, "funding": [ { @@ -5348,20 +5348,20 @@ "type": "tidelift" } ], - "time": "2022-12-14T15:52:41+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/translation", - "version": "v6.0.14", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "6f99eb179aee4652c0a7cd7c11f2a870d904330c" + "reference": "9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/6f99eb179aee4652c0a7cd7c11f2a870d904330c", - "reference": "6f99eb179aee4652c0a7cd7c11f2a870d904330c", + "url": "https://api.github.com/repos/symfony/translation/zipball/9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f", + "reference": "9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f", "shasum": "" }, "require": { @@ -5427,7 +5427,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.0.14" + "source": "https://github.com/symfony/translation/tree/v6.0.19" }, "funding": [ { @@ -5443,7 +5443,7 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:02:12+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/translation-contracts", @@ -5525,16 +5525,16 @@ }, { "name": "symfony/var-dumper", - "version": "v6.0.17", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "7d8e7c3c67c77790425ebe33691419dada154e65" + "reference": "eb980457fa6899840fe1687e8627a03a7d8a3d52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/7d8e7c3c67c77790425ebe33691419dada154e65", - "reference": "7d8e7c3c67c77790425ebe33691419dada154e65", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/eb980457fa6899840fe1687e8627a03a7d8a3d52", + "reference": "eb980457fa6899840fe1687e8627a03a7d8a3d52", "shasum": "" }, "require": { @@ -5593,7 +5593,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.0.17" + "source": "https://github.com/symfony/var-dumper/tree/v6.0.19" }, "funding": [ { @@ -5609,20 +5609,20 @@ "type": "tidelift" } ], - "time": "2022-12-22T17:53:58+00:00" + "time": "2023-01-20T17:44:14+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.0.17", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "d87c15d59421d38fe5eb4f6724eb75891479e3da" + "reference": "df56f53818c2d5d9f683f4ad2e365ba73a3b69d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/d87c15d59421d38fe5eb4f6724eb75891479e3da", - "reference": "d87c15d59421d38fe5eb4f6724eb75891479e3da", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/df56f53818c2d5d9f683f4ad2e365ba73a3b69d2", + "reference": "df56f53818c2d5d9f683f4ad2e365ba73a3b69d2", "shasum": "" }, "require": { @@ -5665,7 +5665,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.0.17" + "source": "https://github.com/symfony/var-exporter/tree/v6.0.19" }, "funding": [ { @@ -5681,7 +5681,7 @@ "type": "tidelift" } ], - "time": "2022-12-22T17:53:58+00:00" + "time": "2023-01-13T08:34:10+00:00" }, { "name": "voku/portable-ascii", @@ -8574,16 +8574,16 @@ }, { "name": "symfony/options-resolver", - "version": "v6.0.3", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "51f7006670febe4cbcbae177cbffe93ff833250d" + "reference": "6a180d1c45e0d9797470ca9eb46215692de00fa3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/51f7006670febe4cbcbae177cbffe93ff833250d", - "reference": "51f7006670febe4cbcbae177cbffe93ff833250d", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/6a180d1c45e0d9797470ca9eb46215692de00fa3", + "reference": "6a180d1c45e0d9797470ca9eb46215692de00fa3", "shasum": "" }, "require": { @@ -8621,7 +8621,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.0.3" + "source": "https://github.com/symfony/options-resolver/tree/v6.0.19" }, "funding": [ { @@ -8637,20 +8637,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/process", - "version": "v6.0.11", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "44270a08ccb664143dede554ff1c00aaa2247a43" + "reference": "2114fd60f26a296cc403a7939ab91478475a33d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/44270a08ccb664143dede554ff1c00aaa2247a43", - "reference": "44270a08ccb664143dede554ff1c00aaa2247a43", + "url": "https://api.github.com/repos/symfony/process/zipball/2114fd60f26a296cc403a7939ab91478475a33d4", + "reference": "2114fd60f26a296cc403a7939ab91478475a33d4", "shasum": "" }, "require": { @@ -8682,7 +8682,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.0.11" + "source": "https://github.com/symfony/process/tree/v6.0.19" }, "funding": [ { @@ -8698,20 +8698,20 @@ "type": "tidelift" } ], - "time": "2022-06-27T17:10:44+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.0.13", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "7554fde6848af5ef1178f8ccbdbdb8ae1092c70a" + "reference": "011e781839dd1d2eb8119f65ac516a530f60226d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/7554fde6848af5ef1178f8ccbdbdb8ae1092c70a", - "reference": "7554fde6848af5ef1178f8ccbdbdb8ae1092c70a", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/011e781839dd1d2eb8119f65ac516a530f60226d", + "reference": "011e781839dd1d2eb8119f65ac516a530f60226d", "shasum": "" }, "require": { @@ -8744,7 +8744,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.0.13" + "source": "https://github.com/symfony/stopwatch/tree/v6.0.19" }, "funding": [ { @@ -8760,7 +8760,7 @@ "type": "tidelift" } ], - "time": "2022-09-28T15:52:47+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "theseer/tokenizer", @@ -8882,5 +8882,5 @@ "php": ">=8.0" }, "platform-dev": [], - "plugin-api-version": "2.1.0" + "plugin-api-version": "2.3.0" } diff --git a/config/services.php b/config/services.php index a578316..342e856 100644 --- a/config/services.php +++ b/config/services.php @@ -35,6 +35,5 @@ $services ->set(InstallCommand::class) ->public() - ->arg('$projectDir', '%kernel.project_dir%') ->tag('console.command'); }; diff --git a/src/Command/InstallCommand.php b/src/Command/InstallCommand.php index 79b825a..e33aa1b 100644 --- a/src/Command/InstallCommand.php +++ b/src/Command/InstallCommand.php @@ -2,16 +2,17 @@ namespace ForestAdmin\SymfonyForestAdmin\Command; -use ForestAdmin\AgentPHP\Agent\Facades\Cache; use Illuminate\Support\Str; use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Exception\ExceptionInterface; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\HttpKernel\KernelInterface; class InstallCommand extends Command { - public function __construct(private string $projectDir) + public function __construct(private KernelInterface $appKernel) { parent::__construct(); } @@ -28,26 +29,32 @@ protected function configure() * @param InputInterface $input * @param OutputInterface $output * @return int + * @throws ExceptionInterface */ protected function execute(InputInterface $input, OutputInterface $output): int { + $this->deleteDirectory($this->appKernel->getContainer()->getParameter('kernel.cache_dir') . '/forest'); + $keys = [ 'FOREST_AUTH_SECRET' => Str::random(32), 'FOREST_ENV_SECRET' => $input->getArgument('secretKey'), ]; + + if (isset($_SERVER['FOREST_SERVER_URL'])) { + $keys['FOREST_SERVER_URL'] = $_SERVER['FOREST_SERVER_URL']; + } + $this->addKeysToEnvFile($output, $keys, $input->getArgument('envFileName')); $this->publishConfig($output); - Cache::forget('config'); - return Command::SUCCESS; } private function addKeysToEnvFile(OutputInterface $output, array $keys, string $envFileName): void { foreach ($keys as $key => $value) { - file_put_contents($this->projectDir . '/' . $envFileName, PHP_EOL . "$key=$value", FILE_APPEND); + file_put_contents($this->appKernel->getProjectDir() . '/' . $envFileName, PHP_EOL . "$key=$value", FILE_APPEND); } $output->writeln('✅ Env keys correctly set'); } @@ -55,7 +62,7 @@ private function addKeysToEnvFile(OutputInterface $output, array $keys, string $ private function publishConfig(OutputInterface $output) { $defaultConfigFile = __DIR__ . '/../../config/default.config'; - $publishFileName = $this->projectDir . '/config/packages/symfony_forest_admin.php'; + $publishFileName = $this->appKernel->getProjectDir() . '/config/packages/symfony_forest_admin.php'; if (! file_exists($publishFileName)) { copy($defaultConfigFile, $publishFileName); $output->writeln('✅ Config file set'); @@ -63,4 +70,34 @@ private function publishConfig(OutputInterface $output) $output->writeln('⚠️ Forest Admin config file already setup'); } } + + private function deleteDirectory($dirname) + { + // Sanity check + if (! file_exists($dirname)) { + return false; + } + + // Simple delete for a file + if (is_file($dirname) || is_link($dirname)) { + return unlink($dirname); + } + + // Loop through the folder + $dir = dir($dirname); + while (false !== $entry = $dir->read()) { + // Skip pointers + if ($entry == '.' || $entry == '..') { + continue; + } + + // Recurse + $this->deleteDirectory($dirname . DIRECTORY_SEPARATOR . $entry); + } + + // Clean up + $dir->close(); + + return rmdir($dirname); + } } diff --git a/src/Command/SendApimapCommand.php b/src/Command/SendApimapCommand.php index bd09dc2..67f9ca5 100644 --- a/src/Command/SendApimapCommand.php +++ b/src/Command/SendApimapCommand.php @@ -2,6 +2,7 @@ namespace ForestAdmin\SymfonyForestAdmin\Command; +use ForestAdmin\AgentPHP\Agent\Builder\AgentFactory; use ForestAdmin\SymfonyForestAdmin\Service\ForestAgent; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; @@ -22,7 +23,7 @@ protected function configure() protected function execute(InputInterface $input, OutputInterface $output): int { - $this->forestAgent->agent->sendSchema(); + AgentFactory::sendSchema(true); $output->writeln('✅ Apimap sent');