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');