diff --git a/composer.lock b/composer.lock index cc7abfc24..d1374b83d 100644 --- a/composer.lock +++ b/composer.lock @@ -493,16 +493,16 @@ }, { "name": "psr/log", - "version": "1.1.0", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", "shasum": "" }, "require": { @@ -511,7 +511,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -536,7 +536,7 @@ "psr", "psr-3" ], - "time": "2018-11-20T15:27:04+00:00" + "time": "2019-11-01T11:05:21+00:00" }, { "name": "psr/simple-cache", @@ -701,16 +701,16 @@ }, { "name": "symfony/cache", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "8c6e162f0f7626771edbfa0a0e45b46623bbae1c" + "reference": "8d5db9c0cecf8b6f79fa96583fae652224d897da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/8c6e162f0f7626771edbfa0a0e45b46623bbae1c", - "reference": "8c6e162f0f7626771edbfa0a0e45b46623bbae1c", + "url": "https://api.github.com/repos/symfony/cache/zipball/8d5db9c0cecf8b6f79fa96583fae652224d897da", + "reference": "8d5db9c0cecf8b6f79fa96583fae652224d897da", "shasum": "" }, "require": { @@ -767,20 +767,20 @@ "caching", "psr6" ], - "time": "2019-06-17T17:26:15+00:00" + "time": "2019-11-12T12:50:33+00:00" }, { "name": "symfony/class-loader", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", - "reference": "4459eef5298dedfb69f771186a580062b8516497" + "reference": "e212b06996819a2bce026a63da03b7182d05a690" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/4459eef5298dedfb69f771186a580062b8516497", - "reference": "4459eef5298dedfb69f771186a580062b8516497", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/e212b06996819a2bce026a63da03b7182d05a690", + "reference": "e212b06996819a2bce026a63da03b7182d05a690", "shasum": "" }, "require": { @@ -823,20 +823,20 @@ ], "description": "Symfony ClassLoader Component", "homepage": "https://symfony.com", - "time": "2019-01-16T09:39:14+00:00" + "time": "2019-08-20T13:31:17+00:00" }, { "name": "symfony/config", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "623fd6be3e5d4112d667003488c8c3ec12b66f62" + "reference": "c3a30587de97263d2813a3c81b74126c58b67a4f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/623fd6be3e5d4112d667003488c8c3ec12b66f62", - "reference": "623fd6be3e5d4112d667003488c8c3ec12b66f62", + "url": "https://api.github.com/repos/symfony/config/zipball/c3a30587de97263d2813a3c81b74126c58b67a4f", + "reference": "c3a30587de97263d2813a3c81b74126c58b67a4f", "shasum": "" }, "require": { @@ -887,20 +887,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2019-07-17T15:23:18+00:00" + "time": "2019-11-08T08:28:59+00:00" }, { "name": "symfony/console", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "12940f20a816c978860fa4925b3f1bbb27e9ac46" + "reference": "17b154f932c5874cdbda6d05796b6490eec9f9f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/12940f20a816c978860fa4925b3f1bbb27e9ac46", - "reference": "12940f20a816c978860fa4925b3f1bbb27e9ac46", + "url": "https://api.github.com/repos/symfony/console/zipball/17b154f932c5874cdbda6d05796b6490eec9f9f7", + "reference": "17b154f932c5874cdbda6d05796b6490eec9f9f7", "shasum": "" }, "require": { @@ -959,20 +959,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-07-24T14:46:41+00:00" + "time": "2019-11-13T07:12:39+00:00" }, { "name": "symfony/css-selector", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "8ca29297c29b64fb3a1a135e71cb25f67f9fdccf" + "reference": "f819f71ae3ba6f396b4c015bd5895de7d2f1f85f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/8ca29297c29b64fb3a1a135e71cb25f67f9fdccf", - "reference": "8ca29297c29b64fb3a1a135e71cb25f67f9fdccf", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/f819f71ae3ba6f396b4c015bd5895de7d2f1f85f", + "reference": "f819f71ae3ba6f396b4c015bd5895de7d2f1f85f", "shasum": "" }, "require": { @@ -1012,20 +1012,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2019-01-16T09:39:14+00:00" + "time": "2019-10-01T11:57:37+00:00" }, { "name": "symfony/debug", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "bc977cb2681d75988ab2d53d14c4245c6c04f82f" + "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/bc977cb2681d75988ab2d53d14c4245c6c04f82f", - "reference": "bc977cb2681d75988ab2d53d14c4245c6c04f82f", + "url": "https://api.github.com/repos/symfony/debug/zipball/f72e33fdb1170b326e72c3157f0cd456351dd086", + "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086", "shasum": "" }, "require": { @@ -1068,20 +1068,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-07-23T08:39:19+00:00" + "time": "2019-10-24T15:33:53+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "ade939fe83d5ec5fcaa98628dc42d83232c8eb41" + "reference": "0ea4d39ca82409a25a43b61ce828048a90000920" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ade939fe83d5ec5fcaa98628dc42d83232c8eb41", - "reference": "ade939fe83d5ec5fcaa98628dc42d83232c8eb41", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0ea4d39ca82409a25a43b61ce828048a90000920", + "reference": "0ea4d39ca82409a25a43b61ce828048a90000920", "shasum": "" }, "require": { @@ -1139,27 +1139,27 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2019-07-19T11:52:08+00:00" + "time": "2019-11-08T16:18:30+00:00" }, { "name": "symfony/dotenv", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "3f4fdfb551bf36f2017d75cd2e6490fbe67f9d2d" + "reference": "c7e8e471fea74e868ae797970b383dea89ae548a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/3f4fdfb551bf36f2017d75cd2e6490fbe67f9d2d", - "reference": "3f4fdfb551bf36f2017d75cd2e6490fbe67f9d2d", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/c7e8e471fea74e868ae797970b383dea89ae548a", + "reference": "c7e8e471fea74e868ae797970b383dea89ae548a", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8" }, "require-dev": { - "symfony/process": "~3.2|~4.0" + "symfony/process": "^3.4.2|^4.0" }, "type": "library", "extra": { @@ -1196,20 +1196,20 @@ "env", "environment" ], - "time": "2019-06-23T08:10:04+00:00" + "time": "2019-10-18T10:00:34+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "f18fdd6cc7006441865e698420cee26bac94741f" + "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f18fdd6cc7006441865e698420cee26bac94741f", - "reference": "f18fdd6cc7006441865e698420cee26bac94741f", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f9031c22ec127d4a2450760f81a8677fe8a10177", + "reference": "f9031c22ec127d4a2450760f81a8677fe8a10177", "shasum": "" }, "require": { @@ -1259,20 +1259,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2019-06-25T07:45:31+00:00" + "time": "2019-10-24T15:33:53+00:00" }, { "name": "symfony/filesystem", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "70adda061ef83bb7def63a17953dc41f203308a7" + "reference": "00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/70adda061ef83bb7def63a17953dc41f203308a7", - "reference": "70adda061ef83bb7def63a17953dc41f203308a7", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516", + "reference": "00e3a6ddd723b8bcfe4f2a1b6f82b98eeeb51516", "shasum": "" }, "require": { @@ -1309,20 +1309,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2019-06-23T09:29:17+00:00" + "time": "2019-08-20T13:31:17+00:00" }, { "name": "symfony/finder", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "1e762fdf73ace6ceb42ba5a6ca280be86082364a" + "reference": "3e915e5ce305f8bc8017597f71f1f4095092ddf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/1e762fdf73ace6ceb42ba5a6ca280be86082364a", - "reference": "1e762fdf73ace6ceb42ba5a6ca280be86082364a", + "url": "https://api.github.com/repos/symfony/finder/zipball/3e915e5ce305f8bc8017597f71f1f4095092ddf8", + "reference": "3e915e5ce305f8bc8017597f71f1f4095092ddf8", "shasum": "" }, "require": { @@ -1358,35 +1358,35 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-06-28T08:02:59+00:00" + "time": "2019-10-30T12:43:22+00:00" }, { "name": "symfony/framework-bundle", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "0bb32eafe4adeb39faff1902dd9ec54e0ed2a265" + "reference": "3cb98792e8d1fa332c65b28521eeaa6e9bbeea34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/0bb32eafe4adeb39faff1902dd9ec54e0ed2a265", - "reference": "0bb32eafe4adeb39faff1902dd9ec54e0ed2a265", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/3cb98792e8d1fa332c65b28521eeaa6e9bbeea34", + "reference": "3cb98792e8d1fa332c65b28521eeaa6e9bbeea34", "shasum": "" }, "require": { "ext-xml": "*", "php": "^5.5.9|>=7.0.8", - "symfony/cache": "~3.4|~4.0", + "symfony/cache": "~3.4.31|^4.3.4", "symfony/class-loader": "~3.2", - "symfony/config": "~3.4|~4.0", + "symfony/config": "^3.4.31|^4.3.4", "symfony/debug": "~2.8|~3.0|~4.0", "symfony/dependency-injection": "^3.4.24|^4.2.5", "symfony/event-dispatcher": "~3.4|~4.0", "symfony/filesystem": "~2.8|~3.0|~4.0", "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "^3.3.11|~4.0", - "symfony/http-kernel": "~3.4|~4.0", + "symfony/http-foundation": "^3.4.13|~4.3", + "symfony/http-kernel": "^3.4.31|^4.3.4", "symfony/polyfill-mbstring": "~1.0", "symfony/routing": "^3.4.5|^4.0.5" }, @@ -1405,17 +1405,17 @@ "symfony/workflow": "<3.3" }, "require-dev": { - "doctrine/annotations": "~1.0", + "doctrine/annotations": "~1.7", "doctrine/cache": "~1.0", "fig/link-util": "^1.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0", "symfony/asset": "~3.3|~4.0", "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/console": "~3.4|~4.0", + "symfony/console": "~3.4.31|^4.3.4", "symfony/css-selector": "~2.8|~3.0|~4.0", "symfony/dom-crawler": "~2.8|~3.0|~4.0", "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/form": "^3.4.22|~4.1.11|^4.2.3", + "symfony/form": "^3.4.31|^4.3.4", "symfony/lock": "~3.4|~4.0", "symfony/polyfill-intl-icu": "~1.0", "symfony/process": "~2.8|~3.0|~4.0", @@ -1473,20 +1473,20 @@ ], "description": "Symfony FrameworkBundle", "homepage": "https://symfony.com", - "time": "2019-07-24T16:59:53+00:00" + "time": "2019-11-03T19:32:26+00:00" }, { "name": "symfony/http-foundation", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "c450706851050ade2e1f30d012d50bb9173f7f3d" + "reference": "9e4b3ac8fa3348b4811674d23de32d201de225ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c450706851050ade2e1f30d012d50bb9173f7f3d", - "reference": "c450706851050ade2e1f30d012d50bb9173f7f3d", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9e4b3ac8fa3348b4811674d23de32d201de225ce", + "reference": "9e4b3ac8fa3348b4811674d23de32d201de225ce", "shasum": "" }, "require": { @@ -1527,20 +1527,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-07-23T06:27:47+00:00" + "time": "2019-11-11T12:53:10+00:00" }, { "name": "symfony/http-kernel", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "83a1b30c5dd02f5c3cd708a432071d0c99474eb3" + "reference": "e1764b3de00ec5636dd03d02fd44bcb1147d70d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/83a1b30c5dd02f5c3cd708a432071d0c99474eb3", - "reference": "83a1b30c5dd02f5c3cd708a432071d0c99474eb3", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e1764b3de00ec5636dd03d02fd44bcb1147d70d9", + "reference": "e1764b3de00ec5636dd03d02fd44bcb1147d70d9", "shasum": "" }, "require": { @@ -1549,7 +1549,8 @@ "symfony/debug": "^3.3.3|~4.0", "symfony/event-dispatcher": "~2.8|~3.0|~4.0", "symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1", - "symfony/polyfill-ctype": "~1.8" + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php56": "~1.8" }, "conflict": { "symfony/config": "<2.8", @@ -1616,7 +1617,7 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2019-07-27T17:14:06+00:00" + "time": "2019-11-13T08:44:50+00:00" }, { "name": "symfony/polyfill-apcu", @@ -1791,6 +1792,62 @@ ], "time": "2019-08-06T08:03:45+00:00" }, + { + "name": "symfony/polyfill-php56", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "0e3b212e96a51338639d8ce175c046d7729c3403" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/0e3b212e96a51338639d8ce175c046d7729c3403", + "reference": "0e3b212e96a51338639d8ce175c046d7729c3403", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php56\\": "" + }, + "files": [ + "bootstrap.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": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, { "name": "symfony/polyfill-php70", "version": "v1.12.0", @@ -1851,17 +1908,69 @@ "time": "2019-08-06T08:03:45+00:00" }, { - "name": "symfony/routing", - "version": "v3.4.30", + "name": "symfony/polyfill-util", + "version": "v1.12.0", "source": { "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "8d804d8a65a26dc9de1aaf2ff3a421e581d050e6" + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "4317de1386717b4c22caed7725350a8887ab205c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8d804d8a65a26dc9de1aaf2ff3a421e581d050e6", - "reference": "8d804d8a65a26dc9de1aaf2ff3a421e581d050e6", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/4317de1386717b4c22caed7725350a8887ab205c", + "reference": "4317de1386717b4c22caed7725350a8887ab205c", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Util\\": "" + } + }, + "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": "Symfony utilities for portability of PHP codes", + "homepage": "https://symfony.com", + "keywords": [ + "compat", + "compatibility", + "polyfill", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/routing", + "version": "v3.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "afc10b9c6b5196e0fecbc3bd373c7b4482e5b6b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/afc10b9c6b5196e0fecbc3bd373c7b4482e5b6b5", + "reference": "afc10b9c6b5196e0fecbc3bd373c7b4482e5b6b5", "shasum": "" }, "require": { @@ -1924,37 +2033,38 @@ "uri", "url" ], - "time": "2019-06-26T11:14:13+00:00" + "time": "2019-11-08T17:25:00+00:00" }, { "name": "symfony/twig-bridge", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "bf136ba1fbd18126ab65a930ea0daebb0b0fd159" + "reference": "a2fa4d04a4f22c8abf7d12188d89510e2e9bd1c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/bf136ba1fbd18126ab65a930ea0daebb0b0fd159", - "reference": "bf136ba1fbd18126ab65a930ea0daebb0b0fd159", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/a2fa4d04a4f22c8abf7d12188d89510e2e9bd1c1", + "reference": "a2fa4d04a4f22c8abf7d12188d89510e2e9bd1c1", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8", - "twig/twig": "^1.40|^2.9" + "twig/twig": "^1.41|^2.10" }, "conflict": { "symfony/console": "<3.4", - "symfony/form": "<3.4.13|>=4.0,<4.0.13|>=4.1,<4.1.2" + "symfony/form": "<3.4.31|>=4.0,<4.3.4" }, "require-dev": { + "fig/link-util": "^1.0", "symfony/asset": "~2.8|~3.0|~4.0", "symfony/console": "~3.4|~4.0", "symfony/dependency-injection": "~2.8|~3.0|~4.0", "symfony/expression-language": "~2.8|~3.0|~4.0", "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/form": "^3.4.23|^4.2.4", + "symfony/form": "^3.4.31|^4.3.4", "symfony/http-foundation": "^3.3.11|~4.0", "symfony/http-kernel": "~3.2|~4.0", "symfony/polyfill-intl-icu": "~1.0", @@ -2014,20 +2124,20 @@ ], "description": "Symfony Twig Bridge", "homepage": "https://symfony.com", - "time": "2019-07-24T19:39:07+00:00" + "time": "2019-10-24T15:33:53+00:00" }, { "name": "symfony/twig-bundle", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "fae76fd8d8cff50295282d752e9842324bd277e4" + "reference": "d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/fae76fd8d8cff50295282d752e9842324bd277e4", - "reference": "fae76fd8d8cff50295282d752e9842324bd277e4", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9", + "reference": "d39ed8f5df62aeeeb27a6f3bf7f58a6c02a58ea9", "shasum": "" }, "require": { @@ -2038,14 +2148,14 @@ "symfony/http-kernel": "^3.3|~4.0", "symfony/polyfill-ctype": "~1.8", "symfony/twig-bridge": "^3.4.3|^4.0.3", - "twig/twig": "~1.40|~2.9" + "twig/twig": "~1.41|~2.10" }, "conflict": { "symfony/dependency-injection": "<3.4", "symfony/event-dispatcher": "<3.3.1" }, "require-dev": { - "doctrine/annotations": "~1.0", + "doctrine/annotations": "~1.7", "doctrine/cache": "~1.0", "symfony/asset": "~2.8|~3.0|~4.0", "symfony/dependency-injection": "~3.4.24|^4.2.5", @@ -2089,20 +2199,20 @@ ], "description": "Symfony TwigBundle", "homepage": "https://symfony.com", - "time": "2019-07-19T08:16:37+00:00" + "time": "2019-10-01T15:13:36+00:00" }, { "name": "symfony/yaml", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "051d045c684148060ebfc9affb7e3f5e0899d40b" + "reference": "dab657db15207879217fc81df4f875947bf68804" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/051d045c684148060ebfc9affb7e3f5e0899d40b", - "reference": "051d045c684148060ebfc9affb7e3f5e0899d40b", + "url": "https://api.github.com/repos/symfony/yaml/zipball/dab657db15207879217fc81df4f875947bf68804", + "reference": "dab657db15207879217fc81df4f875947bf68804", "shasum": "" }, "require": { @@ -2148,30 +2258,30 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2019-07-24T13:01:31+00:00" + "time": "2019-10-24T15:33:53+00:00" }, { "name": "twig/twig", - "version": "v1.42.2", + "version": "v1.42.4", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "21707d6ebd05476854805e4f91b836531941bcd4" + "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/21707d6ebd05476854805e4f91b836531941bcd4", - "reference": "21707d6ebd05476854805e4f91b836531941bcd4", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/e587180584c3d2d6cb864a0454e777bb6dcb6152", + "reference": "e587180584c3d2d6cb864a0454e777bb6dcb6152", "shasum": "" }, "require": { - "php": ">=5.4.0", + "php": ">=5.5.0", "symfony/polyfill-ctype": "^1.8" }, "require-dev": { "psr/container": "^1.0", - "symfony/debug": "^2.7", - "symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0" + "symfony/debug": "^3.4|^4.2", + "symfony/phpunit-bridge": "^4.4@dev|^5.0" }, "type": "library", "extra": { @@ -2194,19 +2304,19 @@ "authors": [ { "name": "Fabien Potencier", - "role": "Lead Developer", "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org" - }, - { - "name": "Armin Ronacher", - "role": "Project Founder", - "email": "armin.ronacher@active-4.com" + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" }, { "name": "Twig Team", - "role": "Contributors", - "homepage": "https://twig.symfony.com/contributors" + "homepage": "https://twig.symfony.com/contributors", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" } ], "description": "Twig, the flexible, fast, and secure template language for PHP", @@ -2214,22 +2324,22 @@ "keywords": [ "templating" ], - "time": "2019-06-18T15:35:16+00:00" + "time": "2019-11-11T16:49:32+00:00" } ], "packages-dev": [ { "name": "symfony/stopwatch", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "2a651c2645c10bbedd21170771f122d935e0dd58" + "reference": "efe0af281ad336bc3b10375c88b117499f1d8494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/2a651c2645c10bbedd21170771f122d935e0dd58", - "reference": "2a651c2645c10bbedd21170771f122d935e0dd58", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/efe0af281ad336bc3b10375c88b117499f1d8494", + "reference": "efe0af281ad336bc3b10375c88b117499f1d8494", "shasum": "" }, "require": { @@ -2265,20 +2375,20 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "time": "2019-01-16T09:39:14+00:00" + "time": "2019-11-03T17:17:59+00:00" }, { "name": "symfony/var-dumper", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "b6a45abfe961183a4c26fad98a6112c487e983bf" + "reference": "569e261461600810845a8305ca3f64abd3e712c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b6a45abfe961183a4c26fad98a6112c487e983bf", - "reference": "b6a45abfe961183a4c26fad98a6112c487e983bf", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/569e261461600810845a8305ca3f64abd3e712c0", + "reference": "569e261461600810845a8305ca3f64abd3e712c0", "shasum": "" }, "require": { @@ -2334,20 +2444,20 @@ "debug", "dump" ], - "time": "2019-07-26T11:29:23+00:00" + "time": "2019-10-10T11:03:19+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v3.4.30", + "version": "v3.4.35", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "0e9627b1a3864949fa1d72eec78dab02830b5206" + "reference": "b4c78b585d60a0b96ed735ce40f964bd3a228f73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/0e9627b1a3864949fa1d72eec78dab02830b5206", - "reference": "0e9627b1a3864949fa1d72eec78dab02830b5206", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/b4c78b585d60a0b96ed735ce40f964bd3a228f73", + "reference": "b4c78b585d60a0b96ed735ce40f964bd3a228f73", "shasum": "" }, "require": { @@ -2401,7 +2511,7 @@ ], "description": "Symfony WebProfilerBundle", "homepage": "https://symfony.com", - "time": "2019-07-24T10:33:03+00:00" + "time": "2019-10-01T15:13:36+00:00" } ], "aliases": [], diff --git a/lib/symfony/console/Tests/Fixtures/FooHiddenCommand.php b/lib/symfony/console/Tests/Fixtures/FooHiddenCommand.php new file mode 100644 index 000000000..75fbf7804 --- /dev/null +++ b/lib/symfony/console/Tests/Fixtures/FooHiddenCommand.php @@ -0,0 +1,21 @@ +setName('foo:hidden') + ->setAliases(['afoohidden']) + ->setHidden(true) + ; + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + } +} diff --git a/lib/symfony/framework-bundle/Test/ForwardCompatTestTrait.php b/lib/symfony/framework-bundle/Test/ForwardCompatTestTrait.php new file mode 100644 index 000000000..6fb7479e2 --- /dev/null +++ b/lib/symfony/framework-bundle/Test/ForwardCompatTestTrait.php @@ -0,0 +1,82 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bundle\FrameworkBundle\Test; + +use PHPUnit\Framework\TestCase; + +// Auto-adapt to PHPUnit 8 that added a `void` return-type to the setUp/tearDown methods + +if (method_exists(\ReflectionMethod::class, 'hasReturnType') && (new \ReflectionMethod(TestCase::class, 'tearDown'))->hasReturnType()) { + eval(' + namespace Symfony\Bundle\FrameworkBundle\Test; + + /** + * @internal + */ + trait ForwardCompatTestTrait + { + private function doSetUp(): void + { + } + + private function doTearDown(): void + { + } + + protected function setUp(): void + { + $this->doSetUp(); + } + + protected function tearDown(): void + { + $this->doTearDown(); + } + } +'); +} else { + /** + * @internal + */ + trait ForwardCompatTestTrait + { + /** + * @return void + */ + private function doSetUp() + { + } + + /** + * @return void + */ + private function doTearDown() + { + } + + /** + * @return void + */ + protected function setUp() + { + $this->doSetUp(); + } + + /** + * @return void + */ + protected function tearDown() + { + $this->doTearDown(); + } + } +} diff --git a/lib/symfony/framework-bundle/Tests/Fixtures/Serialization/Resources/does_not_exist.yaml b/lib/symfony/framework-bundle/Tests/Fixtures/Serialization/Resources/does_not_exist.yaml new file mode 100644 index 000000000..061691224 --- /dev/null +++ b/lib/symfony/framework-bundle/Tests/Fixtures/Serialization/Resources/does_not_exist.yaml @@ -0,0 +1 @@ +AClassThatDoesNotExist_FWB_CacheWarmer_SerializerCacheWarmerTest: ~ diff --git a/lib/symfony/framework-bundle/Tests/Fixtures/Validation/Resources/does_not_exist.yaml b/lib/symfony/framework-bundle/Tests/Fixtures/Validation/Resources/does_not_exist.yaml new file mode 100644 index 000000000..69b1635e4 --- /dev/null +++ b/lib/symfony/framework-bundle/Tests/Fixtures/Validation/Resources/does_not_exist.yaml @@ -0,0 +1 @@ +AClassThatDoesNotExist_FWB_CacheWarmer_ValidatorCacheWarmerTest: ~ diff --git a/lib/symfony/http-foundation/Tests/File/Fixtures/-test b/lib/symfony/http-foundation/Tests/File/Fixtures/-test new file mode 100644 index 000000000..b636f4b8d Binary files /dev/null and b/lib/symfony/http-foundation/Tests/File/Fixtures/-test differ diff --git a/lib/symfony/polyfill-php56/LICENSE b/lib/symfony/polyfill-php56/LICENSE new file mode 100644 index 000000000..4cd8bdd30 --- /dev/null +++ b/lib/symfony/polyfill-php56/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015-2019 Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/lib/symfony/polyfill-php56/Php56.php b/lib/symfony/polyfill-php56/Php56.php new file mode 100644 index 000000000..dbbc0e13a --- /dev/null +++ b/lib/symfony/polyfill-php56/Php56.php @@ -0,0 +1,138 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Php56; + +use Symfony\Polyfill\Util\Binary; + +/** + * @internal + */ +final class Php56 +{ + const LDAP_ESCAPE_FILTER = 1; + const LDAP_ESCAPE_DN = 2; + + public static function hash_equals($knownString, $userInput) + { + if (!\is_string($knownString)) { + trigger_error('Expected known_string to be a string, '.\gettype($knownString).' given', E_USER_WARNING); + + return false; + } + + if (!\is_string($userInput)) { + trigger_error('Expected user_input to be a string, '.\gettype($userInput).' given', E_USER_WARNING); + + return false; + } + + $knownLen = Binary::strlen($knownString); + $userLen = Binary::strlen($userInput); + + if ($knownLen !== $userLen) { + return false; + } + + $result = 0; + + for ($i = 0; $i < $knownLen; ++$i) { + $result |= \ord($knownString[$i]) ^ \ord($userInput[$i]); + } + + return 0 === $result; + } + + /** + * Stub implementation of the {@link ldap_escape()} function of the ldap + * extension. + * + * Escape strings for safe use in LDAP filters and DNs. + * + * @author Chris Wright + * + * @param string $subject + * @param string $ignore + * @param int $flags + * + * @return string + * + * @see http://stackoverflow.com/a/8561604 + */ + public static function ldap_escape($subject, $ignore = '', $flags = 0) + { + static $charMaps = null; + + if (null === $charMaps) { + $charMaps = array( + self::LDAP_ESCAPE_FILTER => array('\\', '*', '(', ')', "\x00"), + self::LDAP_ESCAPE_DN => array('\\', ',', '=', '+', '<', '>', ';', '"', '#', "\r"), + ); + + $charMaps[0] = array(); + + for ($i = 0; $i < 256; ++$i) { + $charMaps[0][\chr($i)] = sprintf('\\%02x', $i); + } + + for ($i = 0, $l = \count($charMaps[self::LDAP_ESCAPE_FILTER]); $i < $l; ++$i) { + $chr = $charMaps[self::LDAP_ESCAPE_FILTER][$i]; + unset($charMaps[self::LDAP_ESCAPE_FILTER][$i]); + $charMaps[self::LDAP_ESCAPE_FILTER][$chr] = $charMaps[0][$chr]; + } + + for ($i = 0, $l = \count($charMaps[self::LDAP_ESCAPE_DN]); $i < $l; ++$i) { + $chr = $charMaps[self::LDAP_ESCAPE_DN][$i]; + unset($charMaps[self::LDAP_ESCAPE_DN][$i]); + $charMaps[self::LDAP_ESCAPE_DN][$chr] = $charMaps[0][$chr]; + } + } + + // Create the base char map to escape + $flags = (int) $flags; + $charMap = array(); + + if ($flags & self::LDAP_ESCAPE_FILTER) { + $charMap += $charMaps[self::LDAP_ESCAPE_FILTER]; + } + + if ($flags & self::LDAP_ESCAPE_DN) { + $charMap += $charMaps[self::LDAP_ESCAPE_DN]; + } + + if (!$charMap) { + $charMap = $charMaps[0]; + } + + // Remove any chars to ignore from the list + $ignore = (string) $ignore; + + for ($i = 0, $l = \strlen($ignore); $i < $l; ++$i) { + unset($charMap[$ignore[$i]]); + } + + // Do the main replacement + $result = strtr($subject, $charMap); + + // Encode leading/trailing spaces if self::LDAP_ESCAPE_DN is passed + if ($flags & self::LDAP_ESCAPE_DN) { + if (' ' === $result[0]) { + $result = '\\20'.substr($result, 1); + } + + if (' ' === $result[\strlen($result) - 1]) { + $result = substr($result, 0, -1).'\\20'; + } + } + + return $result; + } +} diff --git a/lib/symfony/polyfill-php56/README.md b/lib/symfony/polyfill-php56/README.md new file mode 100644 index 000000000..307ce5bc5 --- /dev/null +++ b/lib/symfony/polyfill-php56/README.md @@ -0,0 +1,15 @@ +Symfony Polyfill / Php56 +======================== + +This component provides functions unavailable in releases prior to PHP 5.6: + +- [`hash_equals`](http://php.net/hash_equals) (part of [hash](http://php.net/hash) extension) +- [`ldap_escape`](http://php.net/ldap_escape) (part of [ldap](http://php.net/ldap) extension) + +More information can be found in the +[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). + +License +======= + +This library is released under the [MIT license](LICENSE). diff --git a/lib/symfony/polyfill-php56/bootstrap.php b/lib/symfony/polyfill-php56/bootstrap.php new file mode 100644 index 000000000..587c2a81c --- /dev/null +++ b/lib/symfony/polyfill-php56/bootstrap.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Php56 as p; + +if (PHP_VERSION_ID < 50600) { + if (!function_exists('hash_equals')) { + function hash_equals($knownString, $userInput) { return p\Php56::hash_equals($knownString, $userInput); } + } + if (extension_loaded('ldap') && !function_exists('ldap_escape')) { + define('LDAP_ESCAPE_FILTER', 1); + define('LDAP_ESCAPE_DN', 2); + + function ldap_escape($subject, $ignore = '', $flags = 0) { return p\Php56::ldap_escape($subject, $ignore, $flags); } + } + + if (50509 === PHP_VERSION_ID && 4 === PHP_INT_SIZE) { + // Missing functions in PHP 5.5.9 - affects 32 bit builds of Ubuntu 14.04LTS + // See https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1315888 + if (!function_exists('gzopen') && function_exists('gzopen64')) { + function gzopen($filename, $mode, $use_include_path = 0) { return gzopen64($filename, $mode, $use_include_path); } + } + if (!function_exists('gzseek') && function_exists('gzseek64')) { + function gzseek($zp, $offset, $whence = SEEK_SET) { return gzseek64($zp, $offset, $whence); } + } + if (!function_exists('gztell') && function_exists('gztell64')) { + function gztell($zp) { return gztell64($zp); } + } + } +} diff --git a/lib/symfony/polyfill-php56/composer.json b/lib/symfony/polyfill-php56/composer.json new file mode 100644 index 000000000..81f58fb46 --- /dev/null +++ b/lib/symfony/polyfill-php56/composer.json @@ -0,0 +1,32 @@ +{ + "name": "symfony/polyfill-php56", + "type": "library", + "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "keywords": ["polyfill", "shim", "compatibility", "portable"], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" + }, + "autoload": { + "psr-4": { "Symfony\\Polyfill\\Php56\\": "" }, + "files": [ "bootstrap.php" ] + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + } +} diff --git a/lib/symfony/polyfill-util/Binary.php b/lib/symfony/polyfill-util/Binary.php new file mode 100644 index 000000000..23ff97473 --- /dev/null +++ b/lib/symfony/polyfill-util/Binary.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Util; + +if (\extension_loaded('mbstring')) { + class Binary extends BinaryOnFuncOverload + { + } +} else { + class Binary extends BinaryNoFuncOverload + { + } +} diff --git a/lib/symfony/polyfill-util/BinaryNoFuncOverload.php b/lib/symfony/polyfill-util/BinaryNoFuncOverload.php new file mode 100644 index 000000000..800ad75d0 --- /dev/null +++ b/lib/symfony/polyfill-util/BinaryNoFuncOverload.php @@ -0,0 +1,65 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Util; + +/** + * @author Nicolas Grekas + * + * @internal + */ +class BinaryNoFuncOverload +{ + public static function strlen($s) + { + return \strlen($s); + } + + public static function strpos($haystack, $needle, $offset = 0) + { + return strpos($haystack, $needle, $offset); + } + + public static function strrpos($haystack, $needle, $offset = 0) + { + return strrpos($haystack, $needle, $offset); + } + + public static function substr($string, $start, $length = PHP_INT_MAX) + { + return substr($string, $start, $length); + } + + public static function stripos($s, $needle, $offset = 0) + { + return stripos($s, $needle, $offset); + } + + public static function stristr($s, $needle, $part = false) + { + return stristr($s, $needle, $part); + } + + public static function strrchr($s, $needle, $part = false) + { + return strrchr($s, $needle, $part); + } + + public static function strripos($s, $needle, $offset = 0) + { + return strripos($s, $needle, $offset); + } + + public static function strstr($s, $needle, $part = false) + { + return strstr($s, $needle, $part); + } +} diff --git a/lib/symfony/polyfill-util/BinaryOnFuncOverload.php b/lib/symfony/polyfill-util/BinaryOnFuncOverload.php new file mode 100644 index 000000000..e1b886eac --- /dev/null +++ b/lib/symfony/polyfill-util/BinaryOnFuncOverload.php @@ -0,0 +1,67 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Util; + +/** + * Binary safe version of string functions overloaded when MB_OVERLOAD_STRING is enabled. + * + * @author Nicolas Grekas + * + * @internal + */ +class BinaryOnFuncOverload +{ + public static function strlen($s) + { + return mb_strlen($s, '8bit'); + } + + public static function strpos($haystack, $needle, $offset = 0) + { + return mb_strpos($haystack, $needle, $offset, '8bit'); + } + + public static function strrpos($haystack, $needle, $offset = 0) + { + return mb_strrpos($haystack, $needle, $offset, '8bit'); + } + + public static function substr($string, $start, $length = 2147483647) + { + return mb_substr($string, $start, $length, '8bit'); + } + + public static function stripos($s, $needle, $offset = 0) + { + return mb_stripos($s, $needle, $offset, '8bit'); + } + + public static function stristr($s, $needle, $part = false) + { + return mb_stristr($s, $needle, $part, '8bit'); + } + + public static function strrchr($s, $needle, $part = false) + { + return mb_strrchr($s, $needle, $part, '8bit'); + } + + public static function strripos($s, $needle, $offset = 0) + { + return mb_strripos($s, $needle, $offset, '8bit'); + } + + public static function strstr($s, $needle, $part = false) + { + return mb_strstr($s, $needle, $part, '8bit'); + } +} diff --git a/lib/symfony/polyfill-util/LICENSE b/lib/symfony/polyfill-util/LICENSE new file mode 100644 index 000000000..4cd8bdd30 --- /dev/null +++ b/lib/symfony/polyfill-util/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015-2019 Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/lib/symfony/polyfill-util/README.md b/lib/symfony/polyfill-util/README.md new file mode 100644 index 000000000..1c655fce3 --- /dev/null +++ b/lib/symfony/polyfill-util/README.md @@ -0,0 +1,13 @@ +Symfony Polyfill / Util +======================= + +This component provides binary-safe string functions, using the +[mbstring](https://php.net/mbstring) extension when available. + +More information can be found in the +[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). + +License +======= + +This library is released under the [MIT license](LICENSE). diff --git a/lib/symfony/polyfill-util/TestListener.php b/lib/symfony/polyfill-util/TestListener.php new file mode 100644 index 000000000..6b17d45cc --- /dev/null +++ b/lib/symfony/polyfill-util/TestListener.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Util; + +if (class_exists('PHPUnit_Runner_Version') && version_compare(\PHPUnit_Runner_Version::id(), '6.0.0', '<')) { + class_alias('Symfony\Polyfill\Util\TestListenerForV5', 'Symfony\Polyfill\Util\TestListener'); +// Using an early return instead of a else does not work when using the PHPUnit phar due to some weird PHP behavior (the class +// gets defined without executing the code before it and so the definition is not properly conditional) +} elseif (version_compare(\PHPUnit\Runner\Version::id(), '7.0.0', '<')) { + class_alias('Symfony\Polyfill\Util\TestListenerForV6', 'Symfony\Polyfill\Util\TestListener'); +} else { + class_alias('Symfony\Polyfill\Util\TestListenerForV7', 'Symfony\Polyfill\Util\TestListener'); +} + +if (false) { + class TestListener + { + } +} diff --git a/lib/symfony/polyfill-util/TestListenerForV5.php b/lib/symfony/polyfill-util/TestListenerForV5.php new file mode 100644 index 000000000..501053ddd --- /dev/null +++ b/lib/symfony/polyfill-util/TestListenerForV5.php @@ -0,0 +1,89 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Util; + +/** + * @author Nicolas Grekas + */ +class TestListenerForV5 extends \PHPUnit_Framework_TestSuite implements \PHPUnit_Framework_TestListener +{ + private $suite; + private $trait; + + public function __construct(\PHPUnit_Framework_TestSuite $suite = null) + { + if ($suite) { + $this->suite = $suite; + $this->setName($suite->getName().' with polyfills enabled'); + $this->addTest($suite); + } + $this->trait = new TestListenerTrait(); + } + + public function startTestSuite(\PHPUnit_Framework_TestSuite $suite) + { + $this->trait->startTestSuite($suite); + } + + public function addError(\PHPUnit_Framework_Test $test, \Exception $e, $time) + { + $this->trait->addError($test, $e, $time); + } + + public function addWarning(\PHPUnit_Framework_Test $test, \PHPUnit_Framework_Warning $e, $time) + { + } + + public function addFailure(\PHPUnit_Framework_Test $test, \PHPUnit_Framework_AssertionFailedError $e, $time) + { + $this->trait->addError($test, $e, $time); + } + + public function addIncompleteTest(\PHPUnit_Framework_Test $test, \Exception $e, $time) + { + } + + public function addRiskyTest(\PHPUnit_Framework_Test $test, \Exception $e, $time) + { + } + + public function addSkippedTest(\PHPUnit_Framework_Test $test, \Exception $e, $time) + { + } + + public function endTestSuite(\PHPUnit_Framework_TestSuite $suite) + { + } + + public function startTest(\PHPUnit_Framework_Test $test) + { + } + + public function endTest(\PHPUnit_Framework_Test $test, $time) + { + } + + public static function warning($message) + { + return parent::warning($message); + } + + protected function setUp() + { + TestListenerTrait::$enabledPolyfills = $this->suite->getName(); + } + + protected function tearDown() + { + TestListenerTrait::$enabledPolyfills = false; + } +} diff --git a/lib/symfony/polyfill-util/TestListenerForV6.php b/lib/symfony/polyfill-util/TestListenerForV6.php new file mode 100644 index 000000000..e9e87cbef --- /dev/null +++ b/lib/symfony/polyfill-util/TestListenerForV6.php @@ -0,0 +1,95 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Util; + +use PHPUnit\Framework\AssertionFailedError; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestListener as TestListenerInterface; +use PHPUnit\Framework\TestSuite; +use PHPUnit\Framework\Warning; + +/** + * @author Nicolas Grekas + */ +class TestListenerForV6 extends TestSuite implements TestListenerInterface +{ + private $suite; + private $trait; + + public function __construct(TestSuite $suite = null) + { + if ($suite) { + $this->suite = $suite; + $this->setName($suite->getName().' with polyfills enabled'); + $this->addTest($suite); + } + $this->trait = new TestListenerTrait(); + } + + public function startTestSuite(TestSuite $suite) + { + $this->trait->startTestSuite($suite); + } + + public function addError(Test $test, \Exception $e, $time) + { + $this->trait->addError($test, $e, $time); + } + + public function addWarning(Test $test, Warning $e, $time) + { + } + + public function addFailure(Test $test, AssertionFailedError $e, $time) + { + $this->trait->addError($test, $e, $time); + } + + public function addIncompleteTest(Test $test, \Exception $e, $time) + { + } + + public function addRiskyTest(Test $test, \Exception $e, $time) + { + } + + public function addSkippedTest(Test $test, \Exception $e, $time) + { + } + + public function endTestSuite(TestSuite $suite) + { + } + + public function startTest(Test $test) + { + } + + public function endTest(Test $test, $time) + { + } + + public static function warning($message) + { + return parent::warning($message); + } + + protected function setUp() + { + TestListenerTrait::$enabledPolyfills = $this->suite->getName(); + } + + protected function tearDown() + { + TestListenerTrait::$enabledPolyfills = false; + } +} diff --git a/lib/symfony/polyfill-util/TestListenerForV7.php b/lib/symfony/polyfill-util/TestListenerForV7.php new file mode 100644 index 000000000..b304bfaea --- /dev/null +++ b/lib/symfony/polyfill-util/TestListenerForV7.php @@ -0,0 +1,96 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Util; + +use PHPUnit\Framework\AssertionFailedError; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestListener as TestListenerInterface; +use PHPUnit\Framework\TestSuite; +use PHPUnit\Framework\Warning; +use PHPUnit\Framework\WarningTestCase; + +/** + * @author Ion Bazan + */ +class TestListenerForV7 extends TestSuite implements TestListenerInterface +{ + private $suite; + private $trait; + + public function __construct(TestSuite $suite = null) + { + if ($suite) { + $this->suite = $suite; + $this->setName($suite->getName().' with polyfills enabled'); + $this->addTest($suite); + } + $this->trait = new TestListenerTrait(); + } + + public function startTestSuite(TestSuite $suite): void + { + $this->trait->startTestSuite($suite); + } + + public function addError(Test $test, \Throwable $t, float $time): void + { + $this->trait->addError($test, $t, $time); + } + + public function addWarning(Test $test, Warning $e, float $time): void + { + } + + public function addFailure(Test $test, AssertionFailedError $e, float $time): void + { + $this->trait->addError($test, $e, $time); + } + + public function addIncompleteTest(Test $test, \Throwable $t, float $time): void + { + } + + public function addRiskyTest(Test $test, \Throwable $t, float $time): void + { + } + + public function addSkippedTest(Test $test, \Throwable $t, float $time): void + { + } + + public function endTestSuite(TestSuite $suite): void + { + } + + public function startTest(Test $test): void + { + } + + public function endTest(Test $test, float $time): void + { + } + + public static function warning($message): WarningTestCase + { + return parent::warning($message); + } + + protected function setUp(): void + { + TestListenerTrait::$enabledPolyfills = $this->suite->getName(); + } + + protected function tearDown(): void + { + TestListenerTrait::$enabledPolyfills = false; + } +} diff --git a/lib/symfony/polyfill-util/TestListenerTrait.php b/lib/symfony/polyfill-util/TestListenerTrait.php new file mode 100644 index 000000000..d8047a0cc --- /dev/null +++ b/lib/symfony/polyfill-util/TestListenerTrait.php @@ -0,0 +1,125 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Util; + +/** + * @author Nicolas Grekas + */ +class TestListenerTrait +{ + public static $enabledPolyfills; + + public function startTestSuite($mainSuite) + { + if (null !== self::$enabledPolyfills) { + return; + } + self::$enabledPolyfills = false; + $SkippedTestError = class_exists('PHPUnit\Framework\SkippedTestError') ? 'PHPUnit\Framework\SkippedTestError' : 'PHPUnit_Framework_SkippedTestError'; + + foreach ($mainSuite->tests() as $suite) { + $testClass = $suite->getName(); + if (!$tests = $suite->tests()) { + continue; + } + if (!preg_match('/^(.+)\\\\Tests(\\\\.*)Test$/', $testClass, $m)) { + $mainSuite->addTest(TestListener::warning('Unknown naming convention for '.$testClass)); + continue; + } + if (!class_exists($m[1].$m[2])) { + continue; + } + $testedClass = new \ReflectionClass($m[1].$m[2]); + $bootstrap = new \SplFileObject(\dirname($testedClass->getFileName()).'/bootstrap.php'); + $warnings = array(); + $defLine = null; + + foreach (new \RegexIterator($bootstrap, '/define\(\'/') as $defLine) { + preg_match('/define\(\'(?P.+)\'/', $defLine, $matches); + if (\defined($matches['name'])) { + continue; + } + + try { + eval($defLine); + } catch (\PHPUnit_Framework_Exception $ex){ + $warnings[] = TestListener::warning($ex->getMessage()); + } catch (\PHPUnit\Framework\Exception $ex) { + $warnings[] = TestListener::warning($ex->getMessage()); + } + } + + $bootstrap->rewind(); + + foreach (new \RegexIterator($bootstrap, '/return p\\\\'.$testedClass->getShortName().'::/') as $defLine) { + if (!preg_match('/^\s*function (?P[^\(]++)(?P\(.*\)) \{ (?return p\\\\'.$testedClass->getShortName().'::[^\(]++)(?P\([^\)]*+\)); \}$/', $defLine, $f)) { + $warnings[] = TestListener::warning('Invalid line in bootstrap.php: '.trim($defLine)); + continue; + } + $testNamespace = substr($testClass, 0, strrpos($testClass, '\\')); + if (\function_exists($testNamespace.'\\'.$f['name'])) { + continue; + } + + try { + $r = new \ReflectionFunction($f['name']); + if ($r->isUserDefined()) { + throw new \ReflectionException(); + } + if ('idn_to_ascii' === $f['name'] || 'idn_to_utf8' === $f['name']) { + $defLine = sprintf('return INTL_IDNA_VARIANT_2003 === $variant ? \\%s($domain, $options, $variant) : \\%1$s%s', $f['name'], $f['args']); + } elseif (false !== strpos($f['signature'], '&') && 'idn_to_ascii' !== $f['name'] && 'idn_to_utf8' !== $f['name']) { + $defLine = sprintf('return \\%s%s', $f['name'], $f['args']); + } else { + $defLine = sprintf("return \\call_user_func_array('%s', \\func_get_args())", $f['name']); + } + } catch (\ReflectionException $e) { + $defLine = sprintf("throw new \\{$SkippedTestError}('Internal function not found: %s')", $f['name']); + } + + eval(<<getNamespaceName()} as p; + +function {$f['name']}{$f['signature']} +{ + if ('{$testClass}' === TestListenerTrait::\$enabledPolyfills) { + {$f['return']}{$f['args']}; + } + + {$defLine}; +} +EOPHP + ); + } + if (!$warnings && null === $defLine) { + $warnings[] = new $SkippedTestError('No Polyfills found in bootstrap.php for '.$testClass); + } else { + $mainSuite->addTest(new TestListener($suite)); + } + } + foreach ($warnings as $w) { + $mainSuite->addTest($w); + } + } + + public function addError($test, \Exception $e, $time) + { + if (false !== self::$enabledPolyfills) { + $r = new \ReflectionProperty('Exception', 'message'); + $r->setAccessible(true); + $r->setValue($e, 'Polyfills enabled, '.$r->getValue($e)); + } + } +} diff --git a/lib/symfony/polyfill-util/composer.json b/lib/symfony/polyfill-util/composer.json new file mode 100644 index 000000000..fa9132bd7 --- /dev/null +++ b/lib/symfony/polyfill-util/composer.json @@ -0,0 +1,30 @@ +{ + "name": "symfony/polyfill-util", + "type": "library", + "description": "Symfony utilities for portability of PHP codes", + "keywords": ["polyfill", "shim", "compat", "compatibility"], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=5.3.3" + }, + "autoload": { + "psr-4": { "Symfony\\Polyfill\\Util\\": "" } + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + } +} diff --git a/lib/twig/twig/.gitattributes b/lib/twig/twig/.gitattributes new file mode 100644 index 000000000..3a3ce6e7c --- /dev/null +++ b/lib/twig/twig/.gitattributes @@ -0,0 +1,2 @@ +/tests export-ignore +/phpunit.xml.dist export-ignore