From d8cb8013cbb1c606ab05888c2f447c0233a45893 Mon Sep 17 00:00:00 2001 From: Milan Petrovic Date: Fri, 1 Nov 2024 23:39:38 +0100 Subject: [PATCH] Work in progress. --- .gitignore | 1 + changelog.md | 72 +- composer.json | 5 + .../composer/installed.json => composer.lock | 24 +- core/panel/Queries.php | 2 +- core/printer/kint/load.php | 42 +- .../printer}/prettyprint/PrettyPrint.php | 0 core/printer/prettyprint/load.php | 2 - debugpress.php | 7 +- history.md | 537 ++++++------- readme.txt | 14 +- vendor/kint/autoload.php | 12 - vendor/kint/composer/ClassLoader.php | 572 -------------- vendor/kint/composer/InstalledVersions.php | 352 --------- vendor/kint/composer/LICENSE | 21 - vendor/kint/composer/autoload_classmap.php | 10 - vendor/kint/composer/autoload_files.php | 10 - vendor/kint/composer/autoload_namespaces.php | 9 - vendor/kint/composer/autoload_psr4.php | 10 - vendor/kint/composer/autoload_real.php | 55 -- vendor/kint/composer/autoload_static.php | 40 - vendor/kint/composer/installed.php | 32 - vendor/kint/kint-php/kint/LICENSE | 20 - vendor/kint/kint-php/kint/README.md | 81 -- vendor/kint/kint-php/kint/composer.json | 74 -- vendor/kint/kint-php/kint/init.php | 73 -- vendor/kint/kint-php/kint/init_helpers.php | 88 --- .../kint/resources/compiled/aante-dark.css | 1 - .../kint/resources/compiled/aante-light.css | 1 - .../kint/resources/compiled/microtime.js | 1 - .../kint/resources/compiled/original.css | 1 - .../kint/resources/compiled/plain.css | 1 - .../kint-php/kint/resources/compiled/plain.js | 1 - .../kint-php/kint/resources/compiled/rich.js | 1 - .../kint/resources/compiled/shared.js | 1 - .../resources/compiled/solarized-dark.css | 1 - .../kint/resources/compiled/solarized.css | 1 - vendor/kint/kint-php/kint/src/CallFinder.php | 568 -------------- .../kint-php/kint/src/FacadeInterface.php | 49 -- vendor/kint/kint-php/kint/src/Kint.php | 729 ------------------ .../kint/src/Parser/AbstractPlugin.php | 45 -- .../kint/src/Parser/ArrayLimitPlugin.php | 144 ---- .../kint/src/Parser/ArrayObjectPlugin.php | 65 -- .../kint-php/kint/src/Parser/Base64Plugin.php | 96 --- .../kint-php/kint/src/Parser/BinaryPlugin.php | 51 -- .../kint/src/Parser/BlacklistPlugin.php | 101 --- .../kint/src/Parser/ClassMethodsPlugin.php | 115 --- .../kint/src/Parser/ClassStaticsPlugin.php | 154 ---- .../kint/src/Parser/ClosurePlugin.php | 96 --- .../kint-php/kint/src/Parser/ColorPlugin.php | 65 -- .../Parser/ConstructablePluginInterface.php | 33 - .../kint/src/Parser/DOMDocumentPlugin.php | 356 --------- .../kint/src/Parser/DateTimePlugin.php | 57 -- .../kint-php/kint/src/Parser/EnumPlugin.php | 88 --- .../kint-php/kint/src/Parser/FsPathPlugin.php | 80 -- .../kint/src/Parser/IteratorPlugin.php | 107 --- .../kint-php/kint/src/Parser/JsonPlugin.php | 75 -- .../kint/src/Parser/MicrotimePlugin.php | 107 --- .../kint-php/kint/src/Parser/MysqliPlugin.php | 194 ----- .../kint/kint-php/kint/src/Parser/Parser.php | 655 ---------------- .../kint/src/Parser/PluginInterface.php | 44 -- .../kint-php/kint/src/Parser/ProxyPlugin.php | 73 -- .../kint/src/Parser/SerializePlugin.php | 109 --- .../src/Parser/SimpleXMLElementPlugin.php | 221 ------ .../kint/src/Parser/SplFileInfoPlugin.php | 57 -- .../src/Parser/SplObjectStoragePlugin.php | 56 -- .../kint-php/kint/src/Parser/StreamPlugin.php | 83 -- .../kint-php/kint/src/Parser/TablePlugin.php | 95 --- .../kint/src/Parser/ThrowablePlugin.php | 61 -- .../kint/src/Parser/TimestampPlugin.php | 77 -- .../kint/src/Parser/ToStringPlugin.php | 69 -- .../kint-php/kint/src/Parser/TracePlugin.php | 120 --- .../kint-php/kint/src/Parser/XmlPlugin.php | 152 ---- .../kint/src/Renderer/AbstractRenderer.php | 175 ----- .../kint/src/Renderer/CliRenderer.php | 182 ----- .../kint/src/Renderer/PlainRenderer.php | 237 ------ .../kint/src/Renderer/RendererInterface.php | 57 -- .../kint/src/Renderer/Rich/AbstractPlugin.php | 104 --- .../src/Renderer/Rich/ArrayLimitPlugin.php | 38 - .../kint/src/Renderer/Rich/BinaryPlugin.php | 62 -- .../src/Renderer/Rich/BlacklistPlugin.php | 38 - .../kint/src/Renderer/Rich/CallablePlugin.php | 130 ---- .../kint/src/Renderer/Rich/ClosurePlugin.php | 64 -- .../kint/src/Renderer/Rich/ColorPlugin.php | 102 --- .../src/Renderer/Rich/DepthLimitPlugin.php | 38 - .../Renderer/Rich/MethodDefinitionPlugin.php | 76 -- .../src/Renderer/Rich/MicrotimePlugin.php | 74 -- .../src/Renderer/Rich/PluginInterface.php | 35 - .../src/Renderer/Rich/RecursionPlugin.php | 38 - .../Renderer/Rich/SimpleXMLElementPlugin.php | 56 -- .../kint/src/Renderer/Rich/SourcePlugin.php | 83 -- .../src/Renderer/Rich/TabPluginInterface.php | 35 - .../kint/src/Renderer/Rich/TablePlugin.php | 141 ---- .../src/Renderer/Rich/TimestampPlugin.php | 44 -- .../src/Renderer/Rich/TraceFramePlugin.php | 70 -- .../Renderer/Rich/ValuePluginInterface.php | 35 - .../kint/src/Renderer/RichRenderer.php | 677 ---------------- .../kint/src/Renderer/Text/AbstractPlugin.php | 63 -- .../src/Renderer/Text/ArrayLimitPlugin.php | 38 - .../src/Renderer/Text/BlacklistPlugin.php | 38 - .../src/Renderer/Text/DepthLimitPlugin.php | 38 - .../kint/src/Renderer/Text/EnumPlugin.php | 38 - .../src/Renderer/Text/MicrotimePlugin.php | 130 ---- .../src/Renderer/Text/PluginInterface.php | 38 - .../src/Renderer/Text/RecursionPlugin.php | 38 - .../kint/src/Renderer/Text/TracePlugin.php | 115 --- .../kint/src/Renderer/TextRenderer.php | 391 ---------- vendor/kint/kint-php/kint/src/Utils.php | 296 ------- .../kint/kint-php/kint/src/Zval/BlobValue.php | 201 ----- .../kint-php/kint/src/Zval/ClosureValue.php | 58 -- .../kint-php/kint/src/Zval/DateTimeValue.php | 55 -- .../kint/kint-php/kint/src/Zval/EnumValue.php | 74 -- .../kint-php/kint/src/Zval/InstanceValue.php | 74 -- .../kint-php/kint/src/Zval/MethodValue.php | 228 ------ .../kint/src/Zval/ParameterHoldingTrait.php | 63 -- .../kint-php/kint/src/Zval/ParameterValue.php | 85 -- .../Representation/ColorRepresentation.php | 571 -------------- .../MethodDefinitionRepresentation.php | 76 -- .../MicrotimeRepresentation.php | 73 -- .../Zval/Representation/Representation.php | 73 -- .../Representation/SourceRepresentation.php | 72 -- .../SplFileInfoRepresentation.php | 196 ----- .../kint-php/kint/src/Zval/ResourceValue.php | 51 -- .../kint/src/Zval/SimpleXMLElementValue.php | 54 -- .../kint-php/kint/src/Zval/StreamValue.php | 56 -- .../kint-php/kint/src/Zval/ThrowableValue.php | 52 -- .../kint/src/Zval/TraceFrameValue.php | 107 --- .../kint-php/kint/src/Zval/TraceValue.php | 47 -- vendor/kint/kint-php/kint/src/Zval/Value.php | 266 ------- 129 files changed, 382 insertions(+), 13386 deletions(-) create mode 100644 .gitignore create mode 100644 composer.json rename vendor/kint/composer/installed.json => composer.lock (79%) rename {vendor => core/printer}/prettyprint/PrettyPrint.php (100%) delete mode 100644 vendor/kint/autoload.php delete mode 100644 vendor/kint/composer/ClassLoader.php delete mode 100644 vendor/kint/composer/InstalledVersions.php delete mode 100644 vendor/kint/composer/LICENSE delete mode 100644 vendor/kint/composer/autoload_classmap.php delete mode 100644 vendor/kint/composer/autoload_files.php delete mode 100644 vendor/kint/composer/autoload_namespaces.php delete mode 100644 vendor/kint/composer/autoload_psr4.php delete mode 100644 vendor/kint/composer/autoload_real.php delete mode 100644 vendor/kint/composer/autoload_static.php delete mode 100644 vendor/kint/composer/installed.php delete mode 100644 vendor/kint/kint-php/kint/LICENSE delete mode 100644 vendor/kint/kint-php/kint/README.md delete mode 100644 vendor/kint/kint-php/kint/composer.json delete mode 100644 vendor/kint/kint-php/kint/init.php delete mode 100644 vendor/kint/kint-php/kint/init_helpers.php delete mode 100644 vendor/kint/kint-php/kint/resources/compiled/aante-dark.css delete mode 100644 vendor/kint/kint-php/kint/resources/compiled/aante-light.css delete mode 100644 vendor/kint/kint-php/kint/resources/compiled/microtime.js delete mode 100644 vendor/kint/kint-php/kint/resources/compiled/original.css delete mode 100644 vendor/kint/kint-php/kint/resources/compiled/plain.css delete mode 100644 vendor/kint/kint-php/kint/resources/compiled/plain.js delete mode 100644 vendor/kint/kint-php/kint/resources/compiled/rich.js delete mode 100644 vendor/kint/kint-php/kint/resources/compiled/shared.js delete mode 100644 vendor/kint/kint-php/kint/resources/compiled/solarized-dark.css delete mode 100644 vendor/kint/kint-php/kint/resources/compiled/solarized.css delete mode 100644 vendor/kint/kint-php/kint/src/CallFinder.php delete mode 100644 vendor/kint/kint-php/kint/src/FacadeInterface.php delete mode 100644 vendor/kint/kint-php/kint/src/Kint.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/AbstractPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/ArrayLimitPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/ArrayObjectPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/Base64Plugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/BinaryPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/BlacklistPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/ClassMethodsPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/ClassStaticsPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/ClosurePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/ColorPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/ConstructablePluginInterface.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/DOMDocumentPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/DateTimePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/EnumPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/FsPathPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/IteratorPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/JsonPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/MicrotimePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/MysqliPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/Parser.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/PluginInterface.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/ProxyPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/SerializePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/SimpleXMLElementPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/SplFileInfoPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/SplObjectStoragePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/StreamPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/TablePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/ThrowablePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/TimestampPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/ToStringPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/TracePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Parser/XmlPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/AbstractRenderer.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/CliRenderer.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/PlainRenderer.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/RendererInterface.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/AbstractPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/ArrayLimitPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/BinaryPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/BlacklistPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/CallablePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/ClosurePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/ColorPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/DepthLimitPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/MethodDefinitionPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/MicrotimePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/PluginInterface.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/RecursionPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/SimpleXMLElementPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/SourcePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/TabPluginInterface.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/TablePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/TimestampPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/TraceFramePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Rich/ValuePluginInterface.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/RichRenderer.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Text/AbstractPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Text/ArrayLimitPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Text/BlacklistPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Text/DepthLimitPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Text/EnumPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Text/MicrotimePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Text/PluginInterface.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Text/RecursionPlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/Text/TracePlugin.php delete mode 100644 vendor/kint/kint-php/kint/src/Renderer/TextRenderer.php delete mode 100644 vendor/kint/kint-php/kint/src/Utils.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/BlobValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/ClosureValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/DateTimeValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/EnumValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/InstanceValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/MethodValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/ParameterHoldingTrait.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/ParameterValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/Representation/ColorRepresentation.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/Representation/MethodDefinitionRepresentation.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/Representation/MicrotimeRepresentation.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/Representation/Representation.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/Representation/SourceRepresentation.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/Representation/SplFileInfoRepresentation.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/ResourceValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/SimpleXMLElementValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/StreamValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/ThrowableValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/TraceFrameValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/TraceValue.php delete mode 100644 vendor/kint/kint-php/kint/src/Zval/Value.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..48b8bf9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +vendor/ diff --git a/changelog.md b/changelog.md index 2b9dfd7..8053533 100644 --- a/changelog.md +++ b/changelog.md @@ -1,39 +1,33 @@ -# DebugPress - -## Changelog - -### Version: 3.9.2 (2024.08.23) - -* **fix** one more issue with the access to OPCache status information - -### Version: 3.9.1 (2024.08.19) - -* **fix** problem with the Tracker when closure makes a call - -### Version: 3.9 (2024.05.14) - -* **edit** few more updates and improvements -* **edit** replacement of some native with WordPress functions -* **edit** various small updates and tweaks -* **edit** Kint Pretty Print Library 5.1.1 -* **fix** various PHP notices related to PHP 8.1 and newer - -### Version: 3.8 (2024.04.24) - -* **edit** few minor tweaks and changes -* **edit** updates to the plugin readme file -* **edit** small changes related to the PHP 8.3 compatibility -* **fix** various PHP notices related to PHP 8.1 and newer - -### Version: 3.7 (2024.01.23) - -* **edit** changes related to WordPress and PHP code standards -* **edit** updated Query object for page query conditionals -* **edit** updated Dev4Press Library Query detection versions -* **fix** few compare statements written as assignment - -### Version: 3.6 (2023.12.15) - -* **edit** Increase Kint Library depth levels to 12 -* **edit** Kint Pretty Print Library 5.1.0 -* **fix** Small issue with getting the OPCache version when not allowed by the server +# DebugPress + +## Changelog + +### Version: 4.0 (2024.11.02) + +* **new** tested with WordPress 6.7 +* **new** tested and compatible with `PHP` 8.4 RC 3 +* **new** using composer to load `Kint` library +* **new** various constants for KINT library control + +### Version: 3.9.2 (2024.08.23) + +* **fix** one more issue with the access to OPCache status information + +### Version: 3.9.1 (2024.08.19) + +* **fix** problem with the Tracker when closure makes a call + +### Version: 3.9 (2024.05.14) + +* **edit** few more updates and improvements +* **edit** replacement of some native with WordPress functions +* **edit** various small updates and tweaks +* **edit** Kint Pretty Print Library 5.1.1 +* **fix** various PHP notices related to PHP 8.1 and newer + +### Version: 3.8 (2024.04.24) + +* **edit** few minor tweaks and changes +* **edit** updates to the plugin readme file +* **edit** small changes related to the PHP 8.3 compatibility +* **fix** various PHP notices related to PHP 8.1 and newer diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..cf0c998 --- /dev/null +++ b/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "kint-php/kint": "5.1.1" + } +} diff --git a/vendor/kint/composer/installed.json b/composer.lock similarity index 79% rename from vendor/kint/composer/installed.json rename to composer.lock index 28c49da..7df7468 100644 --- a/vendor/kint/composer/installed.json +++ b/composer.lock @@ -1,9 +1,14 @@ { + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "d672a3162baeea4984c6f28271dd5c8b", "packages": [ { "name": "kint-php/kint", "version": "5.1.1", - "version_normalized": "5.1.1.0", "source": { "type": "git", "url": "https://github.com/kint-php/kint.git", @@ -30,9 +35,7 @@ "kint-php/kint-helpers": "Provides extra helper functions", "kint-php/kint-twig": "Provides d() and s() functions in twig templates" }, - "time": "2024-04-26T14:20:09+00:00", "type": "library", - "installation-source": "dist", "autoload": { "files": [ "init.php" @@ -66,11 +69,16 @@ "issues": "https://github.com/kint-php/kint/issues", "source": "https://github.com/kint-php/kint/tree/5.1.1" }, - "install-path": "../kint-php/kint" + "time": "2024-04-26T14:20:09+00:00" } ], - "dev": true, - "dev-package-names": [ - "kint-php/kint" - ] + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.3.0" } diff --git a/core/panel/Queries.php b/core/panel/Queries.php index c0735a8..2b4e639 100644 --- a/core/panel/Queries.php +++ b/core/panel/Queries.php @@ -363,7 +363,7 @@ private function _parse_types( $query, $qi ) { } private function _prepare_library() { - $list = array( '41', '42', '43', '44', '45', '46', '47', '48', '49', '50' ); + $list = array( '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52' ); foreach ( $list as $code ) { $class = 'Dev4Press\v' . $code . '\Core\Helpers\DB'; diff --git a/core/printer/kint/load.php b/core/printer/kint/load.php index 6ba5f8e..3f15cfa 100644 --- a/core/printer/kint/load.php +++ b/core/printer/kint/load.php @@ -1,18 +1,50 @@ */ -const DEBUGPRESS_VERSION = '3.9.2'; +const DEBUGPRESS_VERSION = '4.0'; const DEBUGPRESS_FILE = __FILE__; const DEBUGPRESS_PLUGIN_PATH = __DIR__ . '/'; @@ -55,6 +55,7 @@ return; } +require_once DEBUGPRESS_PLUGIN_PATH . 'vendor/autoload.php'; require_once DEBUGPRESS_PLUGIN_PATH . 'core/autoload.php'; require_once DEBUGPRESS_PLUGIN_PATH . 'core/bridge.php'; require_once DEBUGPRESS_PLUGIN_PATH . 'core/functions.php'; diff --git a/history.md b/history.md index e9eb1b3..df7aeff 100644 --- a/history.md +++ b/history.md @@ -1,262 +1,275 @@ -# DebugPress - -## Changelog - -### Version: 3.5.1 (2023.11.18) - -* **fix** Internal debug to error log remain in the source code - -### Version: 3.5 (2023.11.06) - -* **new** Tracker logs the trace for each HTTP API request made -* **new** Tracker executes action for every completed HTTP API request -* **new** AJAX Tracker executes action for every completed Admin AJAX request -* **new** HTTP API log shows the trace and timestamps for each request -* **new** Popup tools links to the coreActivity events and logs -* **new** Popup header shows icons for tabs with labels with improved sizing -* **new** Popup tabs show label or icon only, depending on the screen size -* **fix** Trace information for tracker HTTP API request was lost - -### Version: 3.4.1 (2023.10.15) - -* **fix** Function `apache_get_version` not working on every server - -### Version: 3.4 (2023.10.06) - -* **new** Updated some plugin system requirements -* **edit** KINT now loads own helper d() and s() functions -* **edit** Various styling improvements and tweaks -* **edit** Improved organization of the print libraries now moved to vendor directory -* **fix** MySQL tools panel showing error if the server information can't be retrieved -* **fix** Problem with the Info method for getting server IP in some cases -* **fix** Few more issues with Info method for getting database information - -### Version: 3.3 (2023.07.03) - -* **new** Support for more versions of the Dev4Press Library -* **new** System tab shows additional information about Apache -* **new** System tab shows WordPress database overview information -* **new** Remember open/close sections on some panels -* **edit** Some changes to the displayed System and Basic tabs -* **edit** Various small tweaks to the plugin PHP code -* **edit** Kint Pretty Print Library 5.0.7 -* **fix** Few issues with Info method for getting database information - -### Version: 3.2 (2023.06.22) - -* **new** Support for the deprecated hook run handling -* **new** Execute actions when each error has been logged -* **new** Deprecated tracking now logs the caller information -* **edit** Improved caller trace cleanup for error calls -* **edit** Display more relevant error source file and log for errors -* **edit** Errors tab moved to the end of the display order -* **edit** Changed tab order for several other debugger tabs -* **edit** Various small tweaks to the plugin PHP code -* **fix** Fatal error tracking calling default handler directly -* **fix** Sometimes errors not getting displayed in the Error tab - -### Version: 3.1 (2023.06.14) - -* **new** Identify SQL queries sources for Dev4Press plugins -* **new** Hooks panel can filter by the WordPress Admin callbacks -* **edit** Improved method for displaying button activation flags -* **edit** Many improvements to escaping variables for display -* **edit** Better optimized included images for logos -* **edit** Various small tweaks to the plugin PHP code -* **edit** Various small tweaks to the main JavaScript file -* **fix** Hooks panel not filtering MU Plugins - -### Version: 3.0.1 (2023.05.05) - -* **edit** Minor updates to the plugin readme file -* **edit** Various improvements to the PHP core code -* **fix** Warnings related to OPCache for some PHP configurations - -### Version: 3.0 (2023.04.03) - -* **new** Modify debugger popup layout and size -* **new** Modify debugger popup modal state -* **new** Modify debugger popup opening state (auto, manual, remember state) -* **new** Save active tab and show it first on next page load -* **new** Trigger debugger popup display via keyboard shortcut -* **new** Access Key option to enable loading on demand via URL -* **new** Settings block and information for the On Demand access -* **new** Settings block and information for shortcut key activation -* **new** Admin bar button has basic stats dropdown menu -* **new** Plugin settings Help tab with On Demand information -* **new** Content tab split into Content and Rewrite tabs -* **new** Basic tab shows currently active theme information -* **new** Admin tab content moved to the Request tab -* **new** Refreshed the debugger look with new icons -* **new** Function to write log entry into custom info/log file -* **new** `IP` class mostly rewritten and expanded -* **new** Mousetrap Javascript v1.6.5 library -* **edit** Few improvements to the plugin init and load process -* **edit** Various improvements to the PHP core code -* **edit** Changes to some plugin default settings -* **edit** `IP` class expanded Cloudflare IP range -* **edit** Smart Animated Popup v2.0 library -* **del** removed the dedicated Admin tab -* **fix** Few issues with the `IP` class range methods - -### Version: 2.2 (2023.02.03) - -* **new** Updated some plugin system requirements -* **new** Server panel shows PHP Include Path value -* **new** Server panel shows Memcache/Memcached status -* **new** Server panel shows all loaded extensions -* **new** Server panel shows expanded MySQL information -* **edit** Various improvements to some panels display conditions -* **fix** Several more issues related to changes in PHP 8.1 and 8.2 -* **fix** Issue with detection of the PEAR System.php file - -### Version: 2.1 (2022.12.30) - -* **new** Tested with PHP 8.2 and WordPress 6.1 -* **new** Query panel shows current post and metadata for that post -* **edit** Improvements to the Query panel and organization of displayed data -* **edit** Various language syntax improvements and changes -* **edit** Kint Pretty Print Library 5.0.1 -* **fix** Several issues related to changes in PHP 8.2 -* **fix** Few minor issues with the layouts in the debugger panels -* **fix** Missing semicolon in one instance in JavaScript - -### Version: 2.0 (2022.08.31) - -* **new** Prevent loading of the debugger panel for REST request -* **new** Default PrettyPrint library has own CSS file -* **new** Debugger now loads on the WordPress login pages -* **new** Kint set as default pretty print library for new installations -* **edit** Improvements to the plugin loading process -* **edit** Various minor updates and tweaks -* **edit** Kint Pretty Print Library 4.2 -* **fix** Plugin can break some REST request responses - -### Version: 1.9 (2022.05.15) - -* **new** Tested with WordPress 6.0 -* **edit** Several minor updates and improvements -* **edit** Kint Pretty Print Library 4.1.1 -* **fix** Some layout issues with the tables - -### Version: 1.8 (2021.09.30) - -* **new** requires WordPress 5.1 or newer -* **new** activation button indicator for number of stored object -* **edit** few more compatibility changes to the JavaScript code -* **edit** OPCache status support for server restricted access -* **fix** OPCache warnings when access is restricted on server - -### Version: 1.7 (2021.04.03) - -* **new** debugger panel - Plugins -* **new** plugins panel - log specially formatted objects from plugins -* **new** settings panel shows Tracking tab -* **new** settings group to select Pretty Print engine to use -* **new** third party pretty print Engine: Kint -* **edit** various improvements to the debugger popup styling -* **fix** few Info methods have wrong names -* **fix** few warnings thrown by the Tracker object - -### Version: 1.6 (2021.01.06) - -* **new** requires PHP 7.0 or newer -* **new** requires WordPress 5.0 or newer -* **new** debugger panel - Roles -* **new** roles panel - shows registered user roles -* **new** changed the loading order and activation priority -* **edit** few improvements to the readme file -* **fix** tools panel - broken links to all the plugin panels -* **fix** tracker loading causes' problem with some plugins changing user roles - -### Version: 1.5 (2020.11.14) - -* **new** debugger panel - Tools -* **new** tools panel - links to the individual plugin info panels -* **new** tools panel - links to the individual WordPress tools panels -* **new** tools panel - links to test with Google PageSpeed Insights -* **new** tools panel - link to test with GTMetrix website -* **new** contextual help tab for the plugin settings -* **new** contextual help includes information about debug mode activation -* **edit** various styling changes and tweaks -* **fix** few minor typos in various parts of the code -* **fix** few external links were missing REL noopener attribute -* **fix** minor issue with CMS version INFO method - -### Version: 1.4.1 (2020.11.06) - -* **edit** support for the edge case HTTP request missing valid URL -* **fix** HTTP panel could still fail in some edge case requests - -### Version: 1.4 (2020.11.03) - -* **edit** improvements to the way HTTP panel displays logged data -* **fix** HTTP panel shows duplicated content type entry -* **fix** HTTP panel attempts to display data that doesn't exist -* **fix** error log loading fails due to file offset calculation -* **fix** problem with returning error log via AJAX method - -### Version: 1.3.2 (2020.10.03) - -* **new** link to plugin Tools (Info) page added to Debugger popup footer -* **edit** improvements to documentation for pretty print functions -* **edit** renamed existing System class to Server for potential file name conflict -* **fix** debuglog tab doesn't scroll to the end of the list after the list is loaded -* **fix** test for Pear presence can throw warnings on some hosts - -### Version: 1.3.1 (2020.10.01) - -* **edit** minor changes to the main plugin class -* **fix** one constant was not defined - -### Version: 1.3 (2020.10.01) - -* **new** additional Info page added into WordPress admin Tools -* **new** tools info page shows the content of PHP Info -* **new** tools info page shows the content of OPCache Info -* **new** tools info page shows the content of MySQL Variables -* **new** plugin settings panel uses tabbed interface to organize settings -* **new** option to control AJAX tracking data save into debug.log -* **new** filters to control AJAX tracking activity and data returned -* **new** filter to control every plugin settings returned value -* **new** ability to print SQL formatted string for the user stored queries -* **new** improved documentation for all the functions -* **edit** refactored functions and improved the functions' organization -* **edit** refactored pretty print function to use different name and classes -* **edit** uniform return of rendered results from ErrorFormat class -* **edit** expanded plugin readme.txt and added new screenshots -* **removed** several unused methods in the ErrorFormat class - -### Version: 1.2.1 (2020.09.27) - -* **edit** various improvements to errors and warnings tracking handlers -* **fix** missing argument for the deprecated tracking handler - -### Version: 1.2 (2020.09.25) - -* **new** debugger activator: show number of captured HTTP API calls -* **new** debugger Log panel: renamed to Store -* **new** debugger Log panel: rewritten rendering to match other panels -* **new** debugger HTTP tab: shows number of calls in the tab button -* **new** settings to control AJAX calls tracking on active page -* **new** settings to control errors and warnings tracking -* **edit** various minor improvements and changes -* **fix** wrong class name in the backtrace tracker processor -* **fix** few small issues with the deprecated tracker processor -* **fix** several issues with displaying AJAX calls results - -### Version: 1.1 (2020.09.23) - -* **new** debugger panel - Debug Log -* **new** using CSS variables for some debugger styling -* **new** filters to modify CSS variables -* **new** improved the look of the plugin settings page -* **edit** expanded some information for plugin settings -* **edit** changed plugins own actions and filters for uniformity -* **edit** many improvements to the debugger styling -* **edit** various improvements to the SCSS organization -* **edit** various tweaks and changes - -### Version: 1.0 (2020.09.15) - -* First official release +# DebugPress + +## Changelog + +### Version: 3.7 (2024.01.23) + +* **edit** changes related to WordPress and PHP code standards +* **edit** updated Query object for page query conditionals +* **edit** updated Dev4Press Library Query detection versions +* **fix** few compare statements written as assignment + +### Version: 3.6 (2023.12.15) + +* **edit** Increase Kint Library depth levels to 12 +* **edit** Kint Pretty Print Library 5.1.0 +* **fix** Small issue with getting the OPCache version when not allowed by the server + +### Version: 3.5.1 (2023.11.18) + +* **fix** Internal debug to error log remain in the source code + +### Version: 3.5 (2023.11.06) + +* **new** Tracker logs the trace for each HTTP API request made +* **new** Tracker executes action for every completed HTTP API request +* **new** AJAX Tracker executes action for every completed Admin AJAX request +* **new** HTTP API log shows the trace and timestamps for each request +* **new** Popup tools links to the coreActivity events and logs +* **new** Popup header shows icons for tabs with labels with improved sizing +* **new** Popup tabs show label or icon only, depending on the screen size +* **fix** Trace information for tracker HTTP API request was lost + +### Version: 3.4.1 (2023.10.15) + +* **fix** Function `apache_get_version` not working on every server + +### Version: 3.4 (2023.10.06) + +* **new** Updated some plugin system requirements +* **edit** KINT now loads own helper d() and s() functions +* **edit** Various styling improvements and tweaks +* **edit** Improved organization of the print libraries now moved to vendor directory +* **fix** MySQL tools panel showing error if the server information can't be retrieved +* **fix** Problem with the Info method for getting server IP in some cases +* **fix** Few more issues with Info method for getting database information + +### Version: 3.3 (2023.07.03) + +* **new** Support for more versions of the Dev4Press Library +* **new** System tab shows additional information about Apache +* **new** System tab shows WordPress database overview information +* **new** Remember open/close sections on some panels +* **edit** Some changes to the displayed System and Basic tabs +* **edit** Various small tweaks to the plugin PHP code +* **edit** Kint Pretty Print Library 5.0.7 +* **fix** Few issues with Info method for getting database information + +### Version: 3.2 (2023.06.22) + +* **new** Support for the deprecated hook run handling +* **new** Execute actions when each error has been logged +* **new** Deprecated tracking now logs the caller information +* **edit** Improved caller trace cleanup for error calls +* **edit** Display more relevant error source file and log for errors +* **edit** Errors tab moved to the end of the display order +* **edit** Changed tab order for several other debugger tabs +* **edit** Various small tweaks to the plugin PHP code +* **fix** Fatal error tracking calling default handler directly +* **fix** Sometimes errors not getting displayed in the Error tab + +### Version: 3.1 (2023.06.14) + +* **new** Identify SQL queries sources for Dev4Press plugins +* **new** Hooks panel can filter by the WordPress Admin callbacks +* **edit** Improved method for displaying button activation flags +* **edit** Many improvements to escaping variables for display +* **edit** Better optimized included images for logos +* **edit** Various small tweaks to the plugin PHP code +* **edit** Various small tweaks to the main JavaScript file +* **fix** Hooks panel not filtering MU Plugins + +### Version: 3.0.1 (2023.05.05) + +* **edit** Minor updates to the plugin readme file +* **edit** Various improvements to the PHP core code +* **fix** Warnings related to OPCache for some PHP configurations + +### Version: 3.0 (2023.04.03) + +* **new** Modify debugger popup layout and size +* **new** Modify debugger popup modal state +* **new** Modify debugger popup opening state (auto, manual, remember state) +* **new** Save active tab and show it first on next page load +* **new** Trigger debugger popup display via keyboard shortcut +* **new** Access Key option to enable loading on demand via URL +* **new** Settings block and information for the On Demand access +* **new** Settings block and information for shortcut key activation +* **new** Admin bar button has basic stats dropdown menu +* **new** Plugin settings Help tab with On Demand information +* **new** Content tab split into Content and Rewrite tabs +* **new** Basic tab shows currently active theme information +* **new** Admin tab content moved to the Request tab +* **new** Refreshed the debugger look with new icons +* **new** Function to write log entry into custom info/log file +* **new** `IP` class mostly rewritten and expanded +* **new** Mousetrap Javascript v1.6.5 library +* **edit** Few improvements to the plugin init and load process +* **edit** Various improvements to the PHP core code +* **edit** Changes to some plugin default settings +* **edit** `IP` class expanded Cloudflare IP range +* **edit** Smart Animated Popup v2.0 library +* **del** removed the dedicated Admin tab +* **fix** Few issues with the `IP` class range methods + +### Version: 2.2 (2023.02.03) + +* **new** Updated some plugin system requirements +* **new** Server panel shows PHP Include Path value +* **new** Server panel shows Memcache/Memcached status +* **new** Server panel shows all loaded extensions +* **new** Server panel shows expanded MySQL information +* **edit** Various improvements to some panels display conditions +* **fix** Several more issues related to changes in PHP 8.1 and 8.2 +* **fix** Issue with detection of the PEAR System.php file + +### Version: 2.1 (2022.12.30) + +* **new** Tested with PHP 8.2 and WordPress 6.1 +* **new** Query panel shows current post and metadata for that post +* **edit** Improvements to the Query panel and organization of displayed data +* **edit** Various language syntax improvements and changes +* **edit** Kint Pretty Print Library 5.0.1 +* **fix** Several issues related to changes in PHP 8.2 +* **fix** Few minor issues with the layouts in the debugger panels +* **fix** Missing semicolon in one instance in JavaScript + +### Version: 2.0 (2022.08.31) + +* **new** Prevent loading of the debugger panel for REST request +* **new** Default PrettyPrint library has own CSS file +* **new** Debugger now loads on the WordPress login pages +* **new** Kint set as default pretty print library for new installations +* **edit** Improvements to the plugin loading process +* **edit** Various minor updates and tweaks +* **edit** Kint Pretty Print Library 4.2 +* **fix** Plugin can break some REST request responses + +### Version: 1.9 (2022.05.15) + +* **new** Tested with WordPress 6.0 +* **edit** Several minor updates and improvements +* **edit** Kint Pretty Print Library 4.1.1 +* **fix** Some layout issues with the tables + +### Version: 1.8 (2021.09.30) + +* **new** requires WordPress 5.1 or newer +* **new** activation button indicator for number of stored object +* **edit** few more compatibility changes to the JavaScript code +* **edit** OPCache status support for server restricted access +* **fix** OPCache warnings when access is restricted on server + +### Version: 1.7 (2021.04.03) + +* **new** debugger panel - Plugins +* **new** plugins panel - log specially formatted objects from plugins +* **new** settings panel shows Tracking tab +* **new** settings group to select Pretty Print engine to use +* **new** third party pretty print Engine: Kint +* **edit** various improvements to the debugger popup styling +* **fix** few Info methods have wrong names +* **fix** few warnings thrown by the Tracker object + +### Version: 1.6 (2021.01.06) + +* **new** requires PHP 7.0 or newer +* **new** requires WordPress 5.0 or newer +* **new** debugger panel - Roles +* **new** roles panel - shows registered user roles +* **new** changed the loading order and activation priority +* **edit** few improvements to the readme file +* **fix** tools panel - broken links to all the plugin panels +* **fix** tracker loading causes' problem with some plugins changing user roles + +### Version: 1.5 (2020.11.14) + +* **new** debugger panel - Tools +* **new** tools panel - links to the individual plugin info panels +* **new** tools panel - links to the individual WordPress tools panels +* **new** tools panel - links to test with Google PageSpeed Insights +* **new** tools panel - link to test with GTMetrix website +* **new** contextual help tab for the plugin settings +* **new** contextual help includes information about debug mode activation +* **edit** various styling changes and tweaks +* **fix** few minor typos in various parts of the code +* **fix** few external links were missing REL noopener attribute +* **fix** minor issue with CMS version INFO method + +### Version: 1.4.1 (2020.11.06) + +* **edit** support for the edge case HTTP request missing valid URL +* **fix** HTTP panel could still fail in some edge case requests + +### Version: 1.4 (2020.11.03) + +* **edit** improvements to the way HTTP panel displays logged data +* **fix** HTTP panel shows duplicated content type entry +* **fix** HTTP panel attempts to display data that doesn't exist +* **fix** error log loading fails due to file offset calculation +* **fix** problem with returning error log via AJAX method + +### Version: 1.3.2 (2020.10.03) + +* **new** link to plugin Tools (Info) page added to Debugger popup footer +* **edit** improvements to documentation for pretty print functions +* **edit** renamed existing System class to Server for potential file name conflict +* **fix** debuglog tab doesn't scroll to the end of the list after the list is loaded +* **fix** test for Pear presence can throw warnings on some hosts + +### Version: 1.3.1 (2020.10.01) + +* **edit** minor changes to the main plugin class +* **fix** one constant was not defined + +### Version: 1.3 (2020.10.01) + +* **new** additional Info page added into WordPress admin Tools +* **new** tools info page shows the content of PHP Info +* **new** tools info page shows the content of OPCache Info +* **new** tools info page shows the content of MySQL Variables +* **new** plugin settings panel uses tabbed interface to organize settings +* **new** option to control AJAX tracking data save into debug.log +* **new** filters to control AJAX tracking activity and data returned +* **new** filter to control every plugin settings returned value +* **new** ability to print SQL formatted string for the user stored queries +* **new** improved documentation for all the functions +* **edit** refactored functions and improved the functions' organization +* **edit** refactored pretty print function to use different name and classes +* **edit** uniform return of rendered results from ErrorFormat class +* **edit** expanded plugin readme.txt and added new screenshots +* **removed** several unused methods in the ErrorFormat class + +### Version: 1.2.1 (2020.09.27) + +* **edit** various improvements to errors and warnings tracking handlers +* **fix** missing argument for the deprecated tracking handler + +### Version: 1.2 (2020.09.25) + +* **new** debugger activator: show number of captured HTTP API calls +* **new** debugger Log panel: renamed to Store +* **new** debugger Log panel: rewritten rendering to match other panels +* **new** debugger HTTP tab: shows number of calls in the tab button +* **new** settings to control AJAX calls tracking on active page +* **new** settings to control errors and warnings tracking +* **edit** various minor improvements and changes +* **fix** wrong class name in the backtrace tracker processor +* **fix** few small issues with the deprecated tracker processor +* **fix** several issues with displaying AJAX calls results + +### Version: 1.1 (2020.09.23) + +* **new** debugger panel - Debug Log +* **new** using CSS variables for some debugger styling +* **new** filters to modify CSS variables +* **new** improved the look of the plugin settings page +* **edit** expanded some information for plugin settings +* **edit** changed plugins own actions and filters for uniformity +* **edit** many improvements to the debugger styling +* **edit** various improvements to the SCSS organization +* **edit** various tweaks and changes + +### Version: 1.0 (2020.09.15) + +* First official release diff --git a/readme.txt b/readme.txt index b6e0812..6d855e1 100644 --- a/readme.txt +++ b/readme.txt @@ -2,10 +2,10 @@ Contributors: GDragoN Donate link: https://buymeacoffee.com/millan Tags: dev4press, query monitor, debugging, development, ajax monitor -Stable tag: 3.9.2 +Stable tag: 4.0 Requires at least: 5.5 -Tested up to: 6.6 -Requires PHP: 7.3 +Tested up to: 6.7 +Requires PHP: 7.4 Requires CP: 2.0 License: GPLv3 or later License URI: https://www.gnu.org/licenses/gpl-3.0.html @@ -89,7 +89,7 @@ To get help with the plugin, you can use WordPress.org support forums, or you ca == Installation == = General Requirements = -* PHP: 7.3 or newer +* PHP: 7.4 or newer * Tested with the latest PHP, version 8.3 = WordPress Requirements = @@ -118,6 +118,12 @@ Yes. Once the popup is open, you will find the Layout icon next to the button to Open the WordPress 'Settings' menu, there you will find 'DebugPress' panel. == Changelog == += 4.0 (2024.11.02) = +* New: tested with WordPress 6.7 +* New: tested and compatible with `PHP` 8.4 RC 3 +* New: using composer to load `Kint` library +* New: various constants for KINT library control + = 3.9.2 (2024.08.23) = * Fix: one more issue with the access to OPCache status information diff --git a/vendor/kint/autoload.php b/vendor/kint/autoload.php deleted file mode 100644 index daba6fc..0000000 --- a/vendor/kint/autoload.php +++ /dev/null @@ -1,12 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see https://www.php-fig.org/psr/psr-0/ - * @see https://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - /** @var ?string */ - private $vendorDir; - - // PSR-4 - /** - * @var array[] - * @psalm-var array> - */ - private $prefixLengthsPsr4 = array(); - /** - * @var array[] - * @psalm-var array> - */ - private $prefixDirsPsr4 = array(); - /** - * @var array[] - * @psalm-var array - */ - private $fallbackDirsPsr4 = array(); - - // PSR-0 - /** - * @var array[] - * @psalm-var array> - */ - private $prefixesPsr0 = array(); - /** - * @var array[] - * @psalm-var array - */ - private $fallbackDirsPsr0 = array(); - - /** @var bool */ - private $useIncludePath = false; - - /** - * @var string[] - * @psalm-var array - */ - private $classMap = array(); - - /** @var bool */ - private $classMapAuthoritative = false; - - /** - * @var bool[] - * @psalm-var array - */ - private $missingClasses = array(); - - /** @var ?string */ - private $apcuPrefix; - - /** - * @var self[] - */ - private static $registeredLoaders = array(); - - /** - * @param ?string $vendorDir - */ - public function __construct($vendorDir = null) - { - $this->vendorDir = $vendorDir; - } - - /** - * @return string[] - */ - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); - } - - return array(); - } - - /** - * @return array[] - * @psalm-return array> - */ - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - /** - * @return array[] - * @psalm-return array - */ - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - /** - * @return array[] - * @psalm-return array - */ - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - /** - * @return string[] Array of classname => path - * @psalm-return array - */ - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param string[] $classMap Class to filename map - * @psalm-param array $classMap - * - * @return void - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param string[]|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - * - * @return void - */ - public function add($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - (array) $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param string[]|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - * - * @return void - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - (array) $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param string[]|string $paths The PSR-0 base directories - * - * @return void - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param string[]|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - * - * @return void - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - * - * @return void - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - * - * @return void - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - * - * @return void - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - * - * @return void - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - - if (null === $this->vendorDir) { - return; - } - - if ($prepend) { - self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; - } else { - unset(self::$registeredLoaders[$this->vendorDir]); - self::$registeredLoaders[$this->vendorDir] = $this; - } - } - - /** - * Unregisters this instance as an autoloader. - * - * @return void - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - - if (null !== $this->vendorDir) { - unset(self::$registeredLoaders[$this->vendorDir]); - } - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return true|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - includeFile($file); - - return true; - } - - return null; - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - /** - * Returns the currently registered loaders indexed by their corresponding vendor directories. - * - * @return self[] - */ - public static function getRegisteredLoaders() - { - return self::$registeredLoaders; - } - - /** - * @param string $class - * @param string $ext - * @return string|false - */ - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; - if (isset($this->prefixDirsPsr4[$search])) { - $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); - foreach ($this->prefixDirsPsr4[$search] as $dir) { - if (file_exists($file = $dir . $pathEnd)) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } -} - -/** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - * - * @param string $file - * @return void - * @private - */ -function includeFile($file) -{ - include $file; -} diff --git a/vendor/kint/composer/InstalledVersions.php b/vendor/kint/composer/InstalledVersions.php deleted file mode 100644 index c6b54af..0000000 --- a/vendor/kint/composer/InstalledVersions.php +++ /dev/null @@ -1,352 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer; - -use Composer\Autoload\ClassLoader; -use Composer\Semver\VersionParser; - -/** - * This class is copied in every Composer installed project and available to all - * - * See also https://getcomposer.org/doc/07-runtime.md#installed-versions - * - * To require its presence, you can require `composer-runtime-api ^2.0` - * - * @final - */ -class InstalledVersions -{ - /** - * @var mixed[]|null - * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null - */ - private static $installed; - - /** - * @var bool|null - */ - private static $canGetVendors; - - /** - * @var array[] - * @psalm-var array}> - */ - private static $installedByVendor = array(); - - /** - * Returns a list of all package names which are present, either by being installed, replaced or provided - * - * @return string[] - * @psalm-return list - */ - public static function getInstalledPackages() - { - $packages = array(); - foreach (self::getInstalled() as $installed) { - $packages[] = array_keys($installed['versions']); - } - - if (1 === \count($packages)) { - return $packages[0]; - } - - return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); - } - - /** - * Returns a list of all package names with a specific type e.g. 'library' - * - * @param string $type - * @return string[] - * @psalm-return list - */ - public static function getInstalledPackagesByType($type) - { - $packagesByType = array(); - - foreach (self::getInstalled() as $installed) { - foreach ($installed['versions'] as $name => $package) { - if (isset($package['type']) && $package['type'] === $type) { - $packagesByType[] = $name; - } - } - } - - return $packagesByType; - } - - /** - * Checks whether the given package is installed - * - * This also returns true if the package name is provided or replaced by another package - * - * @param string $packageName - * @param bool $includeDevRequirements - * @return bool - */ - public static function isInstalled($packageName, $includeDevRequirements = true) - { - foreach (self::getInstalled() as $installed) { - if (isset($installed['versions'][$packageName])) { - return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']); - } - } - - return false; - } - - /** - * Checks whether the given package satisfies a version constraint - * - * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: - * - * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') - * - * @param VersionParser $parser Install composer/semver to have access to this class and functionality - * @param string $packageName - * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package - * @return bool - */ - public static function satisfies(VersionParser $parser, $packageName, $constraint) - { - $constraint = $parser->parseConstraints($constraint); - $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); - - return $provided->matches($constraint); - } - - /** - * Returns a version constraint representing all the range(s) which are installed for a given package - * - * It is easier to use this via isInstalled() with the $constraint argument if you need to check - * whether a given version of a package is installed, and not just whether it exists - * - * @param string $packageName - * @return string Version constraint usable with composer/semver - */ - public static function getVersionRanges($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - $ranges = array(); - if (isset($installed['versions'][$packageName]['pretty_version'])) { - $ranges[] = $installed['versions'][$packageName]['pretty_version']; - } - if (array_key_exists('aliases', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); - } - if (array_key_exists('replaced', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); - } - if (array_key_exists('provided', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); - } - - return implode(' || ', $ranges); - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present - */ - public static function getVersion($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['version'])) { - return null; - } - - return $installed['versions'][$packageName]['version']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present - */ - public static function getPrettyVersion($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['pretty_version'])) { - return null; - } - - return $installed['versions'][$packageName]['pretty_version']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference - */ - public static function getReference($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['reference'])) { - return null; - } - - return $installed['versions'][$packageName]['reference']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. - */ - public static function getInstallPath($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @return array - * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} - */ - public static function getRootPackage() - { - $installed = self::getInstalled(); - - return $installed[0]['root']; - } - - /** - * Returns the raw installed.php data for custom implementations - * - * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. - * @return array[] - * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} - */ - public static function getRawData() - { - @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); - - if (null === self::$installed) { - // only require the installed.php file if this file is loaded from its dumped location, - // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C') { - self::$installed = include __DIR__ . '/installed.php'; - } else { - self::$installed = array(); - } - } - - return self::$installed; - } - - /** - * Returns the raw data of all installed.php which are currently loaded for custom implementations - * - * @return array[] - * @psalm-return list}> - */ - public static function getAllRawData() - { - return self::getInstalled(); - } - - /** - * Lets you reload the static array from another file - * - * This is only useful for complex integrations in which a project needs to use - * this class but then also needs to execute another project's autoloader in process, - * and wants to ensure both projects have access to their version of installed.php. - * - * A typical case would be PHPUnit, where it would need to make sure it reads all - * the data it needs from this class, then call reload() with - * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure - * the project in which it runs can then also use this class safely, without - * interference between PHPUnit's dependencies and the project's dependencies. - * - * @param array[] $data A vendor/composer/installed.php data set - * @return void - * - * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data - */ - public static function reload($data) - { - self::$installed = $data; - self::$installedByVendor = array(); - } - - /** - * @return array[] - * @psalm-return list}> - */ - private static function getInstalled() - { - if (null === self::$canGetVendors) { - self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); - } - - $installed = array(); - - if (self::$canGetVendors) { - foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { - if (isset(self::$installedByVendor[$vendorDir])) { - $installed[] = self::$installedByVendor[$vendorDir]; - } elseif (is_file($vendorDir.'/composer/installed.php')) { - $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; - if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { - self::$installed = $installed[count($installed) - 1]; - } - } - } - } - - if (null === self::$installed) { - // only require the installed.php file if this file is loaded from its dumped location, - // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C') { - self::$installed = require __DIR__ . '/installed.php'; - } else { - self::$installed = array(); - } - } - $installed[] = self::$installed; - - return $installed; - } -} diff --git a/vendor/kint/composer/LICENSE b/vendor/kint/composer/LICENSE deleted file mode 100644 index f27399a..0000000 --- a/vendor/kint/composer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright (c) Nils Adermann, Jordi Boggiano - -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/vendor/kint/composer/autoload_classmap.php b/vendor/kint/composer/autoload_classmap.php deleted file mode 100644 index 0fb0a2c..0000000 --- a/vendor/kint/composer/autoload_classmap.php +++ /dev/null @@ -1,10 +0,0 @@ - $vendorDir . '/composer/InstalledVersions.php', -); diff --git a/vendor/kint/composer/autoload_files.php b/vendor/kint/composer/autoload_files.php deleted file mode 100644 index f0f7cc4..0000000 --- a/vendor/kint/composer/autoload_files.php +++ /dev/null @@ -1,10 +0,0 @@ - $vendorDir . '/kint-php/kint/init.php', -); diff --git a/vendor/kint/composer/autoload_namespaces.php b/vendor/kint/composer/autoload_namespaces.php deleted file mode 100644 index 15a2ff3..0000000 --- a/vendor/kint/composer/autoload_namespaces.php +++ /dev/null @@ -1,9 +0,0 @@ - array($vendorDir . '/kint-php/kint/src'), -); diff --git a/vendor/kint/composer/autoload_real.php b/vendor/kint/composer/autoload_real.php deleted file mode 100644 index 920b4f5..0000000 --- a/vendor/kint/composer/autoload_real.php +++ /dev/null @@ -1,55 +0,0 @@ -register(true); - - $includeFiles = \Composer\Autoload\ComposerStaticInit0a34c38aff0b587f3975eaa6a676fb13::$files; - foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire0a34c38aff0b587f3975eaa6a676fb13($fileIdentifier, $file); - } - - return $loader; - } -} - -/** - * @param string $fileIdentifier - * @param string $file - * @return void - */ -function composerRequire0a34c38aff0b587f3975eaa6a676fb13($fileIdentifier, $file) -{ - if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - - require $file; - } -} diff --git a/vendor/kint/composer/autoload_static.php b/vendor/kint/composer/autoload_static.php deleted file mode 100644 index b717d17..0000000 --- a/vendor/kint/composer/autoload_static.php +++ /dev/null @@ -1,40 +0,0 @@ - __DIR__ . '/..' . '/kint-php/kint/init.php', - ); - - public static $prefixLengthsPsr4 = array ( - 'K' => - array ( - 'Kint\\' => 5, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'Kint\\' => - array ( - 0 => __DIR__ . '/..' . '/kint-php/kint/src', - ), - ); - - public static $classMap = array ( - 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit0a34c38aff0b587f3975eaa6a676fb13::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit0a34c38aff0b587f3975eaa6a676fb13::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit0a34c38aff0b587f3975eaa6a676fb13::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/vendor/kint/composer/installed.php b/vendor/kint/composer/installed.php deleted file mode 100644 index e9ee972..0000000 --- a/vendor/kint/composer/installed.php +++ /dev/null @@ -1,32 +0,0 @@ - array( - 'name' => '__root__', - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'reference' => NULL, - 'type' => 'library', - 'install_path' => __DIR__ . '/../../', - 'aliases' => array(), - 'dev' => true, - ), - 'versions' => array( - '__root__' => array( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'reference' => NULL, - 'type' => 'library', - 'install_path' => __DIR__ . '/../../', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'kint-php/kint' => array( - 'pretty_version' => '5.1.1', - 'version' => '5.1.1.0', - 'reference' => '8c5ec370c3382ceae0b88e91f9bbb00e6bb4f93b', - 'type' => 'library', - 'install_path' => __DIR__ . '/../kint-php/kint', - 'aliases' => array(), - 'dev_requirement' => true, - ), - ), -); diff --git a/vendor/kint/kint-php/kint/LICENSE b/vendor/kint/kint-php/kint/LICENSE deleted file mode 100644 index 01718d4..0000000 --- a/vendor/kint/kint-php/kint/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Jonathan Vollebregt (jnvsor@gmail.com), Rokas Šleinius (raveren@gmail.com) - -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/vendor/kint/kint-php/kint/README.md b/vendor/kint/kint-php/kint/README.md deleted file mode 100644 index 9f0e085..0000000 --- a/vendor/kint/kint-php/kint/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# Kint - debugging helper for PHP developers - -![Screenshot](https://kint-php.github.io/kint/images/intro.png) - -## What am I looking at? - -At first glance Kint is just a pretty replacement for **[var_dump()](https://secure.php.net/function.var_dump)**, **[print_r()](https://secure.php.net/function.print_r)** and **[debug_backtrace()](https://secure.php.net/function.debug_backtrace)**. - -However, it's much, *much* more than that. You will eventually wonder how you developed without it. - -## Installation - -One of the main goals of Kint is to be **zero setup**. - -[Download the file](https://raw.githubusercontent.com/kint-php/kint/master/build/kint.phar) and simply -```php -+ sign will open/close it and all its children. -* Triple clicking the + sign in will open/close everything on the page. -* Add heavy classes to the blacklist to improve performance: - `Kint\Parser\BlacklistPlugin::$shallow_blacklist[] = 'Psr\Container\ContainerInterface';` -* To see the output in a docked toolbar at the bottom of the page: - `Kint\Renderer\RichRenderer::$folder = true;` -* To change display theme, use `Kint\Renderer\RichRenderer::$theme = 'theme.css';`. You can pass the absolute path to a CSS file, or use one of the built in themes: - * `original.css` (default) - * `solarized.css` - * `solarized-dark.css` - * `aante-light.css` - * `aante-dark.css` -* Kint has *keyboard shortcuts*! When Kint is visible, press D on the keyboard and you will be able to traverse the tree with arrows, HJKL, and TAB keys - and expand/collapse nodes with SPACE or ENTER. -* You can write plugins and wrapper functions to customize dump behavior! -* Read [the full documentation](https://kint-php.github.io/kint/) for more information - -## Authors - -[**Jonathan Vollebregt** (jnvsor)](https://github.com/jnvsor) -[Contributors](https://github.com/kint-php/kint/graphs/contributors) - -## License - -Licensed under the MIT License diff --git a/vendor/kint/kint-php/kint/composer.json b/vendor/kint/kint-php/kint/composer.json deleted file mode 100644 index 69e4a55..0000000 --- a/vendor/kint/kint-php/kint/composer.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "kint-php/kint", - "description": "Kint - debugging tool for PHP developers", - "keywords": ["kint", "php", "debug"], - "type": "library", - "homepage": "https://kint-php.github.io/kint/", - "license": "MIT", - "authors": [ - { - "name": "Jonathan Vollebregt", - "homepage": "https://github.com/jnvsor" - }, - { - "name": "Contributors", - "homepage": "https://github.com/kint-php/kint/graphs/contributors" - } - ], - "require": { - "php": ">=7.1" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3", - "phpunit/phpunit": "^9", - "phpspec/prophecy-phpunit": "^2", - "symfony/finder": ">=4.0", - "seld/phar-utils": "^1", - "vimeo/psalm": "^5" - }, - "autoload": { - "files": ["init.php"], - "psr-4": { - "Kint\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "Kint\\Test\\": "tests/" - } - }, - "config": { - "platform": { - "php": "8.2" - } - }, - "scripts": { - "post-update-cmd": "npm ci", - "post-install-cmd": "@post-update-cmd", - "clean": [ - "rm -rf resources/compiled/", - "rm -rf build/" - ], - "format": [ - "@format:php", - "@format:js", - "@format:sass" - ], - "format:php": "php-cs-fixer fix", - "format:js": "npm run format:js", - "format:sass": "npm run format:sass", - "build": [ - "@build:sass", - "@build:js", - "@build:php" - ], - "build:sass": "npm run build:sass", - "build:js": "npm run build:js", - "build:php": "php ./build.php", - "analyze": "psalm --show-info=false" - }, - "suggest": { - "kint-php/kint-helpers": "Provides extra helper functions", - "kint-php/kint-twig": "Provides d() and s() functions in twig templates" - } -} diff --git a/vendor/kint/kint-php/kint/init.php b/vendor/kint/kint-php/kint/init.php deleted file mode 100644 index d682d9a..0000000 --- a/vendor/kint/kint-php/kint/init.php +++ /dev/null @@ -1,73 +0,0 @@ -= 0); -\define('KINT_PHP73', \version_compare(PHP_VERSION, '7.3') >= 0); -\define('KINT_PHP74', \version_compare(PHP_VERSION, '7.4') >= 0); -\define('KINT_PHP80', \version_compare(PHP_VERSION, '8.0') >= 0); -\define('KINT_PHP81', \version_compare(PHP_VERSION, '8.1') >= 0); -\define('KINT_PHP82', \version_compare(PHP_VERSION, '8.2') >= 0); -\define('KINT_PHP83', \version_compare(PHP_VERSION, '8.3') >= 0); -\define('KINT_PHP84', \version_compare(PHP_VERSION, '8.4') >= 0); - -// Dynamic default settings -if (false !== \ini_get('xdebug.file_link_format')) { - Kint::$file_link_format = \ini_get('xdebug.file_link_format'); -} -if (isset($_SERVER['DOCUMENT_ROOT']) && false === \strpos($_SERVER['DOCUMENT_ROOT'], "\0")) { - Kint::$app_root_dirs = [ - $_SERVER['DOCUMENT_ROOT'] => '', - ]; - - // Suppressed for unreadable document roots (related to open_basedir) - if (false !== @\realpath($_SERVER['DOCUMENT_ROOT'])) { - Kint::$app_root_dirs[\realpath($_SERVER['DOCUMENT_ROOT'])] = ''; - } -} - -Utils::composerSkipFlags(); - -if ((!\defined('KINT_SKIP_FACADE') || !KINT_SKIP_FACADE) && !\class_exists('Kint')) { - \class_alias(Kint::class, 'Kint'); -} - -if (!\defined('KINT_SKIP_HELPERS') || !KINT_SKIP_HELPERS) { - require_once __DIR__.'/init_helpers.php'; -} diff --git a/vendor/kint/kint-php/kint/init_helpers.php b/vendor/kint/kint-php/kint/init_helpers.php deleted file mode 100644 index b4d5f4d..0000000 --- a/vendor/kint/kint-php/kint/init_helpers.php +++ /dev/null @@ -1,88 +0,0 @@ -dl dl{padding:0 0 0 12px}.kint-rich dt.kint-parent>nav,.kint-rich>footer>nav{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCAxNTAiPjxwYXRoIGQ9Ik02IDdoMThsLTkgMTV6bTAgMzBoMThsLTkgMTV6bTAgNDVoMThsLTktMTV6bTAgMzBoMThsLTktMTV6bTAgMTJsMTggMThtLTE4IDBsMTgtMTgiIGZpbGw9IiNBQUEiLz48cGF0aCBkPSJNNiAxMjZsMTggMThtLTE4IDBsMTgtMTgiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSIjQUFBIi8+PC9zdmc+") no-repeat scroll 0 0/15px 75px rgba(0,0,0,0);cursor:pointer;display:inline-block;height:15px;width:15px;margin-right:3px;vertical-align:middle}.kint-rich dt.kint-parent:hover>nav,.kint-rich>footer>nav:hover{background-position:0 25%}.kint-rich dt.kint-parent.kint-show>nav,.kint-rich>footer.kint-show>nav{background-position:0 50%}.kint-rich dt.kint-parent.kint-show:hover>nav,.kint-rich>footer.kint-show>nav:hover{background-position:0 75%}.kint-rich dt.kint-parent.kint-locked>nav{background-position:0 100%}.kint-rich dt.kint-parent+dd{display:none;border-left:1px dashed #282828}.kint-rich dt.kint-parent.kint-show+dd{display:block}.kint-rich var,.kint-rich var a{color:#f90;font-style:normal}.kint-rich dt:hover var,.kint-rich dt:hover var a{color:aqua}.kint-rich dfn{font-style:normal;font-family:monospace;color:#e2e1e1}.kint-rich pre{color:#e2e1e1;margin:0 0 0 12px;padding:5px;overflow-y:hidden;border-top:0;border:1px solid #282828;background:#070707;display:block;word-break:normal}.kint-rich .kint-popup-trigger,.kint-rich .kint-access-path-trigger,.kint-rich .kint-search-trigger{background:rgba(226,225,225,.8);border-radius:3px;height:16px;font-size:16px;margin-left:5px;font-weight:bold;width:16px;text-align:center;float:right !important;cursor:pointer;color:#070707;position:relative;overflow:hidden;line-height:17.6px}.kint-rich .kint-popup-trigger:hover,.kint-rich .kint-access-path-trigger:hover,.kint-rich .kint-search-trigger:hover{color:#e2e1e1;background:#070707}.kint-rich dt.kint-parent>.kint-popup-trigger{line-height:19.2px}.kint-rich .kint-search-trigger{font-size:20px}.kint-rich input.kint-search{display:none;border:1px solid #282828;border-top-width:0;border-bottom-width:0;padding:4px;float:right !important;margin:-4px 0;color:#e2e1e1;background:#070707;height:24px;width:160px;position:relative;z-index:100}.kint-rich input.kint-search.kint-show{display:block}.kint-rich .kint-search-root ul.kint-tabs>li:not(.kint-search-match){background:#070707;opacity:.5}.kint-rich .kint-search-root dl:not(.kint-search-match){opacity:.5}.kint-rich .kint-search-root dl:not(.kint-search-match)>dt{background:#070707}.kint-rich .kint-search-root dl:not(.kint-search-match) dl,.kint-rich .kint-search-root dl:not(.kint-search-match) ul.kint-tabs>li:not(.kint-search-match){opacity:1}.kint-rich div.access-path{background:#070707;display:none;margin-top:5px;padding:4px;white-space:pre}.kint-rich div.access-path.kint-show{display:block}.kint-rich footer{padding:0 3px 3px;font-size:9px;background:rgba(0,0,0,0)}.kint-rich footer>.kint-popup-trigger{background:rgba(0,0,0,0);color:#e2e1e1}.kint-rich footer nav{height:10px;width:10px;background-size:10px 50px}.kint-rich footer>ol{display:none;margin-left:32px}.kint-rich footer.kint-show>ol{display:block}.kint-rich a{color:#e2e1e1;text-shadow:none;text-decoration:underline}.kint-rich a:hover{color:#e2e1e1;border-bottom:1px dotted #e2e1e1}.kint-rich ul{list-style:none;padding-left:12px}.kint-rich ul:not(.kint-tabs) li{border-left:1px dashed #282828}.kint-rich ul:not(.kint-tabs) li>dl{border-left:none}.kint-rich ul.kint-tabs{margin:0 0 0 12px;padding-left:0;background:#070707;border:1px solid #282828;border-top:0}.kint-rich ul.kint-tabs>li{background:#070707;border:1px solid #282828;cursor:pointer;display:inline-block;height:24px;margin:2px;padding:0 12px;vertical-align:top}.kint-rich ul.kint-tabs>li:hover,.kint-rich ul.kint-tabs>li.kint-active-tab:hover{border-color:#555;color:aqua}.kint-rich ul.kint-tabs>li.kint-active-tab{background:#070707;border-top:0;margin-top:-1px;height:27px;line-height:24px}.kint-rich ul.kint-tabs>li:not(.kint-active-tab){line-height:20px}.kint-rich ul.kint-tabs li+li{margin-left:0}.kint-rich ul.kint-tab-contents>li{display:none}.kint-rich ul.kint-tab-contents>li.kint-show{display:block}.kint-rich dt:hover+dd>ul>li.kint-active-tab{border-color:#555;color:aqua}.kint-rich dt>.kint-color-preview{width:16px;height:16px;display:inline-block;vertical-align:middle;margin-left:10px;border:1px solid #282828;background-color:#ccc;background-image:url('data:image/svg+xml;utf8,');background-size:100%}.kint-rich dt>.kint-color-preview:hover{border-color:#555}.kint-rich dt>.kint-color-preview>div{width:100%;height:100%}.kint-rich table{border-collapse:collapse;empty-cells:show;border-spacing:0}.kint-rich table *{font-size:12px}.kint-rich table dt{background:none;padding:2px}.kint-rich table dt .kint-parent{min-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kint-rich table td,.kint-rich table th{border:1px solid #282828;padding:2px;vertical-align:center}.kint-rich table th{cursor:alias}.kint-rich table td:first-child,.kint-rich table th{font-weight:bold;background:#070707;color:#e2e1e1}.kint-rich table td{background:#070707;white-space:pre}.kint-rich table td>dl{padding:0}.kint-rich table pre{border-top:0;border-right:0}.kint-rich table thead th:first-child{background:none;border:0}.kint-rich table tr:hover>td{box-shadow:0 0 1px 0 #555 inset}.kint-rich table tr:hover var{color:aqua}.kint-rich table ul.kint-tabs li.kint-active-tab{height:20px;line-height:17px}.kint-rich pre.kint-source{margin-left:-1px}.kint-rich pre.kint-source[data-kint-filename]:before{display:block;content:attr(data-kint-filename);margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid #070707}.kint-rich pre.kint-source>div:before{display:inline-block;content:counter(kint-l);counter-increment:kint-l;border-right:1px solid #555;padding-right:8px;margin-right:8px}.kint-rich pre.kint-source>div.kint-highlight{background:#070707}.kint-rich .kint-microtime-lap{text-shadow:-1px 0 #555,0 1px #555,1px 0 #555,0 -1px #555;color:#070707;font-weight:bold}input.kint-note-input{width:100%}.kint-rich .kint-focused{box-shadow:0 0 3px 2px aqua}.kint-rich dt{font-weight:normal}.kint-rich dt.kint-parent{margin-top:4px}.kint-rich dl dl{margin-top:4px;padding-left:25px;border-left:none}.kint-rich>dl>dt{background:#070707}.kint-rich ul{margin:0;padding-left:0}.kint-rich ul:not(.kint-tabs)>li{border-left:0}.kint-rich ul.kint-tabs{background:#070707;border:1px solid #282828;border-width:0 1px 1px 1px;padding:4px 0 0 12px;margin-left:-1px;margin-top:-1px}.kint-rich ul.kint-tabs li,.kint-rich ul.kint-tabs li+li{margin:0 0 0 4px}.kint-rich ul.kint-tabs li{border-bottom-width:0;height:25px}.kint-rich ul.kint-tabs li:first-child{margin-left:0}.kint-rich ul.kint-tabs li.kint-active-tab{border-top:1px solid #282828;background:#000;font-weight:bold;padding-top:0;border-bottom:1px solid #000 !important;margin-bottom:-1px}.kint-rich ul.kint-tabs li.kint-active-tab:hover{border-bottom:1px solid #000}.kint-rich ul>li>pre{border:1px solid #282828}.kint-rich dt:hover+dd>ul{border-color:#555}.kint-rich pre{background:#000;margin-top:4px;margin-left:25px}.kint-rich .kint-source{margin-left:-1px}.kint-rich .kint-source .kint-highlight{background:#303}.kint-rich .kint-parent.kint-show>.kint-search{border-bottom-width:1px}.kint-rich table td{background:#000}.kint-rich table td>dl{padding:0;margin:0}.kint-rich table td>dl>dt.kint-parent{margin:0}.kint-rich table td:first-child,.kint-rich table td,.kint-rich table th{padding:2px 4px}.kint-rich table dd,.kint-rich table dt{background:#000}.kint-rich table tr:hover>td{box-shadow:none;background:#303} diff --git a/vendor/kint/kint-php/kint/resources/compiled/aante-light.css b/vendor/kint/kint-php/kint/resources/compiled/aante-light.css deleted file mode 100644 index 1619473..0000000 --- a/vendor/kint/kint-php/kint/resources/compiled/aante-light.css +++ /dev/null @@ -1 +0,0 @@ -.kint-rich{font-size:13px;overflow-x:auto;white-space:nowrap;background:rgba(255,255,255,.9)}.kint-rich.kint-folder{position:fixed;bottom:0;left:0;right:0;z-index:999999;width:100%;margin:0;display:block}.kint-rich.kint-folder dd.kint-foldout{max-height:calc(100vh - 100px);padding-right:8px;overflow-y:scroll;display:none}.kint-rich.kint-folder dd.kint-foldout.kint-show{display:block}.kint-rich::selection,.kint-rich::-moz-selection,.kint-rich::-webkit-selection{background:#aaa;color:#1d1e1e}.kint-rich .kint-focused{box-shadow:0 0 3px 2px red}.kint-rich,.kint-rich::before,.kint-rich::after,.kint-rich *,.kint-rich *::before,.kint-rich *::after{box-sizing:border-box;border-radius:0;color:#1d1e1e;float:none !important;font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;line-height:15px;margin:0;padding:0;text-align:left}.kint-rich{margin:8px 0}.kint-rich dt,.kint-rich dl{width:auto}.kint-rich dt,.kint-rich div.access-path{background:#f8f8f8;border:1px solid #d7d7d7;color:#1d1e1e;display:block;font-weight:bold;list-style:none outside none;overflow:auto;padding:4px}.kint-rich dt:hover,.kint-rich div.access-path:hover{border-color:#aaa}.kint-rich>dl dl{padding:0 0 0 12px}.kint-rich dt.kint-parent>nav,.kint-rich>footer>nav{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCAxNTAiPjxwYXRoIGQ9Ik02IDdoMThsLTkgMTV6bTAgMzBoMThsLTkgMTV6bTAgNDVoMThsLTktMTV6bTAgMzBoMThsLTktMTV6bTAgMTJsMTggMThtLTE4IDBsMTgtMTgiIGZpbGw9IiM1NTUiLz48cGF0aCBkPSJNNiAxMjZsMTggMThtLTE4IDBsMTgtMTgiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSIjNTU1Ii8+PC9zdmc+") no-repeat scroll 0 0/15px 75px rgba(0,0,0,0);cursor:pointer;display:inline-block;height:15px;width:15px;margin-right:3px;vertical-align:middle}.kint-rich dt.kint-parent:hover>nav,.kint-rich>footer>nav:hover{background-position:0 25%}.kint-rich dt.kint-parent.kint-show>nav,.kint-rich>footer.kint-show>nav{background-position:0 50%}.kint-rich dt.kint-parent.kint-show:hover>nav,.kint-rich>footer.kint-show>nav:hover{background-position:0 75%}.kint-rich dt.kint-parent.kint-locked>nav{background-position:0 100%}.kint-rich dt.kint-parent+dd{display:none;border-left:1px dashed #d7d7d7}.kint-rich dt.kint-parent.kint-show+dd{display:block}.kint-rich var,.kint-rich var a{color:#06f;font-style:normal}.kint-rich dt:hover var,.kint-rich dt:hover var a{color:red}.kint-rich dfn{font-style:normal;font-family:monospace;color:#1d1e1e}.kint-rich pre{color:#1d1e1e;margin:0 0 0 12px;padding:5px;overflow-y:hidden;border-top:0;border:1px solid #d7d7d7;background:#f8f8f8;display:block;word-break:normal}.kint-rich .kint-popup-trigger,.kint-rich .kint-access-path-trigger,.kint-rich .kint-search-trigger{background:rgba(29,30,30,.8);border-radius:3px;height:16px;font-size:16px;margin-left:5px;font-weight:bold;width:16px;text-align:center;float:right !important;cursor:pointer;color:#f8f8f8;position:relative;overflow:hidden;line-height:17.6px}.kint-rich .kint-popup-trigger:hover,.kint-rich .kint-access-path-trigger:hover,.kint-rich .kint-search-trigger:hover{color:#1d1e1e;background:#f8f8f8}.kint-rich dt.kint-parent>.kint-popup-trigger{line-height:19.2px}.kint-rich .kint-search-trigger{font-size:20px}.kint-rich input.kint-search{display:none;border:1px solid #d7d7d7;border-top-width:0;border-bottom-width:0;padding:4px;float:right !important;margin:-4px 0;color:#1d1e1e;background:#f8f8f8;height:24px;width:160px;position:relative;z-index:100}.kint-rich input.kint-search.kint-show{display:block}.kint-rich .kint-search-root ul.kint-tabs>li:not(.kint-search-match){background:#f8f8f8;opacity:.5}.kint-rich .kint-search-root dl:not(.kint-search-match){opacity:.5}.kint-rich .kint-search-root dl:not(.kint-search-match)>dt{background:#f8f8f8}.kint-rich .kint-search-root dl:not(.kint-search-match) dl,.kint-rich .kint-search-root dl:not(.kint-search-match) ul.kint-tabs>li:not(.kint-search-match){opacity:1}.kint-rich div.access-path{background:#f8f8f8;display:none;margin-top:5px;padding:4px;white-space:pre}.kint-rich div.access-path.kint-show{display:block}.kint-rich footer{padding:0 3px 3px;font-size:9px;background:rgba(0,0,0,0)}.kint-rich footer>.kint-popup-trigger{background:rgba(0,0,0,0);color:#1d1e1e}.kint-rich footer nav{height:10px;width:10px;background-size:10px 50px}.kint-rich footer>ol{display:none;margin-left:32px}.kint-rich footer.kint-show>ol{display:block}.kint-rich a{color:#1d1e1e;text-shadow:none;text-decoration:underline}.kint-rich a:hover{color:#1d1e1e;border-bottom:1px dotted #1d1e1e}.kint-rich ul{list-style:none;padding-left:12px}.kint-rich ul:not(.kint-tabs) li{border-left:1px dashed #d7d7d7}.kint-rich ul:not(.kint-tabs) li>dl{border-left:none}.kint-rich ul.kint-tabs{margin:0 0 0 12px;padding-left:0;background:#f8f8f8;border:1px solid #d7d7d7;border-top:0}.kint-rich ul.kint-tabs>li{background:#f8f8f8;border:1px solid #d7d7d7;cursor:pointer;display:inline-block;height:24px;margin:2px;padding:0 12px;vertical-align:top}.kint-rich ul.kint-tabs>li:hover,.kint-rich ul.kint-tabs>li.kint-active-tab:hover{border-color:#aaa;color:red}.kint-rich ul.kint-tabs>li.kint-active-tab{background:#f8f8f8;border-top:0;margin-top:-1px;height:27px;line-height:24px}.kint-rich ul.kint-tabs>li:not(.kint-active-tab){line-height:20px}.kint-rich ul.kint-tabs li+li{margin-left:0}.kint-rich ul.kint-tab-contents>li{display:none}.kint-rich ul.kint-tab-contents>li.kint-show{display:block}.kint-rich dt:hover+dd>ul>li.kint-active-tab{border-color:#aaa;color:red}.kint-rich dt>.kint-color-preview{width:16px;height:16px;display:inline-block;vertical-align:middle;margin-left:10px;border:1px solid #d7d7d7;background-color:#ccc;background-image:url('data:image/svg+xml;utf8,');background-size:100%}.kint-rich dt>.kint-color-preview:hover{border-color:#aaa}.kint-rich dt>.kint-color-preview>div{width:100%;height:100%}.kint-rich table{border-collapse:collapse;empty-cells:show;border-spacing:0}.kint-rich table *{font-size:12px}.kint-rich table dt{background:none;padding:2px}.kint-rich table dt .kint-parent{min-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kint-rich table td,.kint-rich table th{border:1px solid #d7d7d7;padding:2px;vertical-align:center}.kint-rich table th{cursor:alias}.kint-rich table td:first-child,.kint-rich table th{font-weight:bold;background:#f8f8f8;color:#1d1e1e}.kint-rich table td{background:#f8f8f8;white-space:pre}.kint-rich table td>dl{padding:0}.kint-rich table pre{border-top:0;border-right:0}.kint-rich table thead th:first-child{background:none;border:0}.kint-rich table tr:hover>td{box-shadow:0 0 1px 0 #aaa inset}.kint-rich table tr:hover var{color:red}.kint-rich table ul.kint-tabs li.kint-active-tab{height:20px;line-height:17px}.kint-rich pre.kint-source{margin-left:-1px}.kint-rich pre.kint-source[data-kint-filename]:before{display:block;content:attr(data-kint-filename);margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid #f8f8f8}.kint-rich pre.kint-source>div:before{display:inline-block;content:counter(kint-l);counter-increment:kint-l;border-right:1px solid #aaa;padding-right:8px;margin-right:8px}.kint-rich pre.kint-source>div.kint-highlight{background:#f8f8f8}.kint-rich .kint-microtime-lap{text-shadow:-1px 0 #aaa,0 1px #aaa,1px 0 #aaa,0 -1px #aaa;color:#f8f8f8;font-weight:bold}input.kint-note-input{width:100%}.kint-rich .kint-focused{box-shadow:0 0 3px 2px red}.kint-rich dt{font-weight:normal}.kint-rich dt.kint-parent{margin-top:4px}.kint-rich dl dl{margin-top:4px;padding-left:25px;border-left:none}.kint-rich>dl>dt{background:#f8f8f8}.kint-rich ul{margin:0;padding-left:0}.kint-rich ul:not(.kint-tabs)>li{border-left:0}.kint-rich ul.kint-tabs{background:#f8f8f8;border:1px solid #d7d7d7;border-width:0 1px 1px 1px;padding:4px 0 0 12px;margin-left:-1px;margin-top:-1px}.kint-rich ul.kint-tabs li,.kint-rich ul.kint-tabs li+li{margin:0 0 0 4px}.kint-rich ul.kint-tabs li{border-bottom-width:0;height:25px}.kint-rich ul.kint-tabs li:first-child{margin-left:0}.kint-rich ul.kint-tabs li.kint-active-tab{border-top:1px solid #d7d7d7;background:#fff;font-weight:bold;padding-top:0;border-bottom:1px solid #fff !important;margin-bottom:-1px}.kint-rich ul.kint-tabs li.kint-active-tab:hover{border-bottom:1px solid #fff}.kint-rich ul>li>pre{border:1px solid #d7d7d7}.kint-rich dt:hover+dd>ul{border-color:#aaa}.kint-rich pre{background:#fff;margin-top:4px;margin-left:25px}.kint-rich .kint-source{margin-left:-1px}.kint-rich .kint-source .kint-highlight{background:#cfc}.kint-rich .kint-parent.kint-show>.kint-search{border-bottom-width:1px}.kint-rich table td{background:#fff}.kint-rich table td>dl{padding:0;margin:0}.kint-rich table td>dl>dt.kint-parent{margin:0}.kint-rich table td:first-child,.kint-rich table td,.kint-rich table th{padding:2px 4px}.kint-rich table dd,.kint-rich table dt{background:#fff}.kint-rich table tr:hover>td{box-shadow:none;background:#cfc} diff --git a/vendor/kint/kint-php/kint/resources/compiled/microtime.js b/vendor/kint/kint-php/kint/resources/compiled/microtime.js deleted file mode 100644 index 88d4ba9..0000000 --- a/vendor/kint/kint-php/kint/resources/compiled/microtime.js +++ /dev/null @@ -1 +0,0 @@ -void 0===window.kintMicrotimeInitialized&&(window.kintMicrotimeInitialized=1,window.addEventListener("load",function(){"use strict";var a={},t=Array.prototype.slice.call(document.querySelectorAll("[data-kint-microtime-group]"),0);t.forEach(function(t){var i,e;t.querySelector(".kint-microtime-lap")&&(i=t.getAttribute("data-kint-microtime-group"),e=parseFloat(t.querySelector(".kint-microtime-lap").innerHTML),t=parseFloat(t.querySelector(".kint-microtime-avg").innerHTML),void 0===a[i]&&(a[i]={}),(void 0===a[i].min||a[i].min>e)&&(a[i].min=e),(void 0===a[i].max||a[i].maxdl dl{padding:0 0 0 12px}.kint-rich dt.kint-parent>nav,.kint-rich>footer>nav{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMCAxNTAiPjxnIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0iI0ZGRiI+PHBhdGggZD0iTTEgMWgyOHYyOEgxem01IDE0aDE4bS05IDlWNk0xIDYxaDI4djI4SDF6bTUgMTRoMTgiIHN0cm9rZT0iIzM3OSIvPjxwYXRoIGQ9Ik0xIDMxaDI4djI4SDF6bTUgMTRoMThtLTkgOVYzNk0xIDkxaDI4djI4SDF6bTUgMTRoMTgiIHN0cm9rZT0iIzVBMyIvPjxwYXRoIGQ9Ik0xIDEyMWgyOHYyOEgxem01IDVsMTggMThtLTE4IDBsMTgtMTgiIHN0cm9rZT0iI0NDQyIvPjwvZz48L3N2Zz4=") no-repeat scroll 0 0/15px 75px rgba(0,0,0,0);cursor:pointer;display:inline-block;height:15px;width:15px;margin-right:3px;vertical-align:middle}.kint-rich dt.kint-parent:hover>nav,.kint-rich>footer>nav:hover{background-position:0 25%}.kint-rich dt.kint-parent.kint-show>nav,.kint-rich>footer.kint-show>nav{background-position:0 50%}.kint-rich dt.kint-parent.kint-show:hover>nav,.kint-rich>footer.kint-show>nav:hover{background-position:0 75%}.kint-rich dt.kint-parent.kint-locked>nav{background-position:0 100%}.kint-rich dt.kint-parent+dd{display:none;border-left:1px dashed #b6cedb}.kint-rich dt.kint-parent.kint-show+dd{display:block}.kint-rich var,.kint-rich var a{color:#0092db;font-style:normal}.kint-rich dt:hover var,.kint-rich dt:hover var a{color:#5cb730}.kint-rich dfn{font-style:normal;font-family:monospace;color:#1d1e1e}.kint-rich pre{color:#1d1e1e;margin:0 0 0 12px;padding:5px;overflow-y:hidden;border-top:0;border:1px solid #b6cedb;background:#e0eaef;display:block;word-break:normal}.kint-rich .kint-popup-trigger,.kint-rich .kint-access-path-trigger,.kint-rich .kint-search-trigger{background:rgba(29,30,30,.8);border-radius:3px;height:16px;font-size:16px;margin-left:5px;font-weight:bold;width:16px;text-align:center;float:right !important;cursor:pointer;color:#e0eaef;position:relative;overflow:hidden;line-height:17.6px}.kint-rich .kint-popup-trigger:hover,.kint-rich .kint-access-path-trigger:hover,.kint-rich .kint-search-trigger:hover{color:#1d1e1e;background:#e0eaef}.kint-rich dt.kint-parent>.kint-popup-trigger{line-height:19.2px}.kint-rich .kint-search-trigger{font-size:20px}.kint-rich input.kint-search{display:none;border:1px solid #b6cedb;border-top-width:0;border-bottom-width:0;padding:4px;float:right !important;margin:-4px 0;color:#1d1e1e;background:#c1d4df;height:24px;width:160px;position:relative;z-index:100}.kint-rich input.kint-search.kint-show{display:block}.kint-rich .kint-search-root ul.kint-tabs>li:not(.kint-search-match){background:#d0d0d0;opacity:.5}.kint-rich .kint-search-root dl:not(.kint-search-match){opacity:.5}.kint-rich .kint-search-root dl:not(.kint-search-match)>dt{background:#e8e8e8}.kint-rich .kint-search-root dl:not(.kint-search-match) dl,.kint-rich .kint-search-root dl:not(.kint-search-match) ul.kint-tabs>li:not(.kint-search-match){opacity:1}.kint-rich div.access-path{background:#c1d4df;display:none;margin-top:5px;padding:4px;white-space:pre}.kint-rich div.access-path.kint-show{display:block}.kint-rich footer{padding:0 3px 3px;font-size:9px;background:rgba(0,0,0,0)}.kint-rich footer>.kint-popup-trigger{background:rgba(0,0,0,0);color:#1d1e1e}.kint-rich footer nav{height:10px;width:10px;background-size:10px 50px}.kint-rich footer>ol{display:none;margin-left:32px}.kint-rich footer.kint-show>ol{display:block}.kint-rich a{color:#1d1e1e;text-shadow:none;text-decoration:underline}.kint-rich a:hover{color:#1d1e1e;border-bottom:1px dotted #1d1e1e}.kint-rich ul{list-style:none;padding-left:12px}.kint-rich ul:not(.kint-tabs) li{border-left:1px dashed #b6cedb}.kint-rich ul:not(.kint-tabs) li>dl{border-left:none}.kint-rich ul.kint-tabs{margin:0 0 0 12px;padding-left:0;background:#e0eaef;border:1px solid #b6cedb;border-top:0}.kint-rich ul.kint-tabs>li{background:#c1d4df;border:1px solid #b6cedb;cursor:pointer;display:inline-block;height:24px;margin:2px;padding:0 12px;vertical-align:top}.kint-rich ul.kint-tabs>li:hover,.kint-rich ul.kint-tabs>li.kint-active-tab:hover{border-color:#0092db;color:#5cb730}.kint-rich ul.kint-tabs>li.kint-active-tab{background:#e0eaef;border-top:0;margin-top:-1px;height:27px;line-height:24px}.kint-rich ul.kint-tabs>li:not(.kint-active-tab){line-height:20px}.kint-rich ul.kint-tabs li+li{margin-left:0}.kint-rich ul.kint-tab-contents>li{display:none}.kint-rich ul.kint-tab-contents>li.kint-show{display:block}.kint-rich dt:hover+dd>ul>li.kint-active-tab{border-color:#0092db;color:#5cb730}.kint-rich dt>.kint-color-preview{width:16px;height:16px;display:inline-block;vertical-align:middle;margin-left:10px;border:1px solid #b6cedb;background-color:#ccc;background-image:url('data:image/svg+xml;utf8,');background-size:100%}.kint-rich dt>.kint-color-preview:hover{border-color:#0092db}.kint-rich dt>.kint-color-preview>div{width:100%;height:100%}.kint-rich table{border-collapse:collapse;empty-cells:show;border-spacing:0}.kint-rich table *{font-size:12px}.kint-rich table dt{background:none;padding:2px}.kint-rich table dt .kint-parent{min-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kint-rich table td,.kint-rich table th{border:1px solid #b6cedb;padding:2px;vertical-align:center}.kint-rich table th{cursor:alias}.kint-rich table td:first-child,.kint-rich table th{font-weight:bold;background:#c1d4df;color:#1d1e1e}.kint-rich table td{background:#e0eaef;white-space:pre}.kint-rich table td>dl{padding:0}.kint-rich table pre{border-top:0;border-right:0}.kint-rich table thead th:first-child{background:none;border:0}.kint-rich table tr:hover>td{box-shadow:0 0 1px 0 #0092db inset}.kint-rich table tr:hover var{color:#5cb730}.kint-rich table ul.kint-tabs li.kint-active-tab{height:20px;line-height:17px}.kint-rich pre.kint-source{margin-left:-1px}.kint-rich pre.kint-source[data-kint-filename]:before{display:block;content:attr(data-kint-filename);margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid #c1d4df}.kint-rich pre.kint-source>div:before{display:inline-block;content:counter(kint-l);counter-increment:kint-l;border-right:1px solid #0092db;padding-right:8px;margin-right:8px}.kint-rich pre.kint-source>div.kint-highlight{background:#c1d4df}.kint-rich .kint-microtime-lap{text-shadow:-1px 0 #0092db,0 1px #0092db,1px 0 #0092db,0 -1px #0092db;color:#e0eaef;font-weight:bold}input.kint-note-input{width:100%}.kint-rich>dl>dt{background:linear-gradient(to bottom, #e3ecf0 0, #c0d4df 100%)}.kint-rich ul.kint-tabs{background:linear-gradient(to bottom, #9dbed0 0px, #b2ccda 100%)}.kint-rich>dl:not(.kint-trace)>dd>ul.kint-tabs li{background:#e0eaef}.kint-rich>dl:not(.kint-trace)>dd>ul.kint-tabs li.kint-active-tab{background:#c1d4df}.kint-rich>dl.kint-trace>dt{background:linear-gradient(to bottom, #c0d4df 0px, #e3ecf0 100%)}.kint-rich .kint-source .kint-highlight{background:#f0eb96} diff --git a/vendor/kint/kint-php/kint/resources/compiled/plain.css b/vendor/kint/kint-php/kint/resources/compiled/plain.css deleted file mode 100644 index 85a4e73..0000000 --- a/vendor/kint/kint-php/kint/resources/compiled/plain.css +++ /dev/null @@ -1 +0,0 @@ -.kint-plain{background:rgba(255,255,255,.9);white-space:pre;display:block;font-family:monospace;color:#222}.kint-plain i{color:#d00;font-style:normal}.kint-plain u{color:#030;text-decoration:none;font-weight:bold}.kint-plain .kint-microtime-lap{font-weight:bold;text-shadow:1px 0 #fff,0 1px #fff,-1px 0 #fff,0 -1px #fff} diff --git a/vendor/kint/kint-php/kint/resources/compiled/plain.js b/vendor/kint/kint-php/kint/resources/compiled/plain.js deleted file mode 100644 index 9791fc9..0000000 --- a/vendor/kint/kint-php/kint/resources/compiled/plain.js +++ /dev/null @@ -1 +0,0 @@ -void 0===window.kintPlain&&(window.kintPlain=function(){"use strict";var i={initLoad:function(){i.style=window.kintShared.dedupe("style.kint-plain-style",i.style),i.script=window.kintShared.dedupe("script.kint-plain-script",i.script)},style:null,script:null};return i}()),window.kintShared.runOnce(window.kintPlain.initLoad); diff --git a/vendor/kint/kint-php/kint/resources/compiled/rich.js b/vendor/kint/kint-php/kint/resources/compiled/rich.js deleted file mode 100644 index 39db8fb..0000000 --- a/vendor/kint/kint-php/kint/resources/compiled/rich.js +++ /dev/null @@ -1 +0,0 @@ -void 0===window.kintRich&&(window.kintRich=function(){"use strict";var l={selectText:function(e){var t=window.getSelection(),a=document.createRange();a.selectNodeContents(e),t.removeAllRanges(),t.addRange(a)},toggle:function(e,t){var a=l.getChildren(e);a&&(e.classList.toggle("kint-show",t),1===a.childNodes.length)&&(a=a.childNodes[0].childNodes[0])&&a.classList&&a.classList.contains("kint-parent")&&l.toggle(a,t)},toggleChildren:function(e,t){var a=l.getChildren(e);if(a){var o=a.getElementsByClassName("kint-parent"),s=o.length;for(void 0===t&&(t=e.classList.contains("kint-show"));s--;)l.toggle(o[s],t)}},switchTab:function(e){var t=e.previousSibling,a=0;for(e.parentNode.getElementsByClassName("kint-active-tab")[0].classList.remove("kint-active-tab"),e.classList.add("kint-active-tab");t;)1===t.nodeType&&a++,t=t.previousSibling;for(var o=e.parentNode.nextSibling.childNodes,s=0;s"},openInNewWindow:function(e){var t=window.open();t&&(t.document.open(),t.document.write(l.mktag("html")+l.mktag("head")+l.mktag("title")+"Kint ("+(new Date).toISOString()+")"+l.mktag("/title")+l.mktag('meta charset="utf-8"')+l.mktag('script class="kint-rich-script" nonce="'+l.script.nonce+'"')+l.script.innerHTML+l.mktag("/script")+l.mktag('style class="kint-rich-style" nonce="'+l.style.nonce+'"')+l.style.innerHTML+l.mktag("/style")+l.mktag("/head")+l.mktag("body")+'
'+e.parentNode.outerHTML+"
"+l.mktag("/body")),t.document.close())},sortTable:function(e,a){var t=e.tBodies[0];[].slice.call(e.tBodies[0].rows).sort(function(e,t){if(e=e.cells[a].textContent.trim().toLocaleLowerCase(),t=t.cells[a].textContent.trim().toLocaleLowerCase(),isNaN(e)||isNaN(t)){if(isNaN(e)&&!isNaN(t))return 1;if(isNaN(t)&&!isNaN(e))return-1}else e=parseFloat(e),t=parseFloat(t);return eli:not(.kint-active-tab)").forEach(function(e){l.isFolderOpen()&&!l.folder.contains(e)||0===e.offsetWidth&&0===e.offsetHeight||l.keyboardNav.targets.push(e)}),e&&-1!==l.keyboardNav.targets.indexOf(e)&&(l.keyboardNav.target=l.keyboardNav.targets.indexOf(e))},sync:function(e){var t=document.querySelector(".kint-focused");t&&t.classList.remove("kint-focused"),l.keyboardNav.active&&((t=l.keyboardNav.targets[l.keyboardNav.target]).classList.add("kint-focused"),e||l.keyboardNav.scroll(t))},scroll:function(e){var t,a;l.folder&&e===l.folder.querySelector("dt > nav")||(e=(t=function(e){return e.offsetTop+(e.offsetParent?t(e.offsetParent):0)})(e),l.isFolderOpen()?(a=l.folder.querySelector("dd.kint-foldout")).scrollTo(0,e-a.clientHeight/2):window.scrollTo(0,e-window.innerHeight/2))},moveCursor:function(e){for(l.keyboardNav.target+=e;l.keyboardNav.target<0;)l.keyboardNav.target+=l.keyboardNav.targets.length;for(;l.keyboardNav.target>=l.keyboardNav.targets.length;)l.keyboardNav.target-=l.keyboardNav.targets.length;l.keyboardNav.sync()},setCursor:function(e){if(!l.isFolderOpen()||l.folder.contains(e)){l.keyboardNav.fetchTargets();for(var t=0;tdl dl{padding:0 0 0 15px}.kint-rich dt.kint-parent>nav,.kint-rich>footer>nav{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzAgMTUwIj48ZGVmcz48cGF0aCBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNNCAzYTI0IDMyIDAgMCAxIDAgMjQgNDAgMjAtMTAgMCAxIDIzLTEyQTQwIDIwIDEwIDAgMSA0IDN6IiBpZD0iYSIvPjwvZGVmcz48ZyBmaWxsPSIjOTNhMWExIiBzdHJva2U9IiM5M2ExYTEiPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAtMTUgNDUpIi8+PC9nPjxnIGZpbGw9IiM1ODZlNzUiIHN0cm9rZT0iIzU4NmU3NSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAzMCkiPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAtMTUgNDUpIi8+PC9nPjxwYXRoIGQ9Ik02IDEyNmwxOCAxOG0tMTggMGwxOC0xOCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9IiM1ODZlNzUiLz48L3N2Zz4=") no-repeat scroll 0 0/15px 75px rgba(0,0,0,0);cursor:pointer;display:inline-block;height:15px;width:15px;margin-right:3px;vertical-align:middle}.kint-rich dt.kint-parent:hover>nav,.kint-rich>footer>nav:hover{background-position:0 25%}.kint-rich dt.kint-parent.kint-show>nav,.kint-rich>footer.kint-show>nav{background-position:0 50%}.kint-rich dt.kint-parent.kint-show:hover>nav,.kint-rich>footer.kint-show>nav:hover{background-position:0 75%}.kint-rich dt.kint-parent.kint-locked>nav{background-position:0 100%}.kint-rich dt.kint-parent+dd{display:none;border-left:1px dashed #586e75}.kint-rich dt.kint-parent.kint-show+dd{display:block}.kint-rich var,.kint-rich var a{color:#268bd2;font-style:normal}.kint-rich dt:hover var,.kint-rich dt:hover var a{color:#2aa198}.kint-rich dfn{font-style:normal;font-family:monospace;color:#93a1a1}.kint-rich pre{color:#839496;margin:0 0 0 15px;padding:5px;overflow-y:hidden;border-top:0;border:1px solid #586e75;background:#002b36;display:block;word-break:normal}.kint-rich .kint-popup-trigger,.kint-rich .kint-access-path-trigger,.kint-rich .kint-search-trigger{background:rgba(131,148,150,.8);border-radius:3px;height:16px;font-size:16px;margin-left:5px;font-weight:bold;width:16px;text-align:center;float:right !important;cursor:pointer;color:#002b36;position:relative;overflow:hidden;line-height:17.6px}.kint-rich .kint-popup-trigger:hover,.kint-rich .kint-access-path-trigger:hover,.kint-rich .kint-search-trigger:hover{color:#839496;background:#002b36}.kint-rich dt.kint-parent>.kint-popup-trigger{line-height:19.2px}.kint-rich .kint-search-trigger{font-size:20px}.kint-rich input.kint-search{display:none;border:1px solid #586e75;border-top-width:0;border-bottom-width:0;padding:5px;float:right !important;margin:-5px 0;color:#93a1a1;background:#073642;height:26px;width:160px;position:relative;z-index:100}.kint-rich input.kint-search.kint-show{display:block}.kint-rich .kint-search-root ul.kint-tabs>li:not(.kint-search-match){background:#252525;opacity:.5}.kint-rich .kint-search-root dl:not(.kint-search-match){opacity:.5}.kint-rich .kint-search-root dl:not(.kint-search-match)>dt{background:#1b1b1b}.kint-rich .kint-search-root dl:not(.kint-search-match) dl,.kint-rich .kint-search-root dl:not(.kint-search-match) ul.kint-tabs>li:not(.kint-search-match){opacity:1}.kint-rich div.access-path{background:#073642;display:none;margin-top:5px;padding:4px;white-space:pre}.kint-rich div.access-path.kint-show{display:block}.kint-rich footer{padding:0 3px 3px;font-size:9px;background:rgba(0,0,0,0)}.kint-rich footer>.kint-popup-trigger{background:rgba(0,0,0,0);color:#839496}.kint-rich footer nav{height:10px;width:10px;background-size:10px 50px}.kint-rich footer>ol{display:none;margin-left:32px}.kint-rich footer.kint-show>ol{display:block}.kint-rich a{color:#839496;text-shadow:none;text-decoration:underline}.kint-rich a:hover{color:#93a1a1;border-bottom:1px dotted #93a1a1}.kint-rich ul{list-style:none;padding-left:15px}.kint-rich ul:not(.kint-tabs) li{border-left:1px dashed #586e75}.kint-rich ul:not(.kint-tabs) li>dl{border-left:none}.kint-rich ul.kint-tabs{margin:0 0 0 15px;padding-left:0;background:#002b36;border:1px solid #586e75;border-top:0}.kint-rich ul.kint-tabs>li{background:#073642;border:1px solid #586e75;cursor:pointer;display:inline-block;height:30px;margin:3px;padding:0 15px;vertical-align:top}.kint-rich ul.kint-tabs>li:hover,.kint-rich ul.kint-tabs>li.kint-active-tab:hover{border-color:#268bd2;color:#2aa198}.kint-rich ul.kint-tabs>li.kint-active-tab{background:#002b36;border-top:0;margin-top:-1px;height:27px;line-height:24px}.kint-rich ul.kint-tabs>li:not(.kint-active-tab){line-height:25px}.kint-rich ul.kint-tabs li+li{margin-left:0}.kint-rich ul.kint-tab-contents>li{display:none}.kint-rich ul.kint-tab-contents>li.kint-show{display:block}.kint-rich dt:hover+dd>ul>li.kint-active-tab{border-color:#268bd2;color:#2aa198}.kint-rich dt>.kint-color-preview{width:16px;height:16px;display:inline-block;vertical-align:middle;margin-left:10px;border:1px solid #586e75;background-color:#ccc;background-image:url('data:image/svg+xml;utf8,');background-size:100%}.kint-rich dt>.kint-color-preview:hover{border-color:#268bd2}.kint-rich dt>.kint-color-preview>div{width:100%;height:100%}.kint-rich table{border-collapse:collapse;empty-cells:show;border-spacing:0}.kint-rich table *{font-size:12px}.kint-rich table dt{background:none;padding:2.5px}.kint-rich table dt .kint-parent{min-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kint-rich table td,.kint-rich table th{border:1px solid #586e75;padding:2.5px;vertical-align:center}.kint-rich table th{cursor:alias}.kint-rich table td:first-child,.kint-rich table th{font-weight:bold;background:#073642;color:#93a1a1}.kint-rich table td{background:#002b36;white-space:pre}.kint-rich table td>dl{padding:0}.kint-rich table pre{border-top:0;border-right:0}.kint-rich table thead th:first-child{background:none;border:0}.kint-rich table tr:hover>td{box-shadow:0 0 1px 0 #268bd2 inset}.kint-rich table tr:hover var{color:#2aa198}.kint-rich table ul.kint-tabs li.kint-active-tab{height:20px;line-height:17px}.kint-rich pre.kint-source{margin-left:-1px}.kint-rich pre.kint-source[data-kint-filename]:before{display:block;content:attr(data-kint-filename);margin-bottom:5px;padding-bottom:5px;border-bottom:1px solid #073642}.kint-rich pre.kint-source>div:before{display:inline-block;content:counter(kint-l);counter-increment:kint-l;border-right:1px solid #268bd2;padding-right:10px;margin-right:10px}.kint-rich pre.kint-source>div.kint-highlight{background:#073642}.kint-rich .kint-microtime-lap{text-shadow:-1px 0 #268bd2,0 1px #268bd2,1px 0 #268bd2,0 -1px #268bd2;color:#002b36;font-weight:bold}input.kint-note-input{width:100%}.kint-rich .kint-focused{box-shadow:0 0 3px 2px #859900 inset;border-radius:7px}.kint-rich>dl>dt,.kint-rich ul.kint-tabs{box-shadow:4px 0 2px -3px #268bd2 inset}.kint-rich ul.kint-tabs li.kint-active-tab{padding-top:7px;height:34px}.kint-rich footer li{color:#ddd} diff --git a/vendor/kint/kint-php/kint/resources/compiled/solarized.css b/vendor/kint/kint-php/kint/resources/compiled/solarized.css deleted file mode 100644 index 8c1a67f..0000000 --- a/vendor/kint/kint-php/kint/resources/compiled/solarized.css +++ /dev/null @@ -1 +0,0 @@ -.kint-rich{font-size:13px;overflow-x:auto;white-space:nowrap;background:rgba(255,255,255,.9)}.kint-rich.kint-folder{position:fixed;bottom:0;left:0;right:0;z-index:999999;width:100%;margin:0;display:block}.kint-rich.kint-folder dd.kint-foldout{max-height:calc(100vh - 100px);padding-right:10px;overflow-y:scroll;display:none}.kint-rich.kint-folder dd.kint-foldout.kint-show{display:block}.kint-rich::selection,.kint-rich::-moz-selection,.kint-rich::-webkit-selection{background:#268bd2;color:#657b83}.kint-rich .kint-focused{box-shadow:0 0 3px 2px #2aa198}.kint-rich,.kint-rich::before,.kint-rich::after,.kint-rich *,.kint-rich *::before,.kint-rich *::after{box-sizing:border-box;border-radius:0;color:#657b83;float:none !important;font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;line-height:15px;margin:0;padding:0;text-align:left}.kint-rich{margin:10px 0}.kint-rich dt,.kint-rich dl{width:auto}.kint-rich dt,.kint-rich div.access-path{background:#fdf6e3;border:1px solid #93a1a1;color:#657b83;display:block;font-weight:bold;list-style:none outside none;overflow:auto;padding:5px}.kint-rich dt:hover,.kint-rich div.access-path:hover{border-color:#268bd2}.kint-rich>dl dl{padding:0 0 0 15px}.kint-rich dt.kint-parent>nav,.kint-rich>footer>nav{background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMzAgMTUwIj48ZGVmcz48cGF0aCBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNNCAzYTI0IDMyIDAgMCAxIDAgMjQgNDAgMjAtMTAgMCAxIDIzLTEyQTQwIDIwIDEwIDAgMSA0IDN6IiBpZD0iYSIvPjwvZGVmcz48ZyBmaWxsPSIjOTNhMWExIiBzdHJva2U9IiM5M2ExYTEiPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAtMTUgNDUpIi8+PC9nPjxnIGZpbGw9IiM1ODZlNzUiIHN0cm9rZT0iIzU4NmU3NSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAzMCkiPjx1c2UgeGxpbms6aHJlZj0iI2EiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAtMTUgNDUpIi8+PC9nPjxwYXRoIGQ9Ik02IDEyNmwxOCAxOG0tMTggMGwxOC0xOCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9IiM1ODZlNzUiLz48L3N2Zz4=") no-repeat scroll 0 0/15px 75px rgba(0,0,0,0);cursor:pointer;display:inline-block;height:15px;width:15px;margin-right:3px;vertical-align:middle}.kint-rich dt.kint-parent:hover>nav,.kint-rich>footer>nav:hover{background-position:0 25%}.kint-rich dt.kint-parent.kint-show>nav,.kint-rich>footer.kint-show>nav{background-position:0 50%}.kint-rich dt.kint-parent.kint-show:hover>nav,.kint-rich>footer.kint-show>nav:hover{background-position:0 75%}.kint-rich dt.kint-parent.kint-locked>nav{background-position:0 100%}.kint-rich dt.kint-parent+dd{display:none;border-left:1px dashed #93a1a1}.kint-rich dt.kint-parent.kint-show+dd{display:block}.kint-rich var,.kint-rich var a{color:#268bd2;font-style:normal}.kint-rich dt:hover var,.kint-rich dt:hover var a{color:#2aa198}.kint-rich dfn{font-style:normal;font-family:monospace;color:#586e75}.kint-rich pre{color:#657b83;margin:0 0 0 15px;padding:5px;overflow-y:hidden;border-top:0;border:1px solid #93a1a1;background:#fdf6e3;display:block;word-break:normal}.kint-rich .kint-popup-trigger,.kint-rich .kint-access-path-trigger,.kint-rich .kint-search-trigger{background:rgba(101,123,131,.8);border-radius:3px;height:16px;font-size:16px;margin-left:5px;font-weight:bold;width:16px;text-align:center;float:right !important;cursor:pointer;color:#fdf6e3;position:relative;overflow:hidden;line-height:17.6px}.kint-rich .kint-popup-trigger:hover,.kint-rich .kint-access-path-trigger:hover,.kint-rich .kint-search-trigger:hover{color:#657b83;background:#fdf6e3}.kint-rich dt.kint-parent>.kint-popup-trigger{line-height:19.2px}.kint-rich .kint-search-trigger{font-size:20px}.kint-rich input.kint-search{display:none;border:1px solid #93a1a1;border-top-width:0;border-bottom-width:0;padding:5px;float:right !important;margin:-5px 0;color:#586e75;background:#eee8d5;height:26px;width:160px;position:relative;z-index:100}.kint-rich input.kint-search.kint-show{display:block}.kint-rich .kint-search-root ul.kint-tabs>li:not(.kint-search-match){background:#e2e2e2;opacity:.5}.kint-rich .kint-search-root dl:not(.kint-search-match){opacity:.5}.kint-rich .kint-search-root dl:not(.kint-search-match)>dt{background:#f0f0f0}.kint-rich .kint-search-root dl:not(.kint-search-match) dl,.kint-rich .kint-search-root dl:not(.kint-search-match) ul.kint-tabs>li:not(.kint-search-match){opacity:1}.kint-rich div.access-path{background:#eee8d5;display:none;margin-top:5px;padding:4px;white-space:pre}.kint-rich div.access-path.kint-show{display:block}.kint-rich footer{padding:0 3px 3px;font-size:9px;background:rgba(0,0,0,0)}.kint-rich footer>.kint-popup-trigger{background:rgba(0,0,0,0);color:#657b83}.kint-rich footer nav{height:10px;width:10px;background-size:10px 50px}.kint-rich footer>ol{display:none;margin-left:32px}.kint-rich footer.kint-show>ol{display:block}.kint-rich a{color:#657b83;text-shadow:none;text-decoration:underline}.kint-rich a:hover{color:#586e75;border-bottom:1px dotted #586e75}.kint-rich ul{list-style:none;padding-left:15px}.kint-rich ul:not(.kint-tabs) li{border-left:1px dashed #93a1a1}.kint-rich ul:not(.kint-tabs) li>dl{border-left:none}.kint-rich ul.kint-tabs{margin:0 0 0 15px;padding-left:0;background:#fdf6e3;border:1px solid #93a1a1;border-top:0}.kint-rich ul.kint-tabs>li{background:#eee8d5;border:1px solid #93a1a1;cursor:pointer;display:inline-block;height:30px;margin:3px;padding:0 15px;vertical-align:top}.kint-rich ul.kint-tabs>li:hover,.kint-rich ul.kint-tabs>li.kint-active-tab:hover{border-color:#268bd2;color:#2aa198}.kint-rich ul.kint-tabs>li.kint-active-tab{background:#fdf6e3;border-top:0;margin-top:-1px;height:27px;line-height:24px}.kint-rich ul.kint-tabs>li:not(.kint-active-tab){line-height:25px}.kint-rich ul.kint-tabs li+li{margin-left:0}.kint-rich ul.kint-tab-contents>li{display:none}.kint-rich ul.kint-tab-contents>li.kint-show{display:block}.kint-rich dt:hover+dd>ul>li.kint-active-tab{border-color:#268bd2;color:#2aa198}.kint-rich dt>.kint-color-preview{width:16px;height:16px;display:inline-block;vertical-align:middle;margin-left:10px;border:1px solid #93a1a1;background-color:#ccc;background-image:url('data:image/svg+xml;utf8,');background-size:100%}.kint-rich dt>.kint-color-preview:hover{border-color:#268bd2}.kint-rich dt>.kint-color-preview>div{width:100%;height:100%}.kint-rich table{border-collapse:collapse;empty-cells:show;border-spacing:0}.kint-rich table *{font-size:12px}.kint-rich table dt{background:none;padding:2.5px}.kint-rich table dt .kint-parent{min-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kint-rich table td,.kint-rich table th{border:1px solid #93a1a1;padding:2.5px;vertical-align:center}.kint-rich table th{cursor:alias}.kint-rich table td:first-child,.kint-rich table th{font-weight:bold;background:#eee8d5;color:#586e75}.kint-rich table td{background:#fdf6e3;white-space:pre}.kint-rich table td>dl{padding:0}.kint-rich table pre{border-top:0;border-right:0}.kint-rich table thead th:first-child{background:none;border:0}.kint-rich table tr:hover>td{box-shadow:0 0 1px 0 #268bd2 inset}.kint-rich table tr:hover var{color:#2aa198}.kint-rich table ul.kint-tabs li.kint-active-tab{height:20px;line-height:17px}.kint-rich pre.kint-source{margin-left:-1px}.kint-rich pre.kint-source[data-kint-filename]:before{display:block;content:attr(data-kint-filename);margin-bottom:5px;padding-bottom:5px;border-bottom:1px solid #eee8d5}.kint-rich pre.kint-source>div:before{display:inline-block;content:counter(kint-l);counter-increment:kint-l;border-right:1px solid #268bd2;padding-right:10px;margin-right:10px}.kint-rich pre.kint-source>div.kint-highlight{background:#eee8d5}.kint-rich .kint-microtime-lap{text-shadow:-1px 0 #268bd2,0 1px #268bd2,1px 0 #268bd2,0 -1px #268bd2;color:#fdf6e3;font-weight:bold}input.kint-note-input{width:100%}.kint-rich .kint-focused{box-shadow:0 0 3px 2px #859900 inset;border-radius:7px}.kint-rich>dl>dt,.kint-rich ul.kint-tabs{box-shadow:4px 0 2px -3px #268bd2 inset}.kint-rich ul.kint-tabs li.kint-active-tab{padding-top:7px;height:34px} diff --git a/vendor/kint/kint-php/kint/src/CallFinder.php b/vendor/kint/kint-php/kint/src/CallFinder.php deleted file mode 100644 index f85b1ae..0000000 --- a/vendor/kint/kint-php/kint/src/CallFinder.php +++ /dev/null @@ -1,568 +0,0 @@ - true, - T_COMMENT => true, - T_DOC_COMMENT => true, - T_INLINE_HTML => true, - T_OPEN_TAG => true, - T_OPEN_TAG_WITH_ECHO => true, - T_WHITESPACE => true, - ]; - - /** - * Things we need to do specially for operator tokens: - * - Refuse to strip spaces around them - * - Wrap the access path in parentheses if there - * are any of these in the final short parameter. - */ - private static $operator = [ - T_AND_EQUAL => true, - T_BOOLEAN_AND => true, - T_BOOLEAN_OR => true, - T_ARRAY_CAST => true, - T_BOOL_CAST => true, - T_CLASS => true, - T_CLONE => true, - T_CONCAT_EQUAL => true, - T_DEC => true, - T_DIV_EQUAL => true, - T_DOUBLE_CAST => true, - T_FUNCTION => true, - T_INC => true, - T_INCLUDE => true, - T_INCLUDE_ONCE => true, - T_INSTANCEOF => true, - T_INT_CAST => true, - T_IS_EQUAL => true, - T_IS_GREATER_OR_EQUAL => true, - T_IS_IDENTICAL => true, - T_IS_NOT_EQUAL => true, - T_IS_NOT_IDENTICAL => true, - T_IS_SMALLER_OR_EQUAL => true, - T_LOGICAL_AND => true, - T_LOGICAL_OR => true, - T_LOGICAL_XOR => true, - T_MINUS_EQUAL => true, - T_MOD_EQUAL => true, - T_MUL_EQUAL => true, - T_NEW => true, - T_OBJECT_CAST => true, - T_OR_EQUAL => true, - T_PLUS_EQUAL => true, - T_REQUIRE => true, - T_REQUIRE_ONCE => true, - T_SL => true, - T_SL_EQUAL => true, - T_SR => true, - T_SR_EQUAL => true, - T_STRING_CAST => true, - T_UNSET_CAST => true, - T_XOR_EQUAL => true, - T_POW => true, - T_POW_EQUAL => true, - T_SPACESHIP => true, - T_DOUBLE_ARROW => true, - '!' => true, - '%' => true, - '&' => true, - '*' => true, - '+' => true, - '-' => true, - '.' => true, - '/' => true, - ':' => true, - '<' => true, - '=' => true, - '>' => true, - '?' => true, - '^' => true, - '|' => true, - '~' => true, - ]; - - private static $strip = [ - '(' => true, - ')' => true, - '[' => true, - ']' => true, - '{' => true, - '}' => true, - T_OBJECT_OPERATOR => true, - T_DOUBLE_COLON => true, - T_NS_SEPARATOR => true, - ]; - - private static $classcalls = [ - T_DOUBLE_COLON => true, - T_OBJECT_OPERATOR => true, - ]; - - private static $namespace = [ - T_STRING => true, - ]; - - /** - * @psalm-param callable-array|callable-string $function - * - * @psalm-return list}> - * - * @return array List of matching calls on the relevant line - */ - public static function getFunctionCalls(string $source, int $line, $function): array - { - static $up = [ - '(' => true, - '[' => true, - '{' => true, - T_CURLY_OPEN => true, - T_DOLLAR_OPEN_CURLY_BRACES => true, - ]; - static $down = [ - ')' => true, - ']' => true, - '}' => true, - ]; - static $modifiers = [ - '!' => true, - '@' => true, - '~' => true, - '+' => true, - '-' => true, - ]; - static $identifier = [ - T_DOUBLE_COLON => true, - T_STRING => true, - T_NS_SEPARATOR => true, - ]; - - if (KINT_PHP74) { - self::$operator[T_FN] = true; - self::$operator[T_COALESCE_EQUAL] = true; - } - - if (KINT_PHP80) { - $up[T_ATTRIBUTE] = true; - self::$operator[T_MATCH] = true; - self::$strip[T_NULLSAFE_OBJECT_OPERATOR] = true; - self::$classcalls[T_NULLSAFE_OBJECT_OPERATOR] = true; - self::$namespace[T_NAME_FULLY_QUALIFIED] = true; - self::$namespace[T_NAME_QUALIFIED] = true; - self::$namespace[T_NAME_RELATIVE] = true; - $identifier[T_NAME_FULLY_QUALIFIED] = true; - $identifier[T_NAME_QUALIFIED] = true; - $identifier[T_NAME_RELATIVE] = true; - } - - /** @psalm-var list */ - $tokens = \token_get_all($source); - $cursor = 1; - $function_calls = []; - - // Performance optimization preventing backwards loops - /** @psalm-var array */ - $prev_tokens = [null, null, null]; - - if (\is_array($function)) { - $class = \explode('\\', $function[0]); - $class = \strtolower(\end($class)); - $function = \strtolower($function[1]); - } else { - $class = null; - /** - * @psalm-suppress RedundantFunctionCallGivenDocblockType - */ - $function = \strtolower($function); - } - - // Loop through tokens - foreach ($tokens as $index => $token) { - if (!\is_array($token)) { - continue; - } - - // Count newlines for line number instead of using $token[2] - // since certain situations (String tokens after whitespace) may - // not have the correct line number unless you do this manually - $cursor += \substr_count($token[1], "\n"); - if ($cursor > $line) { - break; - } - - // Store the last real tokens for later - if (isset(self::$ignore[$token[0]])) { - continue; - } - - $prev_tokens = [$prev_tokens[1], $prev_tokens[2], $token]; - - // Check if it's the right type to be the function we're looking for - if (!isset(self::$namespace[$token[0]])) { - continue; - } - - $ns = \explode('\\', \strtolower($token[1])); - - if (\end($ns) !== $function) { - continue; - } - - // Check if it's a function call - $nextReal = self::realTokenIndex($tokens, $index); - if (!isset($nextReal, $tokens[$nextReal]) || '(' !== $tokens[$nextReal]) { - continue; - } - - // Check if it matches the signature - if (null === $class) { - if ($prev_tokens[1] && isset(self::$classcalls[$prev_tokens[1][0]])) { - continue; - } - } else { - if (!$prev_tokens[1] || T_DOUBLE_COLON !== $prev_tokens[1][0]) { - continue; - } - - if (!$prev_tokens[0] || !isset(self::$namespace[$prev_tokens[0][0]])) { - continue; - } - - // All self::$namespace tokens are T_ constants - /** @psalm-var PhpTokenArray $prev_tokens[0] */ - $ns = \explode('\\', \strtolower($prev_tokens[0][1])); - - if (\end($ns) !== $class) { - continue; - } - } - - $inner_cursor = $cursor; - $depth = 1; // The depth respective to the function call - $offset = $nextReal + 1; // The start of the function call - $instring = false; // Whether we're in a string or not - $realtokens = false; // Whether the current scope contains anything meaningful or not - $paramrealtokens = false; // Whether the current parameter contains anything meaningful - $params = []; // All our collected parameters - $shortparam = []; // The short version of the parameter - $param_start = $offset; // The distance to the start of the parameter - - // Loop through the following tokens until the function call ends - while (isset($tokens[$offset])) { - $token = $tokens[$offset]; - - // Ensure that the $inner_cursor is correct and - // that $token is either a T_ constant or a string - if (\is_array($token)) { - $inner_cursor += \substr_count($token[1], "\n"); - } - - if (!isset(self::$ignore[$token[0]]) && !isset($down[$token[0]])) { - $paramrealtokens = $realtokens = true; - } - - // If it's a token that makes us to up a level, increase the depth - if (isset($up[$token[0]])) { - if (1 === $depth) { - $shortparam[] = $token; - $realtokens = false; - } - - ++$depth; - } elseif (isset($down[$token[0]])) { - --$depth; - - // If this brings us down to the parameter level, and we've had - // real tokens since going up, fill the $shortparam with an ellipsis - if (1 === $depth) { - if ($realtokens) { - $shortparam[] = '...'; - } - $shortparam[] = $token; - } - } elseif ('"' === $token[0]) { - // Strings use the same symbol for up and down, but we can - // only ever be inside one string, so just use a bool for that - if ($instring) { - --$depth; - if (1 === $depth) { - $shortparam[] = '...'; - } - } else { - ++$depth; - } - - $instring = !$instring; - - $shortparam[] = '"'; - } elseif (1 === $depth) { - if (',' === $token[0]) { - $params[] = [ - 'full' => \array_slice($tokens, $param_start, $offset - $param_start), - 'short' => $shortparam, - ]; - $shortparam = []; - $paramrealtokens = false; - $param_start = $offset + 1; - } elseif (T_CONSTANT_ENCAPSED_STRING === $token[0] && \strlen($token[1]) > 2) { - $shortparam[] = $token[1][0].'...'.$token[1][0]; - } else { - $shortparam[] = $token; - } - } - - // Depth has dropped to 0 (So we've hit the closing paren) - if ($depth <= 0) { - if ($paramrealtokens) { - $params[] = [ - 'full' => \array_slice($tokens, $param_start, $offset - $param_start), - 'short' => $shortparam, - ]; - } - - break; - } - - ++$offset; - } - - // If we're not passed (or at) the line at the end - // of the function call, we're too early so skip it - if ($inner_cursor < $line) { - continue; - } - - // Format the final output parameters - foreach ($params as &$param) { - $name = self::tokensFormatted($param['short']); - - $expression = false; - foreach ($name as $token) { - if (self::tokenIsOperator($token)) { - $expression = true; - break; - } - } - - $param = [ - 'name' => self::tokensToString($name), - 'path' => self::tokensToString(self::tokensTrim($param['full'])), - 'expression' => $expression, - ]; - } - - // Skip first-class callables - /** @psalm-var list $params */ - if (KINT_PHP81 && 1 === \count($params) && '...' === \reset($params)['path']) { - continue; - } - - // Get the modifiers - --$index; - - while (isset($tokens[$index])) { - if (!isset(self::$ignore[$tokens[$index][0]]) && !isset($identifier[$tokens[$index][0]])) { - break; - } - - --$index; - } - - $mods = []; - - while (isset($tokens[$index])) { - if (isset(self::$ignore[$tokens[$index][0]])) { - --$index; - continue; - } - - if (isset($modifiers[$tokens[$index][0]])) { - $mods[] = $tokens[$index]; - --$index; - continue; - } - - break; - } - - $function_calls[] = [ - 'parameters' => $params, - 'modifiers' => $mods, - ]; - } - - return $function_calls; - } - - /** - * @psalm-param PhpToken[] $tokens - */ - private static function realTokenIndex(array $tokens, int $index): ?int - { - ++$index; - - while (isset($tokens[$index])) { - if (!isset(self::$ignore[$tokens[$index][0]])) { - return $index; - } - - ++$index; - } - - return null; - } - - /** - * We need a separate method to check if tokens are operators because we - * occasionally add "..." to short parameter versions. If we simply check - * for `$token[0]` then "..." will incorrectly match the "." operator. - * - * @psalm-param PhpToken $token The token to check - */ - private static function tokenIsOperator($token): bool - { - return '...' !== $token && isset(self::$operator[$token[0]]); - } - - /** - * @psalm-param PhpToken[] $tokens - */ - private static function tokensToString(array $tokens): string - { - $out = ''; - - foreach ($tokens as $token) { - if (\is_string($token)) { - $out .= $token; - } else { - $out .= $token[1]; - } - } - - return $out; - } - - /** - * @psalm-param PhpToken[] $tokens - */ - private static function tokensTrim(array $tokens): array - { - foreach ($tokens as $index => $token) { - if (isset(self::$ignore[$token[0]])) { - unset($tokens[$index]); - } else { - break; - } - } - - $tokens = \array_reverse($tokens); - - foreach ($tokens as $index => $token) { - if (isset(self::$ignore[$token[0]])) { - unset($tokens[$index]); - } else { - break; - } - } - - return \array_reverse($tokens); - } - - /** - * @psalm-param PhpToken[] $tokens - * - * @psalm-return PhpToken[] - */ - private static function tokensFormatted(array $tokens): array - { - $tokens = self::tokensTrim($tokens); - - $space = false; - $attribute = false; - // Keep space between "strip" symbols for different behavior for matches or closures - // Normally we want to strip spaces between strip tokens: $x{...}[...] - // However with closures and matches we don't: function (...) {...} - $ignorestrip = false; - $output = []; - $last = null; - - if (T_FUNCTION === $tokens[0][0] || - (KINT_PHP74 && T_FN === $tokens[0][0]) || - (KINT_PHP80 && T_MATCH === $tokens[0][0]) - ) { - $ignorestrip = true; - } - - foreach ($tokens as $index => $token) { - if (isset(self::$ignore[$token[0]])) { - if ($space) { - continue; - } - - $next = self::realTokenIndex($tokens, $index); - if (null === $next) { - // This should be impossible, since we always call tokensTrim first - break; // @codeCoverageIgnore - } - $next = $tokens[$next]; - - /** @psalm-var PhpToken $last */ - if ($attribute && ']' === $last[0]) { - $attribute = false; - } elseif (!$ignorestrip && isset(self::$strip[$last[0]]) && !self::tokenIsOperator($next)) { - continue; - } - - if (!$ignorestrip && isset(self::$strip[$next[0]]) && $last && !self::tokenIsOperator($last)) { - continue; - } - - $token = ' '; - $space = true; - } else { - if (KINT_PHP80 && $last && T_ATTRIBUTE == $last[0]) { - $attribute = true; - } - - $space = false; - $last = $token; - } - - $output[] = $token; - } - - return $output; - } -} diff --git a/vendor/kint/kint-php/kint/src/FacadeInterface.php b/vendor/kint/kint-php/kint/src/FacadeInterface.php deleted file mode 100644 index da4badc..0000000 --- a/vendor/kint/kint-php/kint/src/FacadeInterface.php +++ /dev/null @@ -1,49 +0,0 @@ - '', - * app_path() => '', - * config_path() => '', - * database_path() => '', - * public_path() => '', - * resource_path() => '', - * storage_path() => '', - * ]; - * - * Defaults to [$_SERVER['DOCUMENT_ROOT'] => ''] - */ - public static $app_root_dirs = []; - - /** - * @var int depth limit for array/object traversal. 0 for no limit - */ - public static $depth_limit = 7; - - /** - * @var bool expand all trees by default for rich view - */ - public static $expanded = false; - - /** - * @var bool enable detection when Kint is command line. - * - * Formats output with whitespace only; does not HTML-escape it - */ - public static $cli_detection = true; - - /** - * @var array Kint aliases. Add debug functions in Kint wrappers here to fix modifiers and backtraces - */ - public static $aliases = [ - ['Kint\\Kint', 'dump'], - ['Kint\\Kint', 'trace'], - ['Kint\\Kint', 'dumpAll'], - ]; - - /** - * @psalm-var class-string[] Array of modes to renderer class names - */ - public static $renderers = [ - self::MODE_RICH => \Kint\Renderer\RichRenderer::class, - self::MODE_PLAIN => \Kint\Renderer\PlainRenderer::class, - self::MODE_TEXT => \Kint\Renderer\TextRenderer::class, - self::MODE_CLI => \Kint\Renderer\CliRenderer::class, - ]; - - /** - * @psalm-var class-string[] - */ - public static $plugins = [ - \Kint\Parser\ArrayLimitPlugin::class, - \Kint\Parser\ArrayObjectPlugin::class, - \Kint\Parser\Base64Plugin::class, - \Kint\Parser\BlacklistPlugin::class, - \Kint\Parser\ClassMethodsPlugin::class, - \Kint\Parser\ClassStaticsPlugin::class, - \Kint\Parser\ClosurePlugin::class, - \Kint\Parser\ColorPlugin::class, - \Kint\Parser\DateTimePlugin::class, - \Kint\Parser\EnumPlugin::class, - \Kint\Parser\FsPathPlugin::class, - \Kint\Parser\IteratorPlugin::class, - \Kint\Parser\JsonPlugin::class, - \Kint\Parser\MicrotimePlugin::class, - \Kint\Parser\SimpleXMLElementPlugin::class, - \Kint\Parser\SplFileInfoPlugin::class, - \Kint\Parser\SplObjectStoragePlugin::class, - \Kint\Parser\StreamPlugin::class, - \Kint\Parser\TablePlugin::class, - \Kint\Parser\ThrowablePlugin::class, - \Kint\Parser\TimestampPlugin::class, - \Kint\Parser\TracePlugin::class, - \Kint\Parser\XmlPlugin::class, - ]; - - protected static $plugin_pool = []; - - protected $parser; - protected $renderer; - - public function __construct(Parser $p, RendererInterface $r) - { - $this->parser = $p; - $this->renderer = $r; - } - - public function setParser(Parser $p): void - { - $this->parser = $p; - } - - public function getParser(): Parser - { - return $this->parser; - } - - public function setRenderer(RendererInterface $r): void - { - $this->renderer = $r; - } - - public function getRenderer(): RendererInterface - { - return $this->renderer; - } - - public function setStatesFromStatics(array $statics): void - { - $this->renderer->setStatics($statics); - - $this->parser->setDepthLimit(isset($statics['depth_limit']) ? $statics['depth_limit'] : 0); - $this->parser->clearPlugins(); - - if (!isset($statics['plugins'])) { - return; - } - - $plugins = []; - - foreach ($statics['plugins'] as $plugin) { - if ($plugin instanceof PluginInterface) { - $plugins[] = $plugin; - } elseif (\is_string($plugin) && \is_subclass_of($plugin, ConstructablePluginInterface::class)) { - if (!isset(static::$plugin_pool[$plugin])) { - $p = new $plugin(); - static::$plugin_pool[$plugin] = $p; - } - $plugins[] = static::$plugin_pool[$plugin]; - } - } - - $plugins = $this->renderer->filterParserPlugins($plugins); - - foreach ($plugins as $plugin) { - $this->parser->addPlugin($plugin); - } - } - - public function setStatesFromCallInfo(array $info): void - { - $this->renderer->setCallInfo($info); - - if (isset($info['modifiers']) && \is_array($info['modifiers']) && \in_array('+', $info['modifiers'], true)) { - $this->parser->setDepthLimit(0); - } - - $this->parser->setCallerClass(isset($info['caller']['class']) ? $info['caller']['class'] : null); - } - - public function dumpAll(array $vars, array $base): string - { - if (\array_keys($vars) !== \array_keys($base)) { - throw new InvalidArgumentException('Kint::dumpAll requires arrays of identical size and keys as arguments'); - } - - $output = $this->renderer->preRender(); - - if ([] === $vars) { - $output .= $this->renderer->renderNothing(); - } - - foreach ($vars as $key => $arg) { - if (!$base[$key] instanceof Value) { - throw new InvalidArgumentException('Kint::dumpAll requires all elements of the second argument to be Value instances'); - } - $output .= $this->dumpVar($arg, $base[$key]); - } - - $output .= $this->renderer->postRender(); - - return $output; - } - - /** - * Dumps and renders a var. - * - * @param mixed &$var Data to dump - * @param Value $base Base object - */ - protected function dumpVar(&$var, Value $base): string - { - return $this->renderer->render( - $this->parser->parse($var, $base) - ); - } - - /** - * Gets all static settings at once. - * - * @return array Current static settings - */ - public static function getStatics(): array - { - return [ - 'aliases' => static::$aliases, - 'app_root_dirs' => static::$app_root_dirs, - 'cli_detection' => static::$cli_detection, - 'depth_limit' => static::$depth_limit, - 'display_called_from' => static::$display_called_from, - 'enabled_mode' => static::$enabled_mode, - 'expanded' => static::$expanded, - 'file_link_format' => static::$file_link_format, - 'mode_default' => static::$mode_default, - 'mode_default_cli' => static::$mode_default_cli, - 'plugins' => static::$plugins, - 'renderers' => static::$renderers, - 'return' => static::$return, - ]; - } - - /** - * Creates a Kint instance based on static settings. - * - * @param array $statics array of statics as returned by getStatics - */ - public static function createFromStatics(array $statics): ?FacadeInterface - { - $mode = false; - - if (isset($statics['enabled_mode'])) { - $mode = $statics['enabled_mode']; - - if (true === $mode && isset($statics['mode_default'])) { - $mode = $statics['mode_default']; - - if (PHP_SAPI === 'cli' && !empty($statics['cli_detection']) && isset($statics['mode_default_cli'])) { - $mode = $statics['mode_default_cli']; - } - } - } - - if (false === $mode) { - return null; - } - - /** @psalm-var class-string[] $statics['renderers'] */ - if (isset($statics['renderers'][$mode]) && \is_subclass_of($statics['renderers'][$mode], RendererInterface::class)) { - $renderer = new $statics['renderers'][$mode](); - } else { - $renderer = new TextRenderer(); - } - - return new static(new Parser(), $renderer); - } - - /** - * Creates base objects given parameter info. - * - * @param array $params Parameters as returned from getCallInfo - * @param int $argc Number of arguments the helper was called with - * - * @return Value[] Base objects for the arguments - */ - public static function getBasesFromParamInfo(array $params, int $argc): array - { - static $blacklist = [ - 'null', - 'true', - 'false', - 'array(...)', - 'array()', - '[...]', - '[]', - '(...)', - '()', - '"..."', - 'b"..."', - "'...'", - "b'...'", - ]; - - $params = \array_values($params); - $bases = []; - - for ($i = 0; $i < $argc; ++$i) { - $param = $params[$i] ?? null; - - if (!isset($param['name']) || \is_numeric($param['name'])) { - $name = null; - } elseif (\in_array(\strtolower($param['name']), $blacklist, true)) { - $name = null; - } else { - $name = $param['name']; - } - - if (isset($param['path'])) { - $access_path = $param['path']; - - if (!empty($param['expression'])) { - $access_path = '('.$access_path.')'; - } - } else { - $access_path = '$'.$i; - } - - $bases[] = Value::blank($name, $access_path); - } - - return $bases; - } - - /** - * Gets call info from the backtrace, alias, and argument count. - * - * Aliases must be normalized beforehand (Utils::normalizeAliases) - * - * @param array $aliases Call aliases as found in Kint::$aliases - * @param array[] $trace Backtrace - * @param array $args Arguments - * - * @return array Call info - */ - public static function getCallInfo(array $aliases, array $trace, array $args): array - { - $found = false; - $callee = null; - $caller = null; - $miniTrace = []; - - foreach ($trace as $index => $frame) { - if (Utils::traceFrameIsListed($frame, $aliases)) { - $found = true; - $miniTrace = []; - } - - if (!Utils::traceFrameIsListed($frame, ['spl_autoload_call'])) { - $miniTrace[] = $frame; - } - } - - if ($found) { - $callee = \reset($miniTrace) ?: null; - $caller = \next($miniTrace) ?: null; - } - - foreach ($miniTrace as $index => $frame) { - if ((0 === $index && $callee === $frame) || isset($frame['file'], $frame['line'])) { - unset($frame['object'], $frame['args']); - $miniTrace[$index] = $frame; - } else { - unset($miniTrace[$index]); - } - } - - $miniTrace = \array_values($miniTrace); - - $call = static::getSingleCall($callee ?: [], $args); - - $ret = [ - 'params' => null, - 'modifiers' => [], - 'callee' => $callee, - 'caller' => $caller, - 'trace' => $miniTrace, - ]; - - if ($call) { - $ret['params'] = $call['parameters']; - $ret['modifiers'] = $call['modifiers']; - } - - return $ret; - } - - /** - * Dumps a backtrace. - * - * Functionally equivalent to Kint::dump(1) or Kint::dump(debug_backtrace(true)) - * - * @return int|string - */ - public static function trace() - { - if (false === static::$enabled_mode) { - return 0; - } - - Utils::normalizeAliases(static::$aliases); - - $call_info = static::getCallInfo(static::$aliases, \debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), []); - - $statics = static::getStatics(); - - if (\in_array('~', $call_info['modifiers'], true)) { - $statics['enabled_mode'] = static::MODE_TEXT; - } - - $kintstance = static::createFromStatics($statics); - if (!$kintstance) { - return 0; - } - - if (\in_array('-', $call_info['modifiers'], true)) { - while (\ob_get_level()) { - \ob_end_clean(); - } - } - - $kintstance->setStatesFromStatics($statics); - $kintstance->setStatesFromCallInfo($call_info); - - $trimmed_trace = []; - $trace = \debug_backtrace(); - - foreach ($trace as $frame) { - if (Utils::traceFrameIsListed($frame, static::$aliases)) { - $trimmed_trace = []; - } - - $trimmed_trace[] = $frame; - } - - \array_shift($trimmed_trace); - - $output = $kintstance->dumpAll( - [$trimmed_trace], - [Value::blank('Kint\\Kint::trace()', 'debug_backtrace()')] - ); - - if (static::$return || \in_array('@', $call_info['modifiers'], true)) { - return $output; - } - - echo $output; - - if (\in_array('-', $call_info['modifiers'], true)) { - \flush(); // @codeCoverageIgnore - } - - return 0; - } - - /** - * Dumps some data. - * - * Functionally equivalent to Kint::dump(1) or Kint::dump(debug_backtrace()) - * - * @psalm-param array ...$args - * - * @return int|string - */ - public static function dump(...$args) - { - if (false === static::$enabled_mode) { - return 0; - } - - Utils::normalizeAliases(static::$aliases); - - $call_info = static::getCallInfo(static::$aliases, \debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), $args); - - $statics = static::getStatics(); - - if (\in_array('~', $call_info['modifiers'], true)) { - $statics['enabled_mode'] = static::MODE_TEXT; - } - - $kintstance = static::createFromStatics($statics); - if (!$kintstance) { - return 0; - } - - if (\in_array('-', $call_info['modifiers'], true)) { - while (\ob_get_level()) { - \ob_end_clean(); - } - } - - $kintstance->setStatesFromStatics($statics); - $kintstance->setStatesFromCallInfo($call_info); - - $bases = static::getBasesFromParamInfo($call_info['params'] ?? [], \count($args)); - $output = $kintstance->dumpAll(\array_values($args), $bases); - - if (static::$return || \in_array('@', $call_info['modifiers'], true)) { - return $output; - } - - echo $output; - - if (\in_array('-', $call_info['modifiers'], true)) { - \flush(); // @codeCoverageIgnore - } - - return 0; - } - - /** - * generic path display callback, can be configured in app_root_dirs; purpose is - * to show relevant path info and hide as much of the path as possible. - */ - public static function shortenPath(string $file): string - { - $file = \array_values(\array_filter(\explode('/', \str_replace('\\', '/', $file)), 'strlen')); - - $longest_match = 0; - $match = '/'; - - foreach (static::$app_root_dirs as $path => $alias) { - /** @psalm-var string $path */ - if (empty($path)) { - continue; - } - - $path = \array_values(\array_filter(\explode('/', \str_replace('\\', '/', $path)), 'strlen')); - - if (\array_slice($file, 0, \count($path)) === $path && \count($path) > $longest_match) { - $longest_match = \count($path); - $match = $alias; - } - } - - if ($longest_match) { - $file = \array_merge([$match], \array_slice($file, $longest_match)); - - return \implode('/', $file); - } - - // fallback to find common path with Kint dir - $kint = \array_values(\array_filter(\explode('/', \str_replace('\\', '/', KINT_DIR)), 'strlen')); - - foreach ($file as $i => $part) { - if (!isset($kint[$i]) || $kint[$i] !== $part) { - return ($i ? '.../' : '/').\implode('/', \array_slice($file, $i)); - } - } - - return '/'.\implode('/', $file); - } - - public static function getIdeLink(string $file, int $line): string - { - return \str_replace(['%f', '%l'], [$file, $line], static::$file_link_format); - } - - /** - * Returns specific function call info from a stack trace frame, or null if no match could be found. - * - * @param array $frame The stack trace frame in question - * @param array $args The arguments - * - * @return ?array params and modifiers, or null if a specific call could not be determined - */ - protected static function getSingleCall(array $frame, array $args): ?array - { - if ( - !isset($frame['file'], $frame['line'], $frame['function']) || - !\is_readable($frame['file']) || - !$source = \file_get_contents($frame['file']) - ) { - return null; - } - - if (empty($frame['class'])) { - $callfunc = $frame['function']; - } else { - $callfunc = [$frame['class'], $frame['function']]; - } - - $calls = CallFinder::getFunctionCalls($source, $frame['line'], $callfunc); - - $argc = \count($args); - - $return = null; - - foreach ($calls as $call) { - $is_unpack = false; - - // Handle argument unpacking as a last resort - foreach ($call['parameters'] as $i => &$param) { - if (0 === \strpos($param['name'], '...')) { - $is_unpack = true; - - // If we're on the last param - if ($i < $argc && $i === \count($call['parameters']) - 1) { - unset($call['parameters'][$i]); - - if (Utils::isAssoc($args)) { - // Associated unpacked arrays can be accessed by key - $keys = \array_slice(\array_keys($args), $i); - - foreach ($keys as $key) { - $call['parameters'][] = [ - 'name' => \substr($param['name'], 3).'['.\var_export($key, true).']', - 'path' => \substr($param['path'], 3).'['.\var_export($key, true).']', - 'expression' => false, - ]; - } - } else { - // Numeric unpacked arrays have their order blown away like a pass - // through array_values so we can't access them directly at all - for ($j = 0; $j + $i < $argc; ++$j) { - $call['parameters'][] = [ - 'name' => 'array_values('.\substr($param['name'], 3).')['.$j.']', - 'path' => 'array_values('.\substr($param['path'], 3).')['.$j.']', - 'expression' => false, - ]; - } - } - - $call['parameters'] = \array_values($call['parameters']); - } else { - $call['parameters'] = \array_slice($call['parameters'], 0, $i); - } - - break; - } - - if ($i >= $argc) { - continue 2; - } - } - - if ($is_unpack || \count($call['parameters']) === $argc) { - if (null === $return) { - $return = $call; - } else { - // If we have multiple calls on the same line with the same amount of arguments, - // we can't be sure which it is so just return null and let them figure it out - return null; - } - } - } - - return $return; - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/AbstractPlugin.php b/vendor/kint/kint-php/kint/src/Parser/AbstractPlugin.php deleted file mode 100644 index a3f8968..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/AbstractPlugin.php +++ /dev/null @@ -1,45 +0,0 @@ -parser = $p; - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/ArrayLimitPlugin.php b/vendor/kint/kint-php/kint/src/Parser/ArrayLimitPlugin.php deleted file mode 100644 index 2e7fca9..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/ArrayLimitPlugin.php +++ /dev/null @@ -1,144 +0,0 @@ -= self::$trigger) { - throw new InvalidArgumentException('ArrayLimitPlugin::$limit can not be lower than ArrayLimitPlugin::$trigger'); - } - - $depth = $this->parser->getDepthLimit(); - - if (!$depth) { - return; - } - - if ($o->depth >= $depth - 1) { - return; - } - - if (\count($var) < self::$trigger) { - return; - } - - if (self::$numeric_only && Utils::isAssoc($var)) { - return; - } - - $base = clone $o; - $base->depth = $depth - 1; - $obj = $this->parser->parse($var, $base); - - if ('array' != $obj->type) { - return; // @codeCoverageIgnore - } - - $obj->depth = $o->depth; - $i = 0; - - foreach ($obj->value->contents as $child) { - // We only bother setting the correct depth for the first child, - // any deeper children should be cancelled by the depth limit - $child->depth = $o->depth + 1; - $this->recalcDepthLimit($child); - } - - $var2 = \array_slice($var, 0, self::$limit, true); - $base = clone $o; - $slice = $this->parser->parse($var2, $base); - - \array_splice($obj->value->contents, 0, self::$limit, $slice->value->contents); - - $o = $obj; - - $this->parser->haltParse(); - } - - protected function recalcDepthLimit(Value $o): void - { - $hintkey = \array_search('depth_limit', $o->hints, true); - if (false !== $hintkey) { - $o->hints[$hintkey] = 'array_limit'; - } - - $reps = $o->getRepresentations(); - if ($o->value) { - $reps[] = $o->value; - } - - foreach ($reps as $rep) { - if ($rep->contents instanceof Value) { - $this->recalcDepthLimit($rep->contents); - } elseif (\is_array($rep->contents)) { - foreach ($rep->contents as $child) { - if ($child instanceof Value) { - $this->recalcDepthLimit($child); - } - } - } - } - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/ArrayObjectPlugin.php b/vendor/kint/kint-php/kint/src/Parser/ArrayObjectPlugin.php deleted file mode 100644 index 82ff759..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/ArrayObjectPlugin.php +++ /dev/null @@ -1,65 +0,0 @@ -getFlags(); - - if (ArrayObject::STD_PROP_LIST === $flags) { - return; - } - - $var->setFlags(ArrayObject::STD_PROP_LIST); - - $o = $this->parser->parse($var, $o); - - $var->setFlags($flags); - - $this->parser->haltParse(); - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/Base64Plugin.php b/vendor/kint/kint-php/kint/src/Parser/Base64Plugin.php deleted file mode 100644 index a25a734..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/Base64Plugin.php +++ /dev/null @@ -1,96 +0,0 @@ -depth = $o->depth + 1; - $base_obj->name = 'base64_decode('.$o->name.')'; - - if ($o->access_path) { - $base_obj->access_path = 'base64_decode('.$o->access_path.')'; - } - - $r = new Representation('Base64'); - $r->contents = $this->parser->parse($data, $base_obj); - - if (\strlen($var) > self::$min_length_soft) { - $o->addRepresentation($r, 0); - } else { - $o->addRepresentation($r); - } - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/BinaryPlugin.php b/vendor/kint/kint-php/kint/src/Parser/BinaryPlugin.php deleted file mode 100644 index 56cf68a..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/BinaryPlugin.php +++ /dev/null @@ -1,51 +0,0 @@ -encoding, ['ASCII', 'UTF-8'], true)) { - $o->value->hints[] = 'binary'; - } - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/BlacklistPlugin.php b/vendor/kint/kint-php/kint/src/Parser/BlacklistPlugin.php deleted file mode 100644 index fa54a3a..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/BlacklistPlugin.php +++ /dev/null @@ -1,101 +0,0 @@ -blacklistValue($var, $o); - - return; - } - } - - if ($o->depth <= 0) { - return; - } - - foreach (self::$shallow_blacklist as $class) { - if ($var instanceof $class) { - $this->blacklistValue($var, $o); - - return; - } - } - } - - /** - * @param object &$var - */ - protected function blacklistValue(&$var, Value &$o): void - { - $object = new InstanceValue(); - $object->transplant($o); - $object->classname = \get_class($var); - $object->spl_object_hash = \spl_object_hash($var); - $object->clearRepresentations(); - $object->value = null; - $object->size = null; - $object->hints[] = 'blacklist'; - - $o = $object; - - $this->parser->haltParse(); - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/ClassMethodsPlugin.php b/vendor/kint/kint-php/kint/src/Parser/ClassMethodsPlugin.php deleted file mode 100644 index e71d537..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/ClassMethodsPlugin.php +++ /dev/null @@ -1,115 +0,0 @@ -getMethods() as $method) { - $methods[] = new MethodValue($method); - } - - \usort($methods, ['Kint\\Parser\\ClassMethodsPlugin', 'sort']); - - self::$cache[$class] = $methods; - } - - if (!empty(self::$cache[$class])) { - $rep = new Representation('Available methods', 'methods'); - - // Can't cache access paths - foreach (self::$cache[$class] as $m) { - $method = clone $m; - $method->depth = $o->depth + 1; - - if (!$this->parser->childHasPath($o, $method)) { - $method->access_path = null; - } else { - $method->setAccessPathFrom($o); - } - - if ($method->owner_class !== $class && $d = $method->getRepresentation('method_definition')) { - $d = clone $d; - $d->inherited = true; - $method->replaceRepresentation($d); - } - - $rep->contents[] = $method; - } - - $o->addRepresentation($rep); - } - } - - private static function sort(MethodValue $a, MethodValue $b): int - { - $sort = ((int) $a->static) - ((int) $b->static); - if ($sort) { - return $sort; - } - - $sort = Value::sortByAccess($a, $b); - if ($sort) { - return $sort; - } - - $sort = InstanceValue::sortByHierarchy($a->owner_class, $b->owner_class); - if ($sort) { - return $sort; - } - - return $a->startline - $b->startline; - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/ClassStaticsPlugin.php b/vendor/kint/kint-php/kint/src/Parser/ClassStaticsPlugin.php deleted file mode 100644 index 5435da9..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/ClassStaticsPlugin.php +++ /dev/null @@ -1,154 +0,0 @@ -getConstants() as $name => $val) { - // Skip enum constants - if ($var instanceof UnitEnum && $val instanceof UnitEnum && $o->classname == \get_class($val)) { - continue; - } - - $const = Value::blank($name); - $const->const = true; - $const->depth = $o->depth + 1; - $const->owner_class = $class; - $const->operator = Value::OPERATOR_STATIC; - - $creflection = new ReflectionClassConstant($class, $name); - - $const->access = Value::ACCESS_PUBLIC; - if ($creflection->isProtected()) { - $const->access = Value::ACCESS_PROTECTED; - } elseif ($creflection->isPrivate()) { - $const->access = Value::ACCESS_PRIVATE; - } - - if ($this->parser->childHasPath($o, $const)) { - $const->access_path = '\\'.$class.'::'.$name; - } - - $const = $this->parser->parse($val, $const); - - $consts[] = $const; - } - - self::$cache[$class] = $consts; - } - - $statics = new Representation('Static class properties', 'statics'); - $statics->contents = self::$cache[$class]; - - foreach ($reflection->getProperties(ReflectionProperty::IS_STATIC) as $static) { - $prop = new Value(); - $prop->name = '$'.$static->getName(); - $prop->depth = $o->depth + 1; - $prop->static = true; - $prop->operator = Value::OPERATOR_STATIC; - $prop->owner_class = $static->getDeclaringClass()->name; - - $prop->access = Value::ACCESS_PUBLIC; - if ($static->isProtected()) { - $prop->access = Value::ACCESS_PROTECTED; - } elseif ($static->isPrivate()) { - $prop->access = Value::ACCESS_PRIVATE; - } - - if ($this->parser->childHasPath($o, $prop)) { - $prop->access_path = '\\'.$prop->owner_class.'::'.$prop->name; - } - - $static->setAccessible(true); - - if (KINT_PHP74 && !$static->isInitialized()) { - $prop->type = 'uninitialized'; - $statics->contents[] = $prop; - } else { - $static = $static->getValue(); - $statics->contents[] = $this->parser->parse($static, $prop); - } - } - - if (empty($statics->contents)) { - return; - } - - \usort($statics->contents, ['Kint\\Parser\\ClassStaticsPlugin', 'sort']); - - $o->addRepresentation($statics); - } - - private static function sort(Value $a, Value $b): int - { - $sort = ((int) $a->const) - ((int) $b->const); - if ($sort) { - return $sort; - } - - $sort = Value::sortByAccess($a, $b); - if ($sort) { - return $sort; - } - - return InstanceValue::sortByHierarchy($a->owner_class, $b->owner_class); - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/ClosurePlugin.php b/vendor/kint/kint-php/kint/src/Parser/ClosurePlugin.php deleted file mode 100644 index 84ea582..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/ClosurePlugin.php +++ /dev/null @@ -1,96 +0,0 @@ -transplant($o); - $o = $object; - $object->removeRepresentation('properties'); - - $closure = new ReflectionFunction($var); - - $o->filename = $closure->getFileName(); - $o->startline = $closure->getStartLine(); - - foreach ($closure->getParameters() as $param) { - $o->parameters[] = new ParameterValue($param); - } - - $p = new Representation('Parameters'); - $p->contents = $o->parameters; - $o->addRepresentation($p, 0); - - $statics = []; - - if ($v = $closure->getClosureThis()) { - $statics = ['this' => $v]; - } - - if (\count($statics = $statics + $closure->getStaticVariables())) { - $statics_parsed = []; - - foreach ($statics as $name => &$static) { - $obj = Value::blank('$'.$name); - $obj->depth = $o->depth + 1; - $statics_parsed[$name] = $this->parser->parse($static, $obj); - if (null === $statics_parsed[$name]->value) { - $statics_parsed[$name]->access_path = null; - } - } - - $r = new Representation('Uses'); - $r->contents = $statics_parsed; - $o->addRepresentation($r, 0); - } - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/ColorPlugin.php b/vendor/kint/kint-php/kint/src/Parser/ColorPlugin.php deleted file mode 100644 index 2a58cb9..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/ColorPlugin.php +++ /dev/null @@ -1,65 +0,0 @@ - 32) { - return; - } - - $trimmed = \strtolower(\trim($var)); - - if (!isset(ColorRepresentation::$color_map[$trimmed]) && !\preg_match('/^(?:(?:rgb|hsl)[^\\)]{6,}\\)|#[0-9a-fA-F]{3,8})$/', $trimmed)) { - return; - } - - $rep = new ColorRepresentation($var); - - if ($rep->variant) { - $o->removeRepresentation($o->value); - $o->addRepresentation($rep, 0); - $o->hints[] = 'color'; - } - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/ConstructablePluginInterface.php b/vendor/kint/kint-php/kint/src/Parser/ConstructablePluginInterface.php deleted file mode 100644 index 689b24e..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/ConstructablePluginInterface.php +++ /dev/null @@ -1,33 +0,0 @@ - 'DOMNode', - 'firstChild' => 'DOMNode', - 'lastChild' => 'DOMNode', - 'previousSibling' => 'DOMNode', - 'nextSibling' => 'DOMNode', - 'ownerDocument' => 'DOMDocument', - ]; - - /** - * Show all properties and methods. - * - * @var bool - */ - public static $verbose = false; - - public function getTypes(): array - { - return ['object']; - } - - public function getTriggers(): int - { - return Parser::TRIGGER_SUCCESS; - } - - public function parse(&$var, Value &$o, int $trigger): void - { - if (!$o instanceof InstanceValue) { - return; - } - - if ($var instanceof DOMNamedNodeMap || $var instanceof DOMNodeList) { - $this->parseList($var, $o, $trigger); - - return; - } - - if ($var instanceof DOMNode) { - $this->parseNode($var, $o); - - return; - } - } - - /** - * @param DOMNamedNodeMap|DOMNodeList &$var - */ - protected function parseList($var, InstanceValue &$o, int $trigger): void - { - if (!$var instanceof DOMNamedNodeMap && !$var instanceof DOMNodeList) { - return; - } - - // Recursion should never happen, should always be stopped at the parent - // DOMNode. Depth limit on the other hand we're going to skip since - // that would show an empty iterator and rather useless. Let the depth - // limit hit the children (DOMNodeList only has DOMNode as children) - if ($trigger & Parser::TRIGGER_RECURSION) { - return; - } - - $o->size = $var->length; - if (0 === $o->size) { - $o->replaceRepresentation(new Representation('Iterator')); - $o->size = null; - - return; - } - - // Depth limit - // Make empty iterator representation since we need it in DOMNode to point out depth limits - if ($this->parser->getDepthLimit() && $o->depth + 1 >= $this->parser->getDepthLimit()) { - $b = new Value(); - $b->name = $o->classname.' Iterator Contents'; - $b->access_path = 'iterator_to_array('.$o->access_path.')'; - $b->depth = $o->depth + 1; - $b->hints[] = 'depth_limit'; - - $r = new Representation('Iterator'); - $r->contents = [$b]; - $o->replaceRepresentation($r, 0); - - return; - } - - $r = new Representation('Iterator'); - $o->replaceRepresentation($r, 0); - - foreach ($var as $key => $item) { - $base_obj = new Value(); - $base_obj->depth = $o->depth + 1; - $base_obj->name = $item->nodeName; - - if ($o->access_path) { - if ($var instanceof DOMNamedNodeMap) { - // We can't use getNamedItem() for attributes without a - // namespace because it will pick the first matching - // attribute of *any* namespace. - // - // Contrary to the PHP docs, getNamedItemNS takes null - // as a namespace argument for an unnamespaced item. - $base_obj->access_path = $o->access_path.'->getNamedItemNS('; - $base_obj->access_path .= \var_export($item->namespaceURI, true); - $base_obj->access_path .= ', '; - $base_obj->access_path .= \var_export($item->name, true); - $base_obj->access_path .= ')'; - } else { // DOMNodeList - $base_obj->access_path = $o->access_path.'->item('.\var_export($key, true).')'; - } - } - - $r->contents[] = $this->parser->parse($item, $base_obj); - } - } - - /** - * @psalm-param-out Value &$o - */ - protected function parseNode(DOMNode $var, InstanceValue &$o): void - { - // Fill the properties - // They can't be enumerated through reflection or casting, - // so we have to trust the docs and try them one at a time - $known_properties = [ - 'nodeValue', - 'childNodes', - 'attributes', - ]; - - if (self::$verbose) { - $known_properties = [ - 'nodeName', - 'nodeValue', - 'nodeType', - 'parentNode', - 'childNodes', - 'firstChild', - 'lastChild', - 'previousSibling', - 'nextSibling', - 'attributes', - 'ownerDocument', - 'namespaceURI', - 'prefix', - 'localName', - 'baseURI', - 'textContent', - ]; - } - - $childNodes = null; - $attributes = null; - - $rep = $o->value; - - foreach ($known_properties as $prop) { - $prop_obj = $this->parseProperty($o, $prop, $var); - $rep->contents[] = $prop_obj; - - if ('childNodes' === $prop) { - $childNodes = $prop_obj->getRepresentation('iterator'); - } elseif ('attributes' === $prop) { - $attributes = $prop_obj->getRepresentation('iterator'); - } - } - - if (!self::$verbose) { - $o->removeRepresentation('methods'); - $o->removeRepresentation('properties'); - } - - // Attributes and comments and text nodes don't - // need children or attributes of their own - if (\in_array($o->classname, ['DOMAttr', 'DOMText', 'DOMComment'], true)) { - $o = self::textualNodeToString($o); - - return; - } - - // Set the attributes - if ($attributes) { - $a = new Representation('Attributes'); - foreach ($attributes->contents as $attribute) { - $a->contents[] = $attribute; - } - $o->addRepresentation($a, 0); - } - - // Set the children - if ($childNodes) { - $c = new Representation('Children'); - - if (1 === \count($childNodes->contents) && ($node = \reset($childNodes->contents)) && \in_array('depth_limit', $node->hints, true)) { - $n = new InstanceValue(); - $n->transplant($node); - $n->name = 'childNodes'; - $n->classname = 'DOMNodeList'; - $c->contents = [$n]; - } else { - foreach ($childNodes->contents as $node) { - // Remove text nodes if theyre empty - if ($node instanceof BlobValue && '#text' === $node->name && (\ctype_space($node->value->contents) || '' === $node->value->contents)) { - continue; - } - - $c->contents[] = $node; - } - } - - $o->addRepresentation($c, 0); - } - - if ($childNodes) { - $o->size = \count($childNodes->contents); - } - - if (!$o->size) { - $o->size = null; - } - } - - protected function parseProperty(InstanceValue $o, string $prop, DOMNode &$var): Value - { - // Duplicating (And slightly optimizing) the Parser::parseObject() code here - $base_obj = new Value(); - $base_obj->depth = $o->depth + 1; - $base_obj->owner_class = $o->classname; - $base_obj->name = $prop; - $base_obj->operator = Value::OPERATOR_OBJECT; - $base_obj->access = Value::ACCESS_PUBLIC; - - if (null !== $o->access_path) { - $base_obj->access_path = $o->access_path; - - if (\preg_match('/^[A-Za-z0-9_]+$/', $base_obj->name)) { - $base_obj->access_path .= '->'.$base_obj->name; - } else { - $base_obj->access_path .= '->{'.\var_export($base_obj->name, true).'}'; - } - } - - if (!isset($var->{$prop})) { - $base_obj->type = 'null'; - } elseif (isset(self::$blacklist[$prop])) { - $b = new InstanceValue(); - $b->transplant($base_obj); - $base_obj = $b; - - $base_obj->hints[] = 'blacklist'; - $base_obj->classname = self::$blacklist[$prop]; - } elseif ('attributes' === $prop) { - // Attributes are strings. If we're too deep set the - // depth limit to enable parsing them, but no deeper. - if ($this->parser->getDepthLimit() && $this->parser->getDepthLimit() - 2 < $base_obj->depth) { - $base_obj->depth = $this->parser->getDepthLimit() - 2; - } - $base_obj = $this->parser->parse($var->{$prop}, $base_obj); - } else { - $base_obj = $this->parser->parse($var->{$prop}, $base_obj); - } - - return $base_obj; - } - - protected static function textualNodeToString(InstanceValue $o): Value - { - if (empty($o->value) || empty($o->value->contents) || empty($o->classname)) { - throw new InvalidArgumentException('Invalid DOMNode passed to DOMDocumentPlugin::textualNodeToString'); - } - - if (!\in_array($o->classname, ['DOMText', 'DOMAttr', 'DOMComment'], true)) { - throw new InvalidArgumentException('Invalid DOMNode passed to DOMDocumentPlugin::textualNodeToString'); - } - - foreach ($o->value->contents as $property) { - if ('nodeValue' === $property->name) { - $ret = clone $property; - $ret->name = $o->name; - - return $ret; - } - } - - throw new InvalidArgumentException('Invalid DOMNode passed to DOMDocumentPlugin::textualNodeToString'); - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/DateTimePlugin.php b/vendor/kint/kint-php/kint/src/Parser/DateTimePlugin.php deleted file mode 100644 index 038acea..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/DateTimePlugin.php +++ /dev/null @@ -1,57 +0,0 @@ -transplant($o); - - $o = $object; - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/EnumPlugin.php b/vendor/kint/kint-php/kint/src/Parser/EnumPlugin.php deleted file mode 100644 index d5d348a..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/EnumPlugin.php +++ /dev/null @@ -1,88 +0,0 @@ -contents = []; - - foreach ($var->cases() as $case) { - $base_obj = Value::blank($class.'::'.$case->name, '\\'.$class.'::'.$case->name); - $base_obj->depth = $o->depth + 1; - - if ($var instanceof BackedEnum) { - $c = $case->value; - $cases->contents[] = $this->parser->parse($c, $base_obj); - } else { - $cases->contents[] = $base_obj; - } - } - - self::$cache[$class] = $cases; - } - - $object = new EnumValue($var); - $object->transplant($o); - - $object->addRepresentation(self::$cache[$class], 0); - - $o = $object; - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/FsPathPlugin.php b/vendor/kint/kint-php/kint/src/Parser/FsPathPlugin.php deleted file mode 100644 index 1a98c6d..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/FsPathPlugin.php +++ /dev/null @@ -1,80 +0,0 @@ - 2048) { - return; - } - - if (!\preg_match('/[\\/\\'.DIRECTORY_SEPARATOR.']/', $var)) { - return; - } - - if (\preg_match('/[?<>"*|]/', $var)) { - return; - } - - try { - if (!@\file_exists($var)) { - return; - } - } catch (TypeError $e) {// @codeCoverageIgnore - // Only possible in PHP 7 - return; // @codeCoverageIgnore - } - - if (\in_array($var, self::$blacklist, true)) { - return; - } - - $r = new SplFileInfoRepresentation(new SplFileInfo($var)); - $r->hints[] = 'fspath'; - $o->addRepresentation($r, 0); - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/IteratorPlugin.php b/vendor/kint/kint-php/kint/src/Parser/IteratorPlugin.php deleted file mode 100644 index 7ebfe73..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/IteratorPlugin.php +++ /dev/null @@ -1,107 +0,0 @@ -name = $class.' Iterator Contents'; - $b->access_path = 'iterator_to_array('.$o->access_path.', true)'; - $b->depth = $o->depth + 1; - $b->hints[] = 'blacklist'; - - $r = new Representation('Iterator'); - $r->contents = [$b]; - - $o->addRepresentation($r); - - return; - } - } - - $data = \iterator_to_array($var); - - $base_obj = new Value(); - $base_obj->depth = $o->depth; - - if ($o->access_path) { - $base_obj->access_path = 'iterator_to_array('.$o->access_path.')'; - } - - $r = new Representation('Iterator'); - $r->contents = $this->parser->parse($data, $base_obj); - $r->contents = $r->contents->value->contents; - - $primary = $o->getRepresentations(); - $primary = \reset($primary); - if ($primary && $primary === $o->value && [] === $primary->contents) { - $o->addRepresentation($r, 0); - } else { - $o->addRepresentation($r); - } - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/JsonPlugin.php b/vendor/kint/kint-php/kint/src/Parser/JsonPlugin.php deleted file mode 100644 index 6bcf3a6..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/JsonPlugin.php +++ /dev/null @@ -1,75 +0,0 @@ -depth = $o->depth; - - if ($o->access_path) { - $base_obj->access_path = 'json_decode('.$o->access_path.', true)'; - } - - $r = new Representation('Json'); - $r->contents = $this->parser->parse($json, $base_obj); - - if (!\in_array('depth_limit', $r->contents->hints, true)) { - $r->contents = $r->contents->value->contents; - } - - $o->addRepresentation($r, 0); - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/MicrotimePlugin.php b/vendor/kint/kint-php/kint/src/Parser/MicrotimePlugin.php deleted file mode 100644 index 9531bbe..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/MicrotimePlugin.php +++ /dev/null @@ -1,107 +0,0 @@ -depth) { - return; - } - - if (\is_string($var)) { - if ('microtime()' !== $o->name || !\preg_match('/^0\\.[0-9]{8} [0-9]{10}$/', $var)) { - return; - } - - $usec = (int) \substr($var, 2, 6); - $sec = (int) \substr($var, 11, 10); - } else { - if ('microtime(...)' !== $o->name) { - return; - } - - $sec = (int) \floor($var); - $usec = $var - $sec; - $usec = (int) \floor($usec * 1000000); - } - - $time = $sec + ($usec / 1000000); - - if (null !== self::$last) { - $last_time = self::$last[0] + (self::$last[1] / 1000000); - $lap = $time - $last_time; - ++self::$times; - } else { - $lap = null; - self::$start = $time; - } - - self::$last = [$sec, $usec]; - - if (null !== $lap) { - $total = $time - self::$start; - $r = new MicrotimeRepresentation($sec, $usec, self::$group, $lap, $total, self::$times); - } else { - $r = new MicrotimeRepresentation($sec, $usec, self::$group); - } - $r->contents = $var; - $r->implicit_label = true; - - $o->removeRepresentation($o->value); - $o->addRepresentation($r); - $o->hints[] = 'microtime'; - } - - public static function clean(): void - { - self::$last = null; - self::$start = null; - self::$times = 0; - ++self::$group; - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/MysqliPlugin.php b/vendor/kint/kint-php/kint/src/Parser/MysqliPlugin.php deleted file mode 100644 index 22a23a9..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/MysqliPlugin.php +++ /dev/null @@ -1,194 +0,0 @@ - true, - 'connect_errno' => true, - 'connect_error' => true, - ]; - - // These are readable on empty mysqli objects, but not on failed connections - protected $empty_readable = [ - 'client_info' => true, - 'errno' => true, - 'error' => true, - ]; - - // These are only readable on connected mysqli objects - protected $connected_readable = [ - 'affected_rows' => true, - 'error_list' => true, - 'field_count' => true, - 'host_info' => true, - 'info' => true, - 'insert_id' => true, - 'server_info' => true, - 'server_version' => true, - 'sqlstate' => true, - 'protocol_version' => true, - 'thread_id' => true, - 'warning_count' => true, - ]; - - public function getTypes(): array - { - return ['object']; - } - - public function getTriggers(): int - { - return Parser::TRIGGER_COMPLETE; - } - - public function parse(&$var, Value &$o, int $trigger): void - { - if (!$var instanceof mysqli) { - return; - } - - /** @psalm-var ?string $var->sqlstate */ - try { - $connected = \is_string(@$var->sqlstate); - } catch (Throwable $t) { - $connected = false; - } - - /** @psalm-var ?string $var->client_info */ - try { - $empty = !$connected && \is_string(@$var->client_info); - } catch (Throwable $t) { // @codeCoverageIgnore - // Only possible in PHP 8.0. Before 8.0 there's no exception, - // after 8.1 there are no failed connection objects - $empty = false; // @codeCoverageIgnore - } - - foreach ($o->value->contents as $key => $obj) { - if (isset($this->connected_readable[$obj->name])) { - if (!$connected) { - // No failed connections after PHP 8.1 - continue; // @codeCoverageIgnore - } - } elseif (isset($this->empty_readable[$obj->name])) { - // No failed connections after PHP 8.1 - if (!$connected && !$empty) { // @codeCoverageIgnore - continue; // @codeCoverageIgnore - } - } elseif (!isset($this->always_readable[$obj->name])) { - continue; - } - - if ('null' !== $obj->type) { - continue; - } - - // @codeCoverageIgnoreStart - // All of this is irellevant after 8.1, - // we have separate logic for that below - - $param = $var->{$obj->name}; - - if (null === $param) { - continue; - } - - $base = Value::blank($obj->name, $obj->access_path); - - $base->depth = $obj->depth; - $base->owner_class = $obj->owner_class; - $base->operator = $obj->operator; - $base->access = $obj->access; - $base->reference = $obj->reference; - - $o->value->contents[$key] = $this->parser->parse($param, $base); - - // @codeCoverageIgnoreEnd - } - - // PHP81 returns an empty array when casting a mysqli instance - if (KINT_PHP81) { - $r = new ReflectionClass(mysqli::class); - - $basepropvalues = []; - - foreach ($r->getProperties() as $prop) { - if ($prop->isStatic()) { - continue; // @codeCoverageIgnore - } - - $pname = $prop->getName(); - $param = null; - - if (isset($this->connected_readable[$pname])) { - if ($connected) { - $param = $var->{$pname}; - } - } else { - $param = $var->{$pname}; - } - - $child = new Value(); - $child->depth = $o->depth + 1; - $child->owner_class = mysqli::class; - $child->operator = Value::OPERATOR_OBJECT; - $child->name = $pname; - - if ($prop->isPublic()) { - $child->access = Value::ACCESS_PUBLIC; - } elseif ($prop->isProtected()) { // @codeCoverageIgnore - $child->access = Value::ACCESS_PROTECTED; // @codeCoverageIgnore - } elseif ($prop->isPrivate()) { // @codeCoverageIgnore - $child->access = Value::ACCESS_PRIVATE; // @codeCoverageIgnore - } - - // We only do base mysqli properties so we don't need to worry about complex names - if ($this->parser->childHasPath($o, $child)) { - $child->access_path .= $o->access_path.'->'.$child->name; - } - - $basepropvalues[] = $this->parser->parse($param, $child); - } - - $o->value->contents = \array_merge($basepropvalues, $o->value->contents); - } - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/Parser.php b/vendor/kint/kint-php/kint/src/Parser/Parser.php deleted file mode 100644 index f044a9d..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/Parser.php +++ /dev/null @@ -1,655 +0,0 @@ -marker = "kint\0".\random_bytes(16); - - $this->depth_limit = $depth_limit; - $this->caller_class = $caller; - } - - /** - * Set the caller class. - */ - public function setCallerClass(string $caller = null): void - { - $this->noRecurseCall(); - - $this->caller_class = $caller; - } - - public function getCallerClass(): ?string - { - return $this->caller_class; - } - - /** - * Set the depth limit. - * - * @param int $depth_limit Maximum depth to parse data, 0 for none - */ - public function setDepthLimit(int $depth_limit = 0): void - { - $this->noRecurseCall(); - - $this->depth_limit = $depth_limit; - } - - public function getDepthLimit(): int - { - return $this->depth_limit; - } - - /** - * Parses a variable into a Kint object structure. - * - * @param mixed &$var The input variable - * @param Value $o The base object - */ - public function parse(&$var, Value $o): Value - { - $o->type = \strtolower(\gettype($var)); - - if (!$this->applyPlugins($var, $o, self::TRIGGER_BEGIN)) { - return $o; - } - - switch ($o->type) { - case 'array': - return $this->parseArray($var, $o); - case 'boolean': - case 'double': - case 'integer': - case 'null': - return $this->parseGeneric($var, $o); - case 'object': - return $this->parseObject($var, $o); - case 'resource': - return $this->parseResource($var, $o); - case 'string': - return $this->parseString($var, $o); - case 'unknown type': - case 'resource (closed)': - default: - return $this->parseResourceClosed($var, $o); - } - } - - public function addPlugin(PluginInterface $p): bool - { - if (!$types = $p->getTypes()) { - return false; - } - - if (!$triggers = $p->getTriggers()) { - return false; - } - - $p->setParser($this); - - foreach ($types as $type) { - if (!isset($this->plugins[$type])) { - $this->plugins[$type] = [ - self::TRIGGER_BEGIN => [], - self::TRIGGER_SUCCESS => [], - self::TRIGGER_RECURSION => [], - self::TRIGGER_DEPTH_LIMIT => [], - ]; - } - - foreach ($this->plugins[$type] as $trigger => &$pool) { - if ($triggers & $trigger) { - $pool[] = $p; - } - } - } - - return true; - } - - public function clearPlugins(): void - { - $this->plugins = []; - } - - public function haltParse(): void - { - $this->parse_break = true; - } - - public function childHasPath(InstanceValue $parent, Value $child): bool - { - if ('__PHP_Incomplete_Class' === $parent->classname) { - return false; - } - - if ('object' === $parent->type && (null !== $parent->access_path || $child->static || $child->const)) { - if (Value::ACCESS_PUBLIC === $child->access) { - return true; - } - - if (Value::ACCESS_PRIVATE === $child->access && $this->caller_class) { - if ($this->caller_class === $child->owner_class) { - return true; - } - } elseif (Value::ACCESS_PROTECTED === $child->access && $this->caller_class) { - if ($this->caller_class === $child->owner_class) { - return true; - } - - if (\is_subclass_of($this->caller_class, $child->owner_class)) { - return true; - } - - if (\is_subclass_of($child->owner_class, $this->caller_class)) { - return true; - } - } - } - - return false; - } - - /** - * Returns an array without the recursion marker in it. - * - * DO NOT pass an array that has had it's marker removed back - * into the parser, it will result in an extra recursion - * - * @param array $array Array potentially containing a recursion marker - * - * @return array Array with recursion marker removed - */ - public function getCleanArray(array $array): array - { - unset($array[$this->marker]); - - return $array; - } - - protected function noRecurseCall(): void - { - $bt = \debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT | DEBUG_BACKTRACE_IGNORE_ARGS); - - $caller_frame = [ - 'function' => __FUNCTION__, - ]; - - while (isset($bt[0]['object']) && $bt[0]['object'] === $this) { - $caller_frame = \array_shift($bt); - } - - foreach ($bt as $frame) { - if (isset($frame['object']) && $frame['object'] === $this) { - throw new DomainException(__CLASS__.'::'.$caller_frame['function'].' cannot be called from inside a parse'); - } - } - } - - /** - * @param null|bool|float|int &$var - */ - private function parseGeneric(&$var, Value $o): Value - { - $rep = new Representation('Contents'); - $rep->contents = $var; - $rep->implicit_label = true; - $o->addRepresentation($rep); - $o->value = $rep; - - $this->applyPlugins($var, $o, self::TRIGGER_SUCCESS); - - return $o; - } - - /** - * Parses a string into a Kint BlobValue structure. - * - * @param string &$var The input variable - * @param Value $o The base object - */ - private function parseString(string &$var, Value $o): Value - { - $string = new BlobValue(); - $string->transplant($o); - $string->encoding = BlobValue::detectEncoding($var); - $string->size = \strlen($var); - - $rep = new Representation('Contents'); - $rep->contents = $var; - $rep->implicit_label = true; - - $string->addRepresentation($rep); - $string->value = $rep; - - $this->applyPlugins($var, $string, self::TRIGGER_SUCCESS); - - return $string; - } - - /** - * Parses an array into a Kint object structure. - * - * @param array &$var The input variable - * @param Value $o The base object - */ - private function parseArray(array &$var, Value $o): Value - { - $array = new Value(); - $array->transplant($o); - $array->size = \count($var); - - if (isset($var[$this->marker])) { - --$array->size; - $array->hints[] = 'recursion'; - - $this->applyPlugins($var, $array, self::TRIGGER_RECURSION); - - return $array; - } - - $rep = new Representation('Contents'); - $rep->implicit_label = true; - $array->addRepresentation($rep); - $array->value = $rep; - - if (!$array->size) { - $this->applyPlugins($var, $array, self::TRIGGER_SUCCESS); - - return $array; - } - - if ($this->depth_limit && $o->depth >= $this->depth_limit) { - $array->hints[] = 'depth_limit'; - - $this->applyPlugins($var, $array, self::TRIGGER_DEPTH_LIMIT); - - return $array; - } - - $copy = \array_values($var); - - // It's really really hard to access numeric string keys in arrays, - // and it's really really hard to access integer properties in - // objects, so we just use array_values and index by counter to get - // at it reliably for reference testing. This also affects access - // paths since it's pretty much impossible to access these things - // without complicated stuff you should never need to do. - $i = 0; - - // Set the marker for recursion - $var[$this->marker] = $array->depth; - - $refmarker = new stdClass(); - - foreach ($var as $key => &$val) { - if ($key === $this->marker) { - continue; - } - - $child = new Value(); - $child->name = $key; - $child->depth = $array->depth + 1; - $child->access = Value::ACCESS_NONE; - $child->operator = Value::OPERATOR_ARRAY; - - if (null !== $array->access_path) { - if (\is_string($key) && (string) (int) $key === $key) { - $child->access_path = 'array_values('.$array->access_path.')['.$i.']'; // @codeCoverageIgnore - } else { - $child->access_path = $array->access_path.'['.\var_export($key, true).']'; - } - } - - $stash = $val; - try { - $copy[$i] = $refmarker; - } catch (TypeError $e) { - $child->reference = true; - } - if ($val === $refmarker) { - $child->reference = true; - $val = $stash; - } - - $rep->contents[] = $this->parse($val, $child); - ++$i; - } - - $this->applyPlugins($var, $array, self::TRIGGER_SUCCESS); - unset($var[$this->marker]); - - return $array; - } - - /** - * Parses an object into a Kint InstanceValue structure. - * - * @param object &$var The input variable - * @param Value $o The base object - */ - private function parseObject(&$var, Value $o): Value - { - $hash = \spl_object_hash($var); - $values = (array) $var; - - $object = new InstanceValue(); - $object->transplant($o); - $object->classname = \get_class($var); - $object->spl_object_hash = $hash; - $object->size = \count($values); - - if (KINT_PHP72) { - $object->spl_object_id = \spl_object_id($var); - } - - if (isset($this->object_hashes[$hash])) { - $object->hints[] = 'recursion'; - - $this->applyPlugins($var, $object, self::TRIGGER_RECURSION); - - return $object; - } - - $this->object_hashes[$hash] = $object; - - if ($this->depth_limit && $o->depth >= $this->depth_limit) { - $object->hints[] = 'depth_limit'; - - $this->applyPlugins($var, $object, self::TRIGGER_DEPTH_LIMIT); - unset($this->object_hashes[$hash]); - - return $object; - } - - $reflector = new ReflectionObject($var); - - if ($reflector->isUserDefined()) { - $object->filename = $reflector->getFileName(); - $object->startline = $reflector->getStartLine(); - } - - $rep = new Representation('Properties'); - - $readonly = []; - - // Reflection is both slower and more painful to use than array casting - // We only use it to identify readonly and uninitialized properties - if (KINT_PHP74 && '__PHP_Incomplete_Class' != $object->classname) { - $rprops = $reflector->getProperties(); - - while ($reflector = $reflector->getParentClass()) { - $rprops = \array_merge($rprops, $reflector->getProperties(ReflectionProperty::IS_PRIVATE)); - } - - foreach ($rprops as $rprop) { - if ($rprop->isStatic()) { - continue; - } - - $rprop->setAccessible(true); - - if (KINT_PHP81 && $rprop->isReadOnly()) { - if ($rprop->isPublic()) { - $readonly[$rprop->getName()] = true; - } elseif ($rprop->isProtected()) { - $readonly["\0*\0".$rprop->getName()] = true; - } elseif ($rprop->isPrivate()) { - $readonly["\0".$rprop->getDeclaringClass()->getName()."\0".$rprop->getName()] = true; - } - } - - if ($rprop->isInitialized($var)) { - continue; - } - - $undefined = null; - - $child = new Value(); - $child->type = 'undefined'; - $child->depth = $object->depth + 1; - $child->owner_class = $rprop->getDeclaringClass()->getName(); - $child->operator = Value::OPERATOR_OBJECT; - $child->name = $rprop->getName(); - $child->readonly = KINT_PHP81 && $rprop->isReadOnly(); - - if ($rprop->isPublic()) { - $child->access = Value::ACCESS_PUBLIC; - } elseif ($rprop->isProtected()) { - $child->access = Value::ACCESS_PROTECTED; - } elseif ($rprop->isPrivate()) { - $child->access = Value::ACCESS_PRIVATE; - } - - // Can't dynamically add undefined properties, so no need to use var_export - if ($this->childHasPath($object, $child)) { - $child->access_path .= $object->access_path.'->'.$child->name; - } - - if ($this->applyPlugins($undefined, $child, self::TRIGGER_BEGIN)) { - $this->applyPlugins($undefined, $child, self::TRIGGER_SUCCESS); - } - $rep->contents[] = $child; - } - } - - $copy = \array_values($values); - $refmarker = new stdClass(); - $i = 0; - - // Reflection will not show parent classes private properties, and if a - // property was unset it will happly trigger a notice looking for it. - foreach ($values as $key => &$val) { - // Casting object to array: - // private properties show in the form "\0$owner_class_name\0$property_name"; - // protected properties show in the form "\0*\0$property_name"; - // public properties show in the form "$property_name"; - // http://www.php.net/manual/en/language.types.array.php#language.types.array.casting - - $child = new Value(); - $child->depth = $object->depth + 1; - $child->owner_class = $object->classname; - $child->operator = Value::OPERATOR_OBJECT; - $child->access = Value::ACCESS_PUBLIC; - if (isset($readonly[$key])) { - $child->readonly = true; - } - - $split_key = \explode("\0", (string) $key, 3); - - if (3 === \count($split_key) && '' === $split_key[0]) { - $child->name = $split_key[2]; - if ('*' === $split_key[1]) { - $child->access = Value::ACCESS_PROTECTED; - } else { - $child->access = Value::ACCESS_PRIVATE; - $child->owner_class = $split_key[1]; - } - } elseif (KINT_PHP72) { - $child->name = (string) $key; - } else { - $child->name = $key; // @codeCoverageIgnore - } - - if ($this->childHasPath($object, $child)) { - $child->access_path = $object->access_path; - - if (!KINT_PHP72 && \is_int($child->name)) { - $child->access_path = 'array_values((array) '.$child->access_path.')['.$i.']'; // @codeCoverageIgnore - } elseif (\preg_match('/^[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*$/', $child->name)) { - $child->access_path .= '->'.$child->name; - } else { - $child->access_path .= '->{'.\var_export((string) $child->name, true).'}'; - } - } - - $stash = $val; - try { - $copy[$i] = $refmarker; - } catch (TypeError $e) { - $child->reference = true; - } - if ($val === $refmarker) { - $child->reference = true; - $val = $stash; - } - - $rep->contents[] = $this->parse($val, $child); - ++$i; - } - - $object->addRepresentation($rep); - $object->value = $rep; - $this->applyPlugins($var, $object, self::TRIGGER_SUCCESS); - unset($this->object_hashes[$hash]); - - return $object; - } - - /** - * Parses a resource into a Kint ResourceValue structure. - * - * @param resource &$var The input variable - * @param Value $o The base object - */ - private function parseResource(&$var, Value $o): Value - { - $resource = new ResourceValue(); - $resource->transplant($o); - $resource->resource_type = \get_resource_type($var); - - $this->applyPlugins($var, $resource, self::TRIGGER_SUCCESS); - - return $resource; - } - - /** - * Parses a closed resource into a Kint object structure. - * - * @param mixed &$var The input variable - * @param Value $o The base object - */ - private function parseResourceClosed(&$var, Value $o): Value - { - $o->type = 'resource (closed)'; - $this->applyPlugins($var, $o, self::TRIGGER_SUCCESS); - - return $o; - } - - /** - * Applies plugins for an object type. - * - * @param mixed &$var variable - * @param Value $o Kint object parsed so far - * @param int $trigger The trigger to check for the plugins - * - * @return bool Continue parsing - */ - private function applyPlugins(&$var, Value &$o, int $trigger): bool - { - $break_stash = $this->parse_break; - - /** @psalm-var bool */ - $this->parse_break = false; - - $plugins = []; - - if (isset($this->plugins[$o->type][$trigger])) { - $plugins = $this->plugins[$o->type][$trigger]; - } - - foreach ($plugins as $plugin) { - try { - $plugin->parse($var, $o, $trigger); - } catch (Exception $e) { - \trigger_error( - 'An exception ('.\get_class($e).') was thrown in '.$e->getFile().' on line '.$e->getLine().' while executing Kint Parser Plugin "'.\get_class($plugin).'". Error message: '.$e->getMessage(), - E_USER_WARNING - ); - } - - if ($this->parse_break) { - $this->parse_break = $break_stash; - - return false; - } - } - - $this->parse_break = $break_stash; - - return true; - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/PluginInterface.php b/vendor/kint/kint-php/kint/src/Parser/PluginInterface.php deleted file mode 100644 index 3afb1a7..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/PluginInterface.php +++ /dev/null @@ -1,44 +0,0 @@ -types = $types; - $this->triggers = $triggers; - $this->callback = $callback; - } - - public function setParser(Parser $p): void - { - $this->parser = $p; - } - - public function getTypes(): array - { - return $this->types; - } - - public function getTriggers(): int - { - return $this->triggers; - } - - public function parse(&$var, Value &$o, int $trigger): void - { - \call_user_func_array($this->callback, [&$var, &$o, $trigger, $this->parser]); - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/SerializePlugin.php b/vendor/kint/kint-php/kint/src/Parser/SerializePlugin.php deleted file mode 100644 index 4991087..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/SerializePlugin.php +++ /dev/null @@ -1,109 +0,0 @@ - Unserialization can result in code being loaded and executed due to - * > object instantiation and autoloading, and a malicious user may be able - * > to exploit this. - * - * The natural way to stop that from happening is to just refuse to unserialize - * stuff by default. Which is what we're doing for anything that's not scalar. - * - * @var bool - */ - public static $safe_mode = true; - - /** - * @var bool|class-string[] - */ - public static $allowed_classes = false; - - public function getTypes(): array - { - return ['string']; - } - - public function getTriggers(): int - { - return Parser::TRIGGER_SUCCESS; - } - - public function parse(&$var, Value &$o, int $trigger): void - { - $trimmed = \rtrim($var); - - if ('N;' !== $trimmed && !\preg_match('/^(?:[COabis]:\\d+[:;]|d:\\d+(?:\\.\\d+);)/', $trimmed)) { - return; - } - - $options = ['allowed_classes' => self::$allowed_classes]; - - if (!self::$safe_mode || !\in_array($trimmed[0], ['C', 'O', 'a'], true)) { - // Suppress warnings on unserializeable variable - $data = @\unserialize($trimmed, $options); - - if (false === $data && 'b:0;' !== \substr($trimmed, 0, 4)) { - return; - } - } - - $base_obj = new Value(); - $base_obj->depth = $o->depth + 1; - $base_obj->name = 'unserialize('.$o->name.')'; - - if ($o->access_path) { - $base_obj->access_path = 'unserialize('.$o->access_path; - if (true === self::$allowed_classes) { - $base_obj->access_path .= ')'; - } else { - $base_obj->access_path .= ', '.\var_export($options, true).')'; - } - } - - $r = new Representation('Serialized'); - - if (isset($data)) { - $r->contents = $this->parser->parse($data, $base_obj); - } else { - $base_obj->hints[] = 'blacklist'; - $r->contents = $base_obj; - } - - $o->addRepresentation($r, 0); - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/SimpleXMLElementPlugin.php b/vendor/kint/kint-php/kint/src/Parser/SimpleXMLElementPlugin.php deleted file mode 100644 index db6f9b9..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/SimpleXMLElementPlugin.php +++ /dev/null @@ -1,221 +0,0 @@ -removeRepresentation('properties'); - $o->removeRepresentation('iterator'); - $o->removeRepresentation('methods'); - } - - // An invalid SimpleXMLElement can gum up the works with - // warnings if we call stuff children/attributes on it. - if (!$var) { - $o->size = null; - - return; - } - - $x = new SimpleXMLElementValue(); - $x->transplant($o); - - $namespaces = \array_merge([null], $var->getDocNamespaces()); - - // Attributes - $a = new Representation('Attributes'); - - $base_obj = new Value(); - $base_obj->depth = $x->depth; - - if ($x->access_path) { - $base_obj->access_path = '(string) '.$x->access_path; - } - - // Attributes are strings. If we're too deep set the - // depth limit to enable parsing them, but no deeper. - if ($this->parser->getDepthLimit() && $this->parser->getDepthLimit() - 2 < $base_obj->depth) { - $base_obj->depth = $this->parser->getDepthLimit() - 2; - } - - $attribs = []; - - foreach ($namespaces as $nsAlias => $nsUrl) { - if ($nsAttribs = $var->attributes($nsUrl)) { - $cleanAttribs = []; - foreach ($nsAttribs as $name => $attrib) { - $cleanAttribs[(string) $name] = $attrib; - } - - if (null === $nsUrl) { - $obj = clone $base_obj; - if ($obj->access_path) { - $obj->access_path .= '->attributes()'; - } - - $a->contents = $this->parser->parse($cleanAttribs, $obj)->value->contents; - } else { - $obj = clone $base_obj; - if ($obj->access_path) { - $obj->access_path .= '->attributes('.\var_export($nsAlias, true).', true)'; - } - - $cleanAttribs = $this->parser->parse($cleanAttribs, $obj)->value->contents; - - foreach ($cleanAttribs as $attribute) { - $attribute->name = $nsAlias.':'.$attribute->name; - $a->contents[] = $attribute; - } - } - } - } - - if ($a->contents) { - $x->addRepresentation($a, 0); - } - - // Children - $c = new Representation('Children'); - - foreach ($namespaces as $nsAlias => $nsUrl) { - // This is doubling items because of the root namespace - // and the implicit namespace on its children. - $thisNs = $var->getNamespaces(); - if (isset($thisNs['']) && $thisNs[''] === $nsUrl) { - continue; - } - - if ($nsChildren = $var->children($nsUrl)) { - $nsap = []; - foreach ($nsChildren as $name => $child) { - $obj = new Value(); - $obj->depth = $x->depth + 1; - $obj->name = (string) $name; - if ($x->access_path) { - if (null === $nsUrl) { - $obj->access_path = $x->access_path.'->children()->'; - } else { - $obj->access_path = $x->access_path.'->children('.\var_export($nsAlias, true).', true)->'; - } - - if (\preg_match('/^[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]+$/', (string) $name)) { - $obj->access_path .= (string) $name; - } else { - $obj->access_path .= '{'.\var_export((string) $name, true).'}'; - } - - if (isset($nsap[$obj->access_path])) { - ++$nsap[$obj->access_path]; - $obj->access_path .= '['.$nsap[$obj->access_path].']'; - } else { - $nsap[$obj->access_path] = 0; - } - } - - $value = $this->parser->parse($child, $obj); - - if ($value->access_path && 'string' === $value->type) { - $value->access_path = '(string) '.$value->access_path; - } - - $c->contents[] = $value; - } - } - } - - $x->size = \count($c->contents); - - if ($x->size) { - $x->addRepresentation($c, 0); - } else { - $x->size = null; - - if (\strlen((string) $var)) { - $base_obj = new BlobValue(); - $base_obj->depth = $x->depth + 1; - $base_obj->name = $x->name; - if ($x->access_path) { - $base_obj->access_path = '(string) '.$x->access_path; - } - - $value = (string) $var; - - $s = $this->parser->parse($value, $base_obj); - $srep = $s->getRepresentation('contents'); - $svalrep = $s->value && 'contents' == $s->value->getName() ? $s->value : null; - - if ($srep || $svalrep) { - $x->setIsStringValue(true); - $x->value = $srep ?: $svalrep; - - if ($srep) { - $x->replaceRepresentation($srep, 0); - } - } - - $reps = \array_reverse($s->getRepresentations()); - - foreach ($reps as $rep) { - $x->addRepresentation($rep, 0); - } - } - } - - $o = $x; - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/SplFileInfoPlugin.php b/vendor/kint/kint-php/kint/src/Parser/SplFileInfoPlugin.php deleted file mode 100644 index 696f360..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/SplFileInfoPlugin.php +++ /dev/null @@ -1,57 +0,0 @@ -addRepresentation($r, 0); - $o->size = $r->getSize(); - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/SplObjectStoragePlugin.php b/vendor/kint/kint-php/kint/src/Parser/SplObjectStoragePlugin.php deleted file mode 100644 index bd671ad..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/SplObjectStoragePlugin.php +++ /dev/null @@ -1,56 +0,0 @@ -getRepresentation('iterator'))) { - return; - } - - $r = $o->getRepresentation('iterator'); - if ($r) { - $o->size = !\is_array($r->contents) ? null : \count($r->contents); - } - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/StreamPlugin.php b/vendor/kint/kint-php/kint/src/Parser/StreamPlugin.php deleted file mode 100644 index 748b53c..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/StreamPlugin.php +++ /dev/null @@ -1,83 +0,0 @@ -resource_type) { - return; - } - - // Doublecheck that the resource is open before we get the metadata - if (!\is_resource($var)) { - return; - } - - $meta = \stream_get_meta_data($var); - - $rep = new Representation('Stream'); - $rep->implicit_label = true; - - $base_obj = new Value(); - $base_obj->depth = $o->depth; - - if ($o->access_path) { - $base_obj->access_path = 'stream_get_meta_data('.$o->access_path.')'; - } - - $rep->contents = $this->parser->parse($meta, $base_obj); - - if (!\in_array('depth_limit', $rep->contents->hints, true)) { - $rep->contents = $rep->contents->value->contents; - } - - $o->addRepresentation($rep, 0); - $o->value = $rep; - - $stream = new StreamValue($meta); - $stream->transplant($o); - $o = $stream; - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/TablePlugin.php b/vendor/kint/kint-php/kint/src/Parser/TablePlugin.php deleted file mode 100644 index 5afe759..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/TablePlugin.php +++ /dev/null @@ -1,95 +0,0 @@ -value->contents)) { - return; - } - - $array = $this->parser->getCleanArray($var); - - if (\count($array) < 2) { - return; - } - - // Ensure this is an array of arrays and that all child arrays have the - // same keys. We don't care about their children - if there's another - // "table" inside we'll just make another one down the value tab - $keys = null; - foreach ($array as $elem) { - if (!\is_array($elem) || \count($elem) < 2) { - return; - } - - if (null === $keys) { - $keys = \array_keys($elem); - } elseif (\array_keys($elem) !== $keys) { - return; - } - } - - // Ensure none of the child arrays are recursion or depth limit. We - // don't care if their children are since they are the table cells - foreach ($o->value->contents as $childarray) { - if (empty($childarray->value->contents)) { - return; - } - } - - // Objects by reference for the win! We can do a copy-paste of the value - // representation contents and just slap a new hint on there and hey - // presto we have our table representation with no extra memory used! - $table = new Representation('Table'); - $table->contents = $o->value->contents; - $table->hints[] = 'table'; - $o->addRepresentation($table, 0); - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/ThrowablePlugin.php b/vendor/kint/kint-php/kint/src/Parser/ThrowablePlugin.php deleted file mode 100644 index 7fd065f..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/ThrowablePlugin.php +++ /dev/null @@ -1,61 +0,0 @@ -transplant($o); - $r = new SourceRepresentation($var->getFile(), $var->getLine()); - $r->showfilename = true; - $throw->addRepresentation($r, 0); - - $o = $throw; - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/TimestampPlugin.php b/vendor/kint/kint-php/kint/src/Parser/TimestampPlugin.php deleted file mode 100644 index 9136ca8..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/TimestampPlugin.php +++ /dev/null @@ -1,77 +0,0 @@ -value->label = 'Timestamp'; - $o->value->hints[] = 'timestamp'; - } - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/ToStringPlugin.php b/vendor/kint/kint-php/kint/src/Parser/ToStringPlugin.php deleted file mode 100644 index 478442b..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/ToStringPlugin.php +++ /dev/null @@ -1,69 +0,0 @@ -hasMethod('__toString')) { - return; - } - - foreach (self::$blacklist as $class) { - if ($var instanceof $class) { - return; - } - } - - $r = new Representation('toString'); - $r->contents = (string) $var; - - $o->addRepresentation($r); - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/TracePlugin.php b/vendor/kint/kint-php/kint/src/Parser/TracePlugin.php deleted file mode 100644 index a5f47dc..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/TracePlugin.php +++ /dev/null @@ -1,120 +0,0 @@ -value) { - return; - } - - $trace = $this->parser->getCleanArray($var); - - if (\count($trace) !== \count($o->value->contents) || !Utils::isTrace($trace)) { - return; - } - - $traceobj = new TraceValue(); - $traceobj->transplant($o); - $rep = $traceobj->value; - - $old_trace = $rep->contents; - - Utils::normalizeAliases(self::$blacklist); - $path_blacklist = self::normalizePaths(self::$path_blacklist); - - $rep->contents = []; - - foreach ($old_trace as $frame) { - $index = $frame->name; - - if (!isset($trace[$index]['function'])) { - // Something's very very wrong here, but it's probably a plugin's fault - continue; - } - - if (Utils::traceFrameIsListed($trace[$index], self::$blacklist)) { - continue; - } - - if (isset($trace[$index]['file']) && ($realfile = \realpath($trace[$index]['file']))) { - foreach ($path_blacklist as $path) { - if (0 === \strpos($realfile, $path)) { - continue 2; - } - } - } - - $rep->contents[$index] = new TraceFrameValue($frame, $trace[$index]); - } - - \ksort($rep->contents); - $rep->contents = \array_values($rep->contents); - - $traceobj->clearRepresentations(); - $traceobj->addRepresentation($rep); - $traceobj->size = \count($rep->contents); - $o = $traceobj; - } - - protected static function normalizePaths(array $paths): array - { - $normalized = []; - - foreach ($paths as $path) { - $realpath = \realpath($path); - if (\is_dir($realpath)) { - $realpath .= DIRECTORY_SEPARATOR; - } - - $normalized[] = $realpath; - } - - return $normalized; - } -} diff --git a/vendor/kint/kint-php/kint/src/Parser/XmlPlugin.php b/vendor/kint/kint-php/kint/src/Parser/XmlPlugin.php deleted file mode 100644 index a5a31ab..0000000 --- a/vendor/kint/kint-php/kint/src/Parser/XmlPlugin.php +++ /dev/null @@ -1,152 +0,0 @@ -access_path); - - if (empty($xml)) { - return; - } - - [$xml, $access_path, $name] = $xml; - - $base_obj = new Value(); - $base_obj->depth = $o->depth + 1; - $base_obj->name = $name; - $base_obj->access_path = $access_path; - - $r = new Representation('XML'); - $r->contents = $this->parser->parse($xml, $base_obj); - - $o->addRepresentation($r, 0); - } - - protected static function xmlToSimpleXML(string $var, ?string $parent_path): ?array - { - $errors = \libxml_use_internal_errors(true); - try { - $xml = \simplexml_load_string($var); - } catch (Exception $e) { - return null; - } finally { - \libxml_use_internal_errors($errors); - } - - if (false === $xml) { - return null; - } - - if (null === $parent_path) { - $access_path = null; - } else { - $access_path = 'simplexml_load_string('.$parent_path.')'; - } - - $name = $xml->getName(); - - return [$xml, $access_path, $name]; - } - - /** - * Get the DOMDocument info. - * - * If it errors loading then we wouldn't have gotten this far in the first place. - * - * @psalm-param non-empty-string $var The XML string - * - * @param ?string $parent_path The path to the parent, in this case the XML string - * - * @return ?array The root element DOMNode, the access path, and the root element name - */ - protected static function xmlToDOMDocument(string $var, ?string $parent_path): ?array - { - // There's no way to check validity in DOMDocument without making errors. For shame! - if (!self::xmlToSimpleXML($var, $parent_path)) { - return null; - } - - $xml = new DOMDocument(); - $xml->loadXML($var); - - if ($xml->childNodes->count() > 1) { - $xml = $xml->childNodes; - $access_path = 'childNodes'; - } else { - $xml = $xml->firstChild; - $access_path = 'firstChild'; - } - - if (null === $parent_path) { - $access_path = null; - } else { - $access_path = '(function($s){$x = new \\DomDocument(); $x->loadXML($s); return $x;})('.$parent_path.')->'.$access_path; - } - - $name = $xml->nodeName ?? null; - - return [$xml, $access_path, $name]; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/AbstractRenderer.php b/vendor/kint/kint-php/kint/src/Renderer/AbstractRenderer.php deleted file mode 100644 index adec8f0..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/AbstractRenderer.php +++ /dev/null @@ -1,175 +0,0 @@ - - * - * @psalm-consistent-constructor - */ -abstract class AbstractRenderer implements RendererInterface -{ - public const SORT_NONE = 0; - public const SORT_VISIBILITY = 1; - public const SORT_FULL = 2; - - protected $call_info = []; - protected $statics = []; - protected $show_trace = true; - - public function setCallInfo(array $info): void - { - if (!isset($info['modifiers']) || !\is_array($info['modifiers'])) { - $info['modifiers'] = []; - } - - if (!isset($info['trace']) || !\is_array($info['trace'])) { - $info['trace'] = []; - } - - $this->call_info = [ - 'params' => $info['params'] ?? null, - 'modifiers' => $info['modifiers'], - 'callee' => $info['callee'] ?? null, - 'caller' => $info['caller'] ?? null, - 'trace' => $info['trace'], - ]; - } - - public function getCallInfo(): array - { - return $this->call_info; - } - - public function setStatics(array $statics): void - { - $this->statics = $statics; - $this->setShowTrace(!empty($statics['display_called_from'])); - } - - public function getStatics(): array - { - return $this->statics; - } - - public function setShowTrace(bool $show_trace): void - { - $this->show_trace = $show_trace; - } - - public function getShowTrace(): bool - { - return $this->show_trace; - } - - public function filterParserPlugins(array $plugins): array - { - return $plugins; - } - - public function preRender(): string - { - return ''; - } - - public function postRender(): string - { - return ''; - } - - /** - * Returns the first compatible plugin available. - * - * @psalm-param PluginMap $plugins Array of hints to class strings - * @psalm-param string[] $hints Array of object hints - * - * @psalm-return PluginMap Array of hints to class strings filtered and sorted by object hints - */ - public function matchPlugins(array $plugins, array $hints): array - { - $out = []; - - foreach ($hints as $key) { - if (isset($plugins[$key])) { - $out[$key] = $plugins[$key]; - } - } - - return $out; - } - - public static function sortPropertiesFull(Value $a, Value $b): int - { - $sort = Value::sortByAccess($a, $b); - if ($sort) { - return $sort; - } - - $sort = Value::sortByName($a, $b); - if ($sort) { - return $sort; - } - - return InstanceValue::sortByHierarchy($a->owner_class, $b->owner_class); - } - - /** - * Sorts an array of Value. - * - * @param Value[] $contents Object properties to sort - * - * @return Value[] - */ - public static function sortProperties(array $contents, int $sort): array - { - switch ($sort) { - case self::SORT_VISIBILITY: - // Containers to quickly stable sort by type - $containers = [ - Value::ACCESS_PUBLIC => [], - Value::ACCESS_PROTECTED => [], - Value::ACCESS_PRIVATE => [], - Value::ACCESS_NONE => [], - ]; - - foreach ($contents as $item) { - $containers[$item->access][] = $item; - } - - return \call_user_func_array('array_merge', $containers); - case self::SORT_FULL: - \usort($contents, [self::class, 'sortPropertiesFull']); - // no break - default: - return $contents; - } - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/CliRenderer.php b/vendor/kint/kint-php/kint/src/Renderer/CliRenderer.php deleted file mode 100644 index c2ea103..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/CliRenderer.php +++ /dev/null @@ -1,182 +0,0 @@ -windows_output = true; - } else { - $stream = self::$windows_stream; - - if (!$stream && \defined('STDOUT')) { - $stream = STDOUT; - } - - if (!$stream) { - $this->windows_output = true; - } else { - $this->windows_output = !\sapi_windows_vt100_support($stream); - } - } - } - - if (!self::$terminal_width) { - if (!KINT_WIN && self::$detect_width) { - try { - self::$terminal_width = (int) \exec('tput cols'); - } catch (Throwable $t) { - self::$terminal_width = self::$default_width; - } - } - - if (self::$terminal_width < self::$min_terminal_width) { - self::$terminal_width = self::$default_width; - } - } - - $this->colors = $this->windows_output ? false : self::$cli_colors; - - $this->header_width = self::$terminal_width; - } - - public function colorValue(string $string): string - { - if (!$this->colors) { - return $string; - } - - return "\x1b[32m".\str_replace("\n", "\x1b[0m\n\x1b[32m", $string)."\x1b[0m"; - } - - public function colorType(string $string): string - { - if (!$this->colors) { - return $string; - } - - return "\x1b[35;1m".\str_replace("\n", "\x1b[0m\n\x1b[35;1m", $string)."\x1b[0m"; - } - - public function colorTitle(string $string): string - { - if (!$this->colors) { - return $string; - } - - return "\x1b[36m".\str_replace("\n", "\x1b[0m\n\x1b[36m", $string)."\x1b[0m"; - } - - public function renderTitle(Value $o): string - { - if ($this->windows_output) { - return $this->utf8ToWindows(parent::renderTitle($o)); - } - - return parent::renderTitle($o); - } - - public function preRender(): string - { - return PHP_EOL; - } - - public function postRender(): string - { - if ($this->windows_output) { - return $this->utf8ToWindows(parent::postRender()); - } - - return parent::postRender(); - } - - public function escape(string $string, $encoding = false): string - { - return \str_replace("\x1b", '\\x1b', $string); - } - - protected function utf8ToWindows(string $string): string - { - return \str_replace( - ['┌', '═', '┐', '│', '└', '─', '┘'], - [' ', '=', ' ', '|', ' ', '-', ' '], - $string - ); - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/PlainRenderer.php b/vendor/kint/kint-php/kint/src/Renderer/PlainRenderer.php deleted file mode 100644 index 7210f55..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/PlainRenderer.php +++ /dev/null @@ -1,237 +0,0 @@ - [ - ['Kint\\Renderer\\PlainRenderer', 'renderJs'], - ['Kint\\Renderer\\Text\\MicrotimePlugin', 'renderJs'], - ], - 'style' => [ - ['Kint\\Renderer\\PlainRenderer', 'renderCss'], - ], - 'raw' => [], - ]; - - /** - * Path to the CSS file to load by default. - * - * @var string - */ - public static $theme = 'plain.css'; - - /** - * Output htmlentities instead of utf8. - * - * @var bool - */ - public static $disable_utf8 = false; - - public static $needs_pre_render = true; - - public static $always_pre_render = false; - - protected $force_pre_render = false; - - public function __construct() - { - parent::__construct(); - $this->setForcePreRender(self::$always_pre_render); - } - - public function setCallInfo(array $info): void - { - parent::setCallInfo($info); - - if (\in_array('@', $this->call_info['modifiers'], true)) { - $this->setForcePreRender(true); - } - } - - public function setStatics(array $statics): void - { - parent::setStatics($statics); - - if (!empty($statics['return'])) { - $this->setForcePreRender(true); - } - } - - public function setForcePreRender(bool $force_pre_render): void - { - $this->force_pre_render = $force_pre_render; - } - - public function getForcePreRender(): bool - { - return $this->force_pre_render; - } - - public function shouldPreRender(): bool - { - return $this->getForcePreRender() || self::$needs_pre_render; - } - - public function colorValue(string $string): string - { - return ''.$string.''; - } - - public function colorType(string $string): string - { - return ''.$string.''; - } - - public function colorTitle(string $string): string - { - return ''.$string.''; - } - - public function renderTitle(Value $o): string - { - if (self::$disable_utf8) { - return $this->utf8ToHtmlentity(parent::renderTitle($o)); - } - - return parent::renderTitle($o); - } - - public function preRender(): string - { - $output = ''; - - if ($this->shouldPreRender()) { - foreach (self::$pre_render_sources as $type => $values) { - $contents = ''; - foreach ($values as $v) { - $contents .= \call_user_func($v, $this); - } - - if (!\strlen($contents)) { - continue; - } - - switch ($type) { - case 'script': - $output .= ''; - break; - case 'style': - $output .= ''; - break; - default: - $output .= $contents; - } - } - - // Don't pre-render on every dump - if (!$this->getForcePreRender()) { - self::$needs_pre_render = false; - } - } - - return $output.'
'; - } - - public function postRender(): string - { - if (self::$disable_utf8) { - return $this->utf8ToHtmlentity(parent::postRender()).'
'; - } - - return parent::postRender().''; - } - - public function ideLink(string $file, int $line): string - { - $path = $this->escape(Kint::shortenPath($file)).':'.$line; - $ideLink = Kint::getIdeLink($file, $line); - - if (!$ideLink) { - return $path; - } - - $class = ''; - - if (\preg_match('/https?:\\/\\//i', $ideLink)) { - $class = 'class="kint-ide-link" '; - } - - return ''.$path.''; - } - - public function escape(string $string, $encoding = false): string - { - if (false === $encoding) { - $encoding = BlobValue::detectEncoding($string); - } - - $original_encoding = $encoding; - - if (false === $encoding || 'ASCII' === $encoding) { - $encoding = 'UTF-8'; - } - - $string = \htmlspecialchars($string, ENT_NOQUOTES, $encoding); - - // this call converts all non-ASCII characters into numeirc htmlentities - if (\function_exists('mb_encode_numericentity') && 'ASCII' !== $original_encoding) { - $string = \mb_encode_numericentity($string, [0x80, 0xFFFF, 0, 0xFFFF], $encoding); - } - - return $string; - } - - protected function utf8ToHtmlentity(string $string): string - { - return \str_replace( - ['┌', '═', '┐', '│', '└', '─', '┘'], - ['┌', '═', '┐', '│', '└', '─', '┘'], - $string - ); - } - - protected static function renderJs(): string - { - return \file_get_contents(KINT_DIR.'/resources/compiled/shared.js').\file_get_contents(KINT_DIR.'/resources/compiled/plain.js'); - } - - protected static function renderCss(): string - { - if (\file_exists(KINT_DIR.'/resources/compiled/'.self::$theme)) { - return \file_get_contents(KINT_DIR.'/resources/compiled/'.self::$theme); - } - - return \file_get_contents(self::$theme); - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/RendererInterface.php b/vendor/kint/kint-php/kint/src/Renderer/RendererInterface.php deleted file mode 100644 index 577e9df..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/RendererInterface.php +++ /dev/null @@ -1,57 +0,0 @@ -renderer = $r; - } - - /** - * @param string $content The replacement for the getValueShort contents - */ - public function renderLockedHeader(Value $o, string $content): string - { - $header = '
'; - - if (RichRenderer::$access_paths && $o->depth > 0 && $ap = $o->getAccessPath()) { - $header .= ''; - } - - $header .= ''; - - if (null !== ($s = $o->getModifiers())) { - $header .= ''.$s.' '; - } - - if (null !== ($s = $o->getName())) { - $header .= ''.$this->renderer->escape($s).' '; - - if ($s = $o->getOperator()) { - $header .= $this->renderer->escape($s, 'ASCII').' '; - } - } - - if (null !== ($s = $o->getType())) { - if (RichRenderer::$escape_types) { - $s = $this->renderer->escape($s); - } - - if ($o->reference) { - $s = '&'.$s; - } - - $header .= ''.$s.''; - - if ($o instanceof InstanceValue && isset($o->spl_object_id)) { - $header .= '#'.((int) $o->spl_object_id); - } - - $header .= ' '; - } - - if (null !== ($s = $o->getSize())) { - if (RichRenderer::$escape_types) { - $s = $this->renderer->escape($s); - } - $header .= '('.$s.') '; - } - - $header .= $content; - - if (!empty($ap)) { - $header .= '
'.$this->renderer->escape($ap).'
'; - } - - return $header.'
'; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/ArrayLimitPlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/ArrayLimitPlugin.php deleted file mode 100644 index 15220e5..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/ArrayLimitPlugin.php +++ /dev/null @@ -1,38 +0,0 @@ -'.$this->renderLockedHeader($o, 'Array Limit').''; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/BinaryPlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/BinaryPlugin.php deleted file mode 100644 index 4cbce1a..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/BinaryPlugin.php +++ /dev/null @@ -1,62 +0,0 @@ -contents)) { - return null; - } - - $out = '
';
-
-        $lines = \str_split($r->contents, self::$line_length);
-
-        foreach ($lines as $index => $line) {
-            $out .= \sprintf('%08X', $index * self::$line_length).":\t";
-
-            $chunks = \str_split(\str_pad(\bin2hex($line), 2 * self::$line_length, ' '), self::$chunk_length);
-
-            $out .= \implode(' ', $chunks);
-            $out .= "\t".\preg_replace('/[^\\x20-\\x7E]/', '.', $line)."\n";
-        }
-
-        $out .= '
'; - - return $out; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/BlacklistPlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/BlacklistPlugin.php deleted file mode 100644 index 78064a7..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/BlacklistPlugin.php +++ /dev/null @@ -1,38 +0,0 @@ -'.$this->renderLockedHeader($o, 'Blacklisted').''; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/CallablePlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/CallablePlugin.php deleted file mode 100644 index 7443805..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/CallablePlugin.php +++ /dev/null @@ -1,130 +0,0 @@ -renderMethod($o); - } - - if ($o instanceof ClosureValue) { - return parent::renderValue($o); - } - - return null; - } - - protected function renderMethod(MethodValue $o): string - { - if (!empty(self::$method_cache[$o->owner_class][$o->name])) { - $children = self::$method_cache[$o->owner_class][$o->name]['children']; - - $header = $this->renderer->renderHeaderWrapper( - $o, - (bool) \strlen($children), - self::$method_cache[$o->owner_class][$o->name]['header'] - ); - - return '
'.$header.$children.'
'; - } - - $children = $this->renderer->renderChildren($o); - - $header = ''; - - if (null !== ($s = $o->getModifiers()) || $o->return_reference) { - $header .= ''.$s; - - if ($o->return_reference) { - if ($s) { - $header .= ' '; - } - $header .= $this->renderer->escape('&'); - } - - $header .= ' '; - } - - if (null !== ($s = $o->getName())) { - $function = $this->renderer->escape($s).'('.$this->renderer->escape($o->getParams()).')'; - - if (null !== ($url = $o->getPhpDocUrl())) { - $function = ''.$function.''; - } - - $header .= ''.$function.''; - } - - if (!empty($o->returntype)) { - $header .= ': '; - - if ($o->return_reference) { - $header .= $this->renderer->escape('&'); - } - - $header .= $this->renderer->escape($o->returntype).''; - } elseif ($o->docstring) { - if (\preg_match('/@return\\s+(.*)\\r?\\n/m', $o->docstring, $matches)) { - if (\trim($matches[1])) { - $header .= ': '.$this->renderer->escape(\trim($matches[1])).''; - } - } - } - - if (null !== ($s = $o->getValueShort())) { - if (RichRenderer::$strlen_max) { - $s = Utils::truncateString($s, RichRenderer::$strlen_max); - } - $header .= ' '.$this->renderer->escape($s); - } - - if (\strlen($o->owner_class) && \strlen($o->name)) { - self::$method_cache[$o->owner_class][$o->name] = [ - 'header' => $header, - 'children' => $children, - ]; - } - - $header = $this->renderer->renderHeaderWrapper($o, (bool) \strlen($children), $header); - - return '
'.$header.$children.'
'; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/ClosurePlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/ClosurePlugin.php deleted file mode 100644 index a2b5a7e..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/ClosurePlugin.php +++ /dev/null @@ -1,64 +0,0 @@ -renderer->renderChildren($o); - - $header = ''; - - if (null !== ($s = $o->getModifiers())) { - $header .= ''.$s.' '; - } - - if (null !== ($s = $o->getName())) { - $header .= ''.$this->renderer->escape($s).'('.$this->renderer->escape($o->getParams()).') '; - } - - $header .= 'Closure'; - if (isset($o->spl_object_id)) { - $header .= '#'.((int) $o->spl_object_id); - } - $header .= ' '.$this->renderer->escape(Kint::shortenPath($o->filename)).':'.(int) $o->startline; - - $header = $this->renderer->renderHeaderWrapper($o, (bool) \strlen($children), $header); - - return '
'.$header.$children.'
'; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/ColorPlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/ColorPlugin.php deleted file mode 100644 index f1de5fe..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/ColorPlugin.php +++ /dev/null @@ -1,102 +0,0 @@ -getRepresentation('color'); - - if (!$r instanceof ColorRepresentation) { - return null; - } - - $children = $this->renderer->renderChildren($o); - - $header = $this->renderer->renderHeader($o); - $header .= '
'; - - $header = $this->renderer->renderHeaderWrapper($o, (bool) \strlen($children), $header); - - return '
'.$header.$children.'
'; - } - - public function renderTab(Representation $r): ?string - { - if (!$r instanceof ColorRepresentation) { - return null; - } - - $out = ''; - - if ($color = $r->getColor(ColorRepresentation::COLOR_NAME)) { - $out .= ''.$color."\n"; - } - if ($color = $r->getColor(ColorRepresentation::COLOR_HEX_3)) { - $out .= ''.$color."\n"; - } - if ($color = $r->getColor(ColorRepresentation::COLOR_HEX_6)) { - $out .= ''.$color."\n"; - } - - if ($r->hasAlpha()) { - if ($color = $r->getColor(ColorRepresentation::COLOR_HEX_4)) { - $out .= ''.$color."\n"; - } - if ($color = $r->getColor(ColorRepresentation::COLOR_HEX_8)) { - $out .= ''.$color."\n"; - } - if ($color = $r->getColor(ColorRepresentation::COLOR_RGBA)) { - $out .= ''.$color."\n"; - } - if ($color = $r->getColor(ColorRepresentation::COLOR_HSLA)) { - $out .= ''.$color."\n"; - } - } else { - if ($color = $r->getColor(ColorRepresentation::COLOR_RGB)) { - $out .= ''.$color."\n"; - } - if ($color = $r->getColor(ColorRepresentation::COLOR_HSL)) { - $out .= ''.$color."\n"; - } - } - - if (!\strlen($out)) { - return null; - } - - return '
'.$out.'
'; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/DepthLimitPlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/DepthLimitPlugin.php deleted file mode 100644 index 3b73b6b..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/DepthLimitPlugin.php +++ /dev/null @@ -1,38 +0,0 @@ -'.$this->renderLockedHeader($o, 'Depth Limit').''; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/MethodDefinitionPlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/MethodDefinitionPlugin.php deleted file mode 100644 index f5ed37b..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/MethodDefinitionPlugin.php +++ /dev/null @@ -1,76 +0,0 @@ -contents)) { - $docstring = []; - foreach (\explode("\n", $r->contents) as $line) { - $docstring[] = \trim($line); - } - - $docstring = $this->renderer->escape(\implode("\n", $docstring)); - } - - $addendum = []; - if (isset($r->class) && $r->inherited) { - $addendum[] = 'Inherited from '.$this->renderer->escape($r->class); - } - - if (isset($r->file, $r->line)) { - $addendum[] = 'Defined in '.$this->renderer->escape(Kint::shortenPath($r->file)).':'.((int) $r->line); - } - - if ($addendum) { - $addendum = ''.\implode("\n", $addendum).''; - - if (isset($docstring)) { - $docstring .= "\n\n".$addendum; - } else { - $docstring = $addendum; - } - } - - if (!isset($docstring)) { - return null; - } - - return '
'.$docstring.'
'; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/MicrotimePlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/MicrotimePlugin.php deleted file mode 100644 index 086e814..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/MicrotimePlugin.php +++ /dev/null @@ -1,74 +0,0 @@ -getDateTime())) { - return null; - } - - $out = $dt->format('Y-m-d H:i:s.u'); - if (null !== $r->lap) { - $out .= '
SINCE LAST CALL: '.\round($r->lap, 4).'s.'; - } - if (null !== $r->total) { - $out .= '
SINCE START: '.\round($r->total, 4).'s.'; - } - if (null !== $r->avg) { - $out .= '
AVERAGE DURATION: '.\round($r->avg, 4).'s.'; - } - - $bytes = Utils::getHumanReadableBytes($r->mem); - $out .= '
MEMORY USAGE: '.$r->mem.' bytes ('.\round($bytes['value'], 3).' '.$bytes['unit'].')'; - $bytes = Utils::getHumanReadableBytes($r->mem_real); - $out .= ' (real '.\round($bytes['value'], 3).' '.$bytes['unit'].')'; - - $bytes = Utils::getHumanReadableBytes($r->mem_peak); - $out .= '
PEAK MEMORY USAGE: '.$r->mem_peak.' bytes ('.\round($bytes['value'], 3).' '.$bytes['unit'].')'; - $bytes = Utils::getHumanReadableBytes($r->mem_peak_real); - $out .= ' (real '.\round($bytes['value'], 3).' '.$bytes['unit'].')'; - - return '
'.$out.'
'; - } - - public static function renderJs(): string - { - if (\is_string($out = \file_get_contents(KINT_DIR.'/resources/compiled/microtime.js'))) { - return $out; - } - - return ''; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/PluginInterface.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/PluginInterface.php deleted file mode 100644 index bbdb8ac..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/PluginInterface.php +++ /dev/null @@ -1,35 +0,0 @@ -'.$this->renderLockedHeader($o, 'Recursion').''; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/SimpleXMLElementPlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/SimpleXMLElementPlugin.php deleted file mode 100644 index 87d9870..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/SimpleXMLElementPlugin.php +++ /dev/null @@ -1,56 +0,0 @@ -isStringValue() || !empty($o->getRepresentation('attributes')->contents)) { - return null; - } - - $b = new BlobValue(); - $b->transplant($o); - $b->type = 'string'; - - $children = $this->renderer->renderChildren($b); - $header = $this->renderer->renderHeader($o); - $header = $this->renderer->renderHeaderWrapper($o, (bool) \strlen($children), $header); - - return '
'.$header.$children.'
'; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/SourcePlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/SourcePlugin.php deleted file mode 100644 index a02f7ec..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/SourcePlugin.php +++ /dev/null @@ -1,83 +0,0 @@ -source)) { - return null; - } - - $source = $r->source; - - // Trim empty lines from the start and end of the source - foreach ($source as $linenum => $line) { - if (\strlen(\trim($line)) || $linenum === $r->line) { - break; - } - - unset($source[$linenum]); - } - - foreach (\array_reverse($source, true) as $linenum => $line) { - if (\strlen(\trim($line)) || $linenum === $r->line) { - break; - } - - unset($source[$linenum]); - } - - $output = ''; - - foreach ($source as $linenum => $line) { - if ($linenum === $r->line) { - $output .= '
'.$this->renderer->escape($line)."\n".'
'; - } else { - $output .= '
'.$this->renderer->escape($line)."\n".'
'; - } - } - - if ($output) { - \reset($source); - - $data = ''; - if ($r->showfilename) { - $data = ' data-kint-filename="'.$this->renderer->escape($r->filename).'"'; - } - - return '
'.$output.'
'; - } - - return null; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/TabPluginInterface.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/TabPluginInterface.php deleted file mode 100644 index fb310af..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/TabPluginInterface.php +++ /dev/null @@ -1,35 +0,0 @@ -'; - - $firstrow = \reset($r->contents); - - foreach ($firstrow->value->contents as $field) { - $out .= ''; - } - - $out .= ''; - - foreach ($r->contents as $row) { - $out .= ''; - - foreach ($row->value->contents as $field) { - $out .= 'getType())) { - $type = $this->renderer->escape($s); - - if ($field->reference) { - $ref = '&'; - $type = $ref.$type; - } - - if (null !== ($s = $field->getSize())) { - $size .= ' ('.$this->renderer->escape($s).')'; - } - } - - if ($type) { - $out .= ' title="'.$type.$size.'"'; - } - - $out .= '>'; - - switch ($field->type) { - case 'boolean': - $out .= $field->value->contents ? ''.$ref.'true' : ''.$ref.'false'; - break; - case 'integer': - case 'double': - $out .= (string) $field->value->contents; - break; - case 'null': - $out .= ''.$ref.'null'; - break; - case 'string': - if ($field->encoding) { - $val = $field->value->contents; - if (RichRenderer::$strlen_max && self::$respect_str_length) { - $val = Utils::truncateString($val, RichRenderer::$strlen_max); - } - - $out .= $this->renderer->escape($val); - } else { - $out .= ''.$type.''; - } - break; - case 'array': - $out .= ''.$ref.'array'.$size; - break; - case 'object': - $out .= ''.$ref.$this->renderer->escape($field->classname).''.$size; - break; - case 'resource': - $out .= ''.$ref.'resource'; - break; - default: - $out .= ''.$ref.'unknown'; - break; - } - - if (\in_array('blacklist', $field->hints, true)) { - $out .= ' Blacklisted'; - } elseif (\in_array('recursion', $field->hints, true)) { - $out .= ' Recursion'; - } elseif (\in_array('depth_limit', $field->hints, true)) { - $out .= ' Depth Limit'; - } - - $out .= ''; - } - - $out .= ''; - } - - $out .= '
'; - if (null !== ($s = $field->getName())) { - $out .= $this->renderer->escape($s); - } - $out .= '
'; - if (null !== ($s = $row->getName())) { - $out .= $this->renderer->escape($s); - } - $out .= '
'; - - return $out; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/TimestampPlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/TimestampPlugin.php deleted file mode 100644 index 43abfb6..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/TimestampPlugin.php +++ /dev/null @@ -1,44 +0,0 @@ -contents)) { - return '
'.$dt->setTimeZone(new DateTimeZone('UTC'))->format('Y-m-d H:i:s T').'
'; - } - - return null; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/TraceFramePlugin.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/TraceFramePlugin.php deleted file mode 100644 index 147e2e3..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/TraceFramePlugin.php +++ /dev/null @@ -1,70 +0,0 @@ -trace['file']) && !empty($o->trace['line'])) { - $header = ''.$this->renderer->ideLink($o->trace['file'], (int) $o->trace['line']).' '; - } else { - $header = 'PHP internal call '; - } - - if ($o->trace['class']) { - $header .= $this->renderer->escape($o->trace['class'].$o->trace['type']); - } - - if (\is_string($o->trace['function'])) { - $function = $this->renderer->escape($o->trace['function'].'()'); - } else { - $function = $this->renderer->escape( - $o->trace['function']->getName().'('.$o->trace['function']->getParams().')' - ); - - if (null !== ($url = $o->trace['function']->getPhpDocUrl())) { - $function = ''.$function.''; - } - } - - $header .= ''.$function.''; - - $children = $this->renderer->renderChildren($o); - $header = $this->renderer->renderHeaderWrapper($o, (bool) \strlen($children), $header); - - return '
'.$header.$children.'
'; - } -} diff --git a/vendor/kint/kint-php/kint/src/Renderer/Rich/ValuePluginInterface.php b/vendor/kint/kint-php/kint/src/Renderer/Rich/ValuePluginInterface.php deleted file mode 100644 index 112a7f7..0000000 --- a/vendor/kint/kint-php/kint/src/Renderer/Rich/ValuePluginInterface.php +++ /dev/null @@ -1,35 +0,0 @@ - Rich\ArrayLimitPlugin::class, - 'blacklist' => Rich\BlacklistPlugin::class, - 'callable' => Rich\CallablePlugin::class, - 'color' => Rich\ColorPlugin::class, - 'depth_limit' => Rich\DepthLimitPlugin::class, - 'recursion' => Rich\RecursionPlugin::class, - 'simplexml_element' => Rich\SimpleXMLElementPlugin::class, - 'trace_frame' => Rich\TraceFramePlugin::class, - ]; - - /** - * RichRenderer tab plugins should implement TabPluginInterface. - * - * @psalm-var PluginMap - */ - public static $tab_plugins = [ - 'binary' => Rich\BinaryPlugin::class, - 'color' => Rich\ColorPlugin::class, - 'method_definition' => Rich\MethodDefinitionPlugin::class, - 'microtime' => Rich\MicrotimePlugin::class, - 'source' => Rich\SourcePlugin::class, - 'table' => Rich\TablePlugin::class, - 'timestamp' => Rich\TimestampPlugin::class, - ]; - - public static $pre_render_sources = [ - 'script' => [ - [self::class, 'renderJs'], - [Rich\MicrotimePlugin::class, 'renderJs'], - ], - 'style' => [ - [self::class, 'renderCss'], - ], - 'raw' => [], - ]; - - /** - * Whether or not to render access paths. - * - * Access paths can become incredibly heavy with very deep and wide - * structures. Given mostly public variables it will typically make - * up one quarter of the output HTML size. - * - * If this is an unacceptably large amount and your browser is groaning - * under the weight of the access paths - your first order of buisiness - * should be to get a new browser. Failing that, use this to turn them off. - * - * @var bool - */ - public static $access_paths = true; - - /** - * The maximum length of a string before it is truncated. - * - * Falsey to disable - * - * @var int - */ - public static $strlen_max = 80; - - /** - * Path to the CSS file to load by default. - * - * @var string - */ - public static $theme = 'original.css'; - - /** - * Assume types and sizes don't need to be escaped. - * - * Turn this off if you use anything but ascii in your class names, - * but it'll cause a slowdown of around 10% - * - * @var bool - */ - public static $escape_types = false; - - /** - * Move all dumps to a folder at the bottom of the body. - * - * @var bool - */ - public static $folder = false; - - /** - * Sort mode for object properties. - * - * @var int - */ - public static $sort = self::SORT_NONE; - - /** - * Timestamp to print in footer in date() format. - * - * @var ?string - */ - public static $timestamp = null; - - public static $needs_pre_render = true; - public static $needs_folder_render = true; - - public static $always_pre_render = false; - - public static $js_nonce = null; - public static $css_nonce = null; - - protected $plugin_objs = []; - protected $expand = false; - protected $force_pre_render = false; - protected $use_folder = false; - - public function __construct() - { - $this->setUseFolder(self::$folder); - $this->setForcePreRender(self::$always_pre_render); - } - - public function setCallInfo(array $info): void - { - parent::setCallInfo($info); - - if (\in_array('!', $this->call_info['modifiers'], true)) { - $this->setExpand(true); - $this->setUseFolder(false); - } - - if (\in_array('@', $this->call_info['modifiers'], true)) { - $this->setForcePreRender(true); - } - } - - public function setStatics(array $statics): void - { - parent::setStatics($statics); - - if (!empty($statics['expanded'])) { - $this->setExpand(true); - } - - if (!empty($statics['return'])) { - $this->setForcePreRender(true); - } - } - - public function setExpand(bool $expand): void - { - $this->expand = $expand; - } - - public function getExpand(): bool - { - return $this->expand; - } - - public function setForcePreRender(bool $force_pre_render): void - { - $this->force_pre_render = $force_pre_render; - } - - public function getForcePreRender(): bool - { - return $this->force_pre_render; - } - - public function setUseFolder(bool $use_folder): void - { - $this->use_folder = $use_folder; - } - - public function getUseFolder(): bool - { - return $this->use_folder; - } - - public function shouldPreRender(): bool - { - return $this->getForcePreRender() || self::$needs_pre_render; - } - - public function shouldFolderRender(): bool - { - return $this->getUseFolder() && ($this->getForcePreRender() || self::$needs_folder_render); - } - - public function render(Value $o): string - { - if (($plugin = $this->getPlugin(self::$value_plugins, $o->hints)) && $plugin instanceof ValuePluginInterface) { - $output = $plugin->renderValue($o); - if (null !== $output && \strlen($output)) { - return $output; - } - } - - $children = $this->renderChildren($o); - $header = $this->renderHeaderWrapper($o, (bool) \strlen($children), $this->renderHeader($o)); - - return '
'.$header.$children.'
'; - } - - public function renderNothing(): string - { - return '
No argument
'; - } - - public function renderHeaderWrapper(Value $o, bool $has_children, string $contents): string - { - $out = 'getExpand()) { - $out .= ' kint-show'; - } - - $out .= '"'; - } - - $out .= '>'; - - if (self::$access_paths && $o->depth > 0 && ($ap = $o->getAccessPath())) { - $out .= ''; - } - - if ($has_children) { - $out .= ''; - - if (0 === $o->depth) { - $out .= ''; - $out .= ''; - } - - $out .= ''; - } - - $out .= $contents; - - if (!empty($ap)) { - $out .= '
'.$this->escape($ap).'
'; - } - - return $out.''; - } - - public function renderHeader(Value $o): string - { - $output = ''; - - if (null !== ($s = $o->getModifiers())) { - $output .= ''.$s.' '; - } - - if (null !== ($s = $o->getName())) { - $output .= ''.$this->escape($s).' '; - - if ($s = $o->getOperator()) { - $output .= $this->escape($s, 'ASCII').' '; - } - } - - if (null !== ($s = $o->getType())) { - if (self::$escape_types) { - $s = $this->escape($s); - } - - if ($o->reference) { - $s = '&'.$s; - } - - $output .= ''.$s.''; - - if ($o instanceof InstanceValue && isset($o->spl_object_id)) { - $output .= '#'.((int) $o->spl_object_id); - } - - $output .= ' '; - } - - if (null !== ($s = $o->getSize())) { - if (self::$escape_types) { - $s = $this->escape($s); - } - $output .= '('.$s.') '; - } - - if (null !== ($s = $o->getValueShort())) { - $s = \preg_replace('/\\s+/', ' ', $s); - - if (self::$strlen_max) { - $s = Utils::truncateString($s, self::$strlen_max); - } - - $output .= $this->escape($s); - } - - return \trim($output); - } - - public function renderChildren(Value $o): string - { - $contents = []; - $tabs = []; - - foreach ($o->getRepresentations() as $rep) { - $result = $this->renderTab($o, $rep); - if (\strlen($result)) { - $contents[] = $result; - $tabs[] = $rep; - } - } - - if (empty($tabs)) { - return ''; - } - - $output = '
'; - - if (1 === \count($tabs) && $tabs[0]->labelIsImplicit()) { - $output .= \reset($contents); - } else { - $output .= '
    '; - - foreach ($tabs as $i => $tab) { - if (0 === $i) { - $output .= '
  • '; - } else { - $output .= '
  • '; - } - - $output .= $this->escape($tab->getLabel()).'
  • '; - } - - $output .= '
    '; - - foreach ($contents as $i => $tab) { - if (0 === $i) { - $output .= '
  • '; - } else { - $output .= '
  • '; - } - - $output .= $tab.'
  • '; - } - - $output .= '
'; - } - - return $output.'
'; - } - - public function preRender(): string - { - $output = ''; - - if ($this->shouldPreRender()) { - foreach (self::$pre_render_sources as $type => $values) { - $contents = ''; - foreach ($values as $v) { - $contents .= \call_user_func($v, $this); - } - - if (!\strlen($contents)) { - continue; - } - - switch ($type) { - case 'script': - $output .= '