gulp-phug 1.3.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/README.md +26 -0
  2. package/index.js +38 -10
  3. package/package.json +4 -4
  4. package/support/bootstrap.php +6 -0
  5. package/support/composer.json +1 -1
  6. package/support/composer.lock +94 -179
  7. package/support/vendor/autoload.php +15 -0
  8. package/support/vendor/bin/phug +119 -0
  9. package/support/vendor/bin/var-dump-server +119 -0
  10. package/support/vendor/composer/ClassLoader.php +166 -32
  11. package/support/vendor/composer/InstalledVersions.php +387 -329
  12. package/support/vendor/composer/autoload_classmap.php +1 -5
  13. package/support/vendor/composer/autoload_files.php +2 -3
  14. package/support/vendor/composer/autoload_namespaces.php +1 -1
  15. package/support/vendor/composer/autoload_psr4.php +3 -4
  16. package/support/vendor/composer/autoload_real.php +12 -37
  17. package/support/vendor/composer/autoload_static.php +6 -17
  18. package/support/vendor/composer/installed.json +99 -186
  19. package/support/vendor/composer/installed.php +129 -151
  20. package/support/vendor/composer/platform_check.php +15 -4
  21. package/support/vendor/phug/phug/.github/workflows/coverage.yml +61 -0
  22. package/support/vendor/phug/phug/.github/workflows/multi-tester.yml +48 -0
  23. package/support/vendor/phug/phug/.github/workflows/split.yml +41 -0
  24. package/support/vendor/phug/phug/.github/workflows/style.yml +48 -0
  25. package/support/vendor/phug/phug/.github/workflows/tests.yml +48 -0
  26. package/support/vendor/phug/phug/.multi-tester.yml +47 -17
  27. package/support/vendor/phug/phug/composer.json +27 -18
  28. package/support/vendor/phug/phug/phpcs.xml +4 -0
  29. package/support/vendor/phug/phug/phpunit.xml +2 -0
  30. package/support/vendor/phug/phug/phug +1 -1
  31. package/support/vendor/phug/phug/release.php +8 -0
  32. package/support/vendor/phug/phug/src/Phug/Ast/Ast/Node.php +9 -3
  33. package/support/vendor/phug/phug/src/Phug/Ast/composer.json +2 -3
  34. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/AbstractNodeCompiler.php +4 -4
  35. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/Element/BlockElement.php +4 -4
  36. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AssignmentListNodeCompiler.php +1 -1
  37. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AssignmentNodeCompiler.php +10 -2
  38. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AttributeListNodeCompiler.php +1 -1
  39. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AttributeNodeCompiler.php +2 -1
  40. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/BlockNodeCompiler.php +3 -3
  41. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/CaseNodeCompiler.php +1 -1
  42. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/CodeNodeCompiler.php +2 -2
  43. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/CommentNodeCompiler.php +1 -1
  44. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ConditionalNodeCompiler.php +1 -1
  45. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/DoNodeCompiler.php +1 -1
  46. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/DoctypeNodeCompiler.php +1 -1
  47. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/DocumentNodeCompiler.php +1 -1
  48. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/EachNodeCompiler.php +1 -1
  49. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ElementNodeCompiler.php +7 -1
  50. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ExpressionNodeCompiler.php +1 -1
  51. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/FilterNodeCompiler.php +1 -1
  52. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ForNodeCompiler.php +1 -1
  53. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ImportNodeCompiler.php +5 -5
  54. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/KeywordNodeCompiler.php +1 -1
  55. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/MixinCallNodeCompiler.php +1 -1
  56. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/MixinNodeCompiler.php +1 -1
  57. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/TextNodeCompiler.php +1 -1
  58. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/VariableNodeCompiler.php +1 -1
  59. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/WhenNodeCompiler.php +1 -1
  60. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/WhileNodeCompiler.php +1 -1
  61. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/YieldNodeCompiler.php +1 -1
  62. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompilerInterface.php +5 -5
  63. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler.php +2 -2
  64. package/support/vendor/phug/phug/src/Phug/Compiler/CompilerInterface.php +2 -2
  65. package/support/vendor/phug/phug/src/Phug/Compiler/composer.json +10 -7
  66. package/support/vendor/phug/phug/src/Phug/DependencyInjection/DependencyInjection.php +1 -1
  67. package/support/vendor/phug/phug/src/Phug/DependencyInjection/composer.json +3 -4
  68. package/support/vendor/phug/phug/src/Phug/Event/Event/ListenerQueue.php +3 -0
  69. package/support/vendor/phug/phug/src/Phug/Event/EventManagerTrait.php +1 -1
  70. package/support/vendor/phug/phug/src/Phug/Event/composer.json +2 -3
  71. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AbstractElement.php +1 -1
  72. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AbstractFormat.php +17 -14
  73. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AssignmentContainerInterface.php +2 -1
  74. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AbstractAssignmentContainerElement.php +11 -1
  75. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AbstractMarkupElement.php +1 -1
  76. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AbstractValueElement.php +3 -3
  77. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AnonymousBlockElement.php +1 -1
  78. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AssignmentElement.php +13 -8
  79. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AttributeElement.php +7 -4
  80. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/CodeElement.php +5 -5
  81. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/KeywordElement.php +3 -3
  82. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MarkupElement.php +13 -11
  83. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MixinCallElement.php +2 -1
  84. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MixinElement.php +2 -1
  85. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/VariableElement.php +5 -5
  86. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Event/FormatEvent.php +1 -1
  87. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Format/HtmlFormat.php +1 -1
  88. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Format/XhtmlFormat.php +1 -1
  89. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Format/XmlFormat.php +214 -21
  90. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/FormatInterface.php +1 -1
  91. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/AssignmentHelpersTrait.php +7 -4
  92. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/HandleVariable.php +4 -4
  93. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/MagicAccessorTrait.php +1 -7
  94. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/PatternTrait.php +1 -1
  95. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter.php +1 -1
  96. package/support/vendor/phug/phug/src/Phug/Formatter/composer.json +5 -6
  97. package/support/vendor/phug/phug/src/Phug/Invoker/Invoker.php +1 -1
  98. package/support/vendor/phug/phug/src/Phug/Invoker/composer.json +9 -6
  99. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/AbstractToken.php +1 -1
  100. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Partial/IndentStyleTrait.php +5 -5
  101. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/AssignmentScanner.php +8 -2
  102. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/AttributeScanner.php +24 -12
  103. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/ConditionalScanner.php +1 -1
  104. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/FilterScanner.php +6 -10
  105. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/IndentationScanner.php +2 -2
  106. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/KeywordScanner.php +1 -1
  107. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/MultilineScanner.php +6 -12
  108. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/Partial/TrailingOutdentHandlerTrait.php +26 -0
  109. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/TextScanner.php +3 -3
  110. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/State.php +9 -9
  111. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/TokenInterface.php +1 -1
  112. package/support/vendor/phug/phug/src/Phug/Lexer/composer.json +4 -5
  113. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Event/NodeEvent.php +3 -2
  114. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/AssignmentNode.php +5 -1
  115. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/AttributeNode.php +4 -1
  116. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/ElementNode.php +5 -1
  117. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/FilterNode.php +2 -1
  118. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/MixinCallNode.php +5 -1
  119. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/MixinNode.php +5 -1
  120. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node.php +5 -5
  121. package/support/vendor/phug/phug/src/Phug/Parser/Parser/State.php +4 -4
  122. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AbstractTokenHandler.php +87 -0
  123. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AssignmentTokenHandler.php +6 -21
  124. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeEndTokenHandler.php +5 -10
  125. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeStartTokenHandler.php +7 -23
  126. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeTokenHandler.php +21 -19
  127. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AutoCloseTokenHandler.php +5 -17
  128. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/BlockTokenHandler.php +4 -10
  129. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CaseTokenHandler.php +4 -10
  130. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ClassTokenHandler.php +7 -34
  131. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CodeTokenHandler.php +4 -10
  132. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CommentTokenHandler.php +4 -10
  133. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ConditionalTokenHandler.php +4 -10
  134. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/DoTokenHandler.php +4 -10
  135. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/DoctypeTokenHandler.php +4 -10
  136. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/EachTokenHandler.php +4 -10
  137. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ExpansionTokenHandler.php +5 -11
  138. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ExpressionTokenHandler.php +4 -10
  139. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/FilterTokenHandler.php +4 -10
  140. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ForTokenHandler.php +4 -10
  141. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/IdTokenHandler.php +7 -33
  142. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ImportTokenHandler.php +14 -20
  143. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/IndentTokenHandler.php +4 -10
  144. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/InterpolationEndTokenHandler.php +4 -10
  145. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/InterpolationStartTokenHandler.php +29 -30
  146. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/KeywordTokenHandler.php +4 -10
  147. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/MixinCallTokenHandler.php +4 -10
  148. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/MixinTokenHandler.php +4 -10
  149. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/NewLineTokenHandler.php +4 -10
  150. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/OutdentTokenHandler.php +4 -10
  151. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/Partial/StaticAttributeTrait.php +36 -0
  152. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagInterpolationEndTokenHandler.php +4 -10
  153. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagInterpolationStartTokenHandler.php +7 -10
  154. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagTokenHandler.php +6 -21
  155. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TextTokenHandler.php +4 -10
  156. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/VariableTokenHandler.php +4 -10
  157. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/WhenTokenHandler.php +4 -10
  158. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/WhileTokenHandler.php +4 -10
  159. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/YieldTokenHandler.php +4 -10
  160. package/support/vendor/phug/phug/src/Phug/Parser/Parser.php +1 -1
  161. package/support/vendor/phug/phug/src/Phug/Parser/ParserException.php +1 -1
  162. package/support/vendor/phug/phug/src/Phug/Parser/composer.json +5 -6
  163. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Cli.php +5 -5
  164. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Partial/ExtensionsTrait.php +1 -1
  165. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Partial/FacadeOptionsTrait.php +1 -1
  166. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Partial/PluginEnablerTrait.php +1 -1
  167. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Phug.php +14 -5
  168. package/support/vendor/phug/phug/src/Phug/Phug/composer.json +9 -6
  169. package/support/vendor/phug/phug/src/Phug/Reader/Reader.php +13 -13
  170. package/support/vendor/phug/phug/src/Phug/Reader/composer.json +6 -2
  171. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/FileAdapter.php +21 -4
  172. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/Stream/Template.php +5 -0
  173. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/StreamAdapter.php +1 -1
  174. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/CacheInterface.php +1 -1
  175. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/AdapterTrait.php +1 -1
  176. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/Debug/DebuggerTrait.php +56 -10
  177. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/RendererOptionsTrait.php +1 -1
  178. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/Dump.php +1 -1
  179. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/LinkDump.php +2 -2
  180. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/ProfilerModule.php +1 -1
  181. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Task/TasksGroup.php +1 -1
  182. package/support/vendor/phug/phug/src/Phug/Renderer/composer.json +10 -6
  183. package/support/vendor/phug/phug/src/Phug/Util/CompatibilityUtil/TestCaseTyped.php +67 -0
  184. package/support/vendor/phug/phug/src/Phug/Util/CompatibilityUtil/TestCaseUntyped.php +67 -0
  185. package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesInterface.php +16 -0
  186. package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesOrderInterface.php +17 -0
  187. package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesStorage.php +44 -0
  188. package/support/vendor/phug/phug/src/Phug/Util/Util/Collection.php +2 -0
  189. package/support/vendor/phug/phug/src/Phug/Util/Util/OrderableInterface.php +22 -0
  190. package/support/vendor/phug/phug/src/Phug/Util/Util/OrderedValue.php +25 -0
  191. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/AttributeTrait.php +2 -1
  192. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/AttributesOrderTrait.php +19 -0
  193. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/ModuleContainerTrait.php +3 -3
  194. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/OptionTrait.php +1 -1
  195. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/OrderTrait.php +27 -0
  196. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/StaticMemberTrait.php +1 -1
  197. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/ValueTrait.php +5 -3
  198. package/support/vendor/phug/phug/src/Phug/Util/Util/SandBox.php +2 -1
  199. package/support/vendor/phug/phug/src/Phug/Util/Util/TestCase.php +47 -4
  200. package/support/vendor/phug/phug/src/Phug/Util/composer.json +7 -8
  201. package/support/vendor/symfony/deprecation-contracts/CHANGELOG.md +5 -0
  202. package/support/vendor/symfony/{polyfill-php72 → deprecation-contracts}/LICENSE +1 -1
  203. package/support/vendor/symfony/deprecation-contracts/README.md +26 -0
  204. package/support/vendor/symfony/{polyfill-php72 → deprecation-contracts}/composer.json +9 -9
  205. package/support/vendor/symfony/deprecation-contracts/function.php +27 -0
  206. package/support/vendor/symfony/polyfill-mbstring/LICENSE +1 -1
  207. package/support/vendor/symfony/polyfill-mbstring/Mbstring.php +256 -57
  208. package/support/vendor/symfony/polyfill-mbstring/README.md +1 -1
  209. package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -0
  210. package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1 -1
  211. package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +102 -27
  212. package/support/vendor/symfony/polyfill-mbstring/bootstrap.php +33 -8
  213. package/support/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -0
  214. package/support/vendor/symfony/polyfill-mbstring/composer.json +5 -4
  215. package/support/vendor/symfony/var-dumper/CHANGELOG.md +63 -0
  216. package/support/vendor/symfony/var-dumper/Caster/AddressInfoCaster.php +82 -0
  217. package/support/vendor/symfony/var-dumper/Caster/AmqpCaster.php +12 -10
  218. package/support/vendor/symfony/var-dumper/Caster/ArgsStub.php +6 -7
  219. package/support/vendor/symfony/var-dumper/Caster/Caster.php +59 -31
  220. package/support/vendor/symfony/var-dumper/Caster/ClassStub.php +7 -9
  221. package/support/vendor/symfony/var-dumper/Caster/ConstStub.php +20 -4
  222. package/support/vendor/symfony/var-dumper/Caster/CurlCaster.php +31 -0
  223. package/support/vendor/symfony/var-dumper/Caster/CutArrayStub.php +1 -1
  224. package/support/vendor/symfony/var-dumper/Caster/CutStub.php +2 -2
  225. package/support/vendor/symfony/var-dumper/Caster/DOMCaster.php +61 -156
  226. package/support/vendor/symfony/var-dumper/Caster/DateCaster.php +27 -26
  227. package/support/vendor/symfony/var-dumper/Caster/DoctrineCaster.php +6 -4
  228. package/support/vendor/symfony/var-dumper/Caster/DsCaster.php +1 -1
  229. package/support/vendor/symfony/var-dumper/Caster/DsPairStub.php +1 -1
  230. package/support/vendor/symfony/var-dumper/Caster/EnumStub.php +4 -5
  231. package/support/vendor/symfony/var-dumper/Caster/ExceptionCaster.php +64 -49
  232. package/support/vendor/symfony/var-dumper/Caster/FFICaster.php +171 -0
  233. package/support/vendor/symfony/var-dumper/Caster/FiberCaster.php +43 -0
  234. package/support/vendor/symfony/var-dumper/Caster/FrameStub.php +6 -8
  235. package/support/vendor/symfony/var-dumper/Caster/GdCaster.php +30 -0
  236. package/support/vendor/symfony/var-dumper/Caster/GmpCaster.php +4 -2
  237. package/support/vendor/symfony/var-dumper/Caster/ImagineCaster.php +2 -0
  238. package/support/vendor/symfony/var-dumper/Caster/ImgStub.php +1 -1
  239. package/support/vendor/symfony/var-dumper/Caster/IntlCaster.php +10 -8
  240. package/support/vendor/symfony/var-dumper/Caster/LinkStub.php +14 -17
  241. package/support/vendor/symfony/var-dumper/Caster/MemcachedCaster.php +10 -8
  242. package/support/vendor/symfony/var-dumper/Caster/MysqliCaster.php +33 -0
  243. package/support/vendor/symfony/var-dumper/Caster/OpenSSLCaster.php +69 -0
  244. package/support/vendor/symfony/var-dumper/Caster/PdoCaster.php +8 -6
  245. package/support/vendor/symfony/var-dumper/Caster/PgSqlCaster.php +21 -19
  246. package/support/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php +4 -2
  247. package/support/vendor/symfony/var-dumper/Caster/RdKafkaCaster.php +188 -0
  248. package/support/vendor/symfony/var-dumper/Caster/RedisCaster.php +31 -31
  249. package/support/vendor/symfony/var-dumper/Caster/ReflectionCaster.php +100 -44
  250. package/support/vendor/symfony/var-dumper/Caster/ResourceCaster.php +33 -46
  251. package/support/vendor/symfony/var-dumper/Caster/ScalarStub.php +27 -0
  252. package/support/vendor/symfony/var-dumper/Caster/SocketCaster.php +64 -0
  253. package/support/vendor/symfony/var-dumper/Caster/SplCaster.php +57 -44
  254. package/support/vendor/symfony/var-dumper/Caster/SqliteCaster.php +32 -0
  255. package/support/vendor/symfony/var-dumper/Caster/StubCaster.php +15 -5
  256. package/support/vendor/symfony/var-dumper/Caster/SymfonyCaster.php +66 -10
  257. package/support/vendor/symfony/var-dumper/Caster/TraceStub.php +7 -11
  258. package/support/vendor/symfony/var-dumper/Caster/UninitializedStub.php +25 -0
  259. package/support/vendor/symfony/var-dumper/Caster/UuidCaster.php +2 -0
  260. package/support/vendor/symfony/var-dumper/Caster/VirtualStub.php +21 -0
  261. package/support/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php +25 -10
  262. package/support/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php +7 -5
  263. package/support/vendor/symfony/var-dumper/Cloner/AbstractCloner.php +103 -72
  264. package/support/vendor/symfony/var-dumper/Cloner/ClonerInterface.php +1 -5
  265. package/support/vendor/symfony/var-dumper/Cloner/Cursor.php +21 -21
  266. package/support/vendor/symfony/var-dumper/Cloner/Data.php +51 -77
  267. package/support/vendor/symfony/var-dumper/Cloner/DumperInterface.php +11 -14
  268. package/support/vendor/symfony/var-dumper/Cloner/Stub.php +40 -31
  269. package/support/vendor/symfony/var-dumper/Cloner/VarCloner.php +21 -104
  270. package/support/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php +9 -19
  271. package/support/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php +10 -11
  272. package/support/vendor/symfony/var-dumper/Command/ServerDumpCommand.php +27 -15
  273. package/support/vendor/symfony/var-dumper/Dumper/AbstractDumper.php +68 -48
  274. package/support/vendor/symfony/var-dumper/Dumper/CliDumper.php +126 -113
  275. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php +1 -1
  276. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php +0 -3
  277. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php +5 -6
  278. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php +10 -15
  279. package/support/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php +8 -11
  280. package/support/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php +3 -0
  281. package/support/vendor/symfony/var-dumper/Dumper/HtmlDumper.php +122 -146
  282. package/support/vendor/symfony/var-dumper/Dumper/ServerDumper.php +10 -10
  283. package/support/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php +1 -1
  284. package/support/vendor/symfony/var-dumper/LICENSE +1 -1
  285. package/support/vendor/symfony/var-dumper/README.md +6 -6
  286. package/support/vendor/symfony/var-dumper/Resources/bin/var-dump-server +4 -0
  287. package/support/vendor/symfony/var-dumper/Resources/functions/dump.php +35 -10
  288. package/support/vendor/symfony/var-dumper/Server/Connection.php +16 -14
  289. package/support/vendor/symfony/var-dumper/Server/DumpServer.php +16 -14
  290. package/support/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php +9 -9
  291. package/support/vendor/symfony/var-dumper/VarDumper.php +69 -17
  292. package/support/vendor/symfony/var-dumper/composer.json +10 -16
  293. package/support/vendor/symfony/polyfill-php72/Php72.php +0 -217
  294. package/support/vendor/symfony/polyfill-php72/README.md +0 -28
  295. package/support/vendor/symfony/polyfill-php72/bootstrap.php +0 -57
  296. package/support/vendor/symfony/polyfill-php80/LICENSE +0 -19
  297. package/support/vendor/symfony/polyfill-php80/Php80.php +0 -105
  298. package/support/vendor/symfony/polyfill-php80/README.md +0 -24
  299. package/support/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +0 -22
  300. package/support/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +0 -11
  301. package/support/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +0 -5
  302. package/support/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +0 -5
  303. package/support/vendor/symfony/polyfill-php80/bootstrap.php +0 -42
  304. package/support/vendor/symfony/polyfill-php80/composer.json +0 -40
@@ -20,5 +20,8 @@ use Symfony\Component\VarDumper\Cloner\Data;
20
20
  */
21
21
  interface DataDumperInterface
22
22
  {
23
+ /**
24
+ * @return string|null
25
+ */
23
26
  public function dump(Data $data);
24
27
  }
@@ -21,6 +21,7 @@ use Symfony\Component\VarDumper\Cloner\Data;
21
21
  */
22
22
  class HtmlDumper extends CliDumper
23
23
  {
24
+ /** @var callable|resource|string|null */
24
25
  public static $defaultOutput = 'php://output';
25
26
 
26
27
  protected static $themes = [
@@ -28,6 +29,7 @@ class HtmlDumper extends CliDumper
28
29
  'default' => 'background-color:#18171B; color:#FF8400; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all',
29
30
  'num' => 'font-weight:bold; color:#1299DA',
30
31
  'const' => 'font-weight:bold',
32
+ 'virtual' => 'font-style:italic',
31
33
  'str' => 'font-weight:bold; color:#56DB3A',
32
34
  'note' => 'color:#1299DA',
33
35
  'ref' => 'color:#A0A0A0',
@@ -44,6 +46,7 @@ class HtmlDumper extends CliDumper
44
46
  'default' => 'background:none; color:#CC7832; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all',
45
47
  'num' => 'font-weight:bold; color:#1299DA',
46
48
  'const' => 'font-weight:bold',
49
+ 'virtual' => 'font-style:italic',
47
50
  'str' => 'font-weight:bold; color:#629755;',
48
51
  'note' => 'color:#6897BB',
49
52
  'ref' => 'color:#6E6E6E',
@@ -58,46 +61,39 @@ class HtmlDumper extends CliDumper
58
61
  ],
59
62
  ];
60
63
 
61
- protected $dumpHeader;
62
- protected $dumpPrefix = '<pre class=sf-dump id=%s data-indent-pad="%s">';
63
- protected $dumpSuffix = '</pre><script>Sfdump(%s)</script>';
64
- protected $dumpId = 'sf-dump';
65
- protected $colors = true;
64
+ protected ?string $dumpHeader = null;
65
+ protected string $dumpPrefix = '<pre class=sf-dump id=%s data-indent-pad="%s">';
66
+ protected string $dumpSuffix = '</pre><script>Sfdump(%s)</script>';
67
+ protected string $dumpId;
68
+ protected bool $colors = true;
66
69
  protected $headerIsDumped = false;
67
- protected $lastDepth = -1;
68
- protected $styles;
70
+ protected int $lastDepth = -1;
69
71
 
70
- private $displayOptions = [
72
+ private array $displayOptions = [
71
73
  'maxDepth' => 1,
72
74
  'maxStringLength' => 160,
73
75
  'fileLinkFormat' => null,
74
76
  ];
75
- private $extraDisplayOptions = [];
77
+ private array $extraDisplayOptions = [];
76
78
 
77
- /**
78
- * {@inheritdoc}
79
- */
80
- public function __construct($output = null, string $charset = null, int $flags = 0)
79
+ public function __construct($output = null, ?string $charset = null, int $flags = 0)
81
80
  {
82
81
  AbstractDumper::__construct($output, $charset, $flags);
83
82
  $this->dumpId = 'sf-dump-'.mt_rand();
84
- $this->displayOptions['fileLinkFormat'] = ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
83
+ $this->displayOptions['fileLinkFormat'] = \ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
85
84
  $this->styles = static::$themes['dark'] ?? self::$themes['dark'];
86
85
  }
87
86
 
88
- /**
89
- * {@inheritdoc}
90
- */
91
- public function setStyles(array $styles)
87
+ public function setStyles(array $styles): void
92
88
  {
93
89
  $this->headerIsDumped = false;
94
90
  $this->styles = $styles + $this->styles;
95
91
  }
96
92
 
97
- public function setTheme(string $themeName)
93
+ public function setTheme(string $themeName): void
98
94
  {
99
95
  if (!isset(static::$themes[$themeName])) {
100
- throw new \InvalidArgumentException(sprintf('Theme "%s" does not exist in class "%s".', $themeName, static::class));
96
+ throw new \InvalidArgumentException(\sprintf('Theme "%s" does not exist in class "%s".', $themeName, static::class));
101
97
  }
102
98
 
103
99
  $this->setStyles(static::$themes[$themeName]);
@@ -108,7 +104,7 @@ class HtmlDumper extends CliDumper
108
104
  *
109
105
  * @param array $displayOptions A map of display options to customize the behavior
110
106
  */
111
- public function setDisplayOptions(array $displayOptions)
107
+ public function setDisplayOptions(array $displayOptions): void
112
108
  {
113
109
  $this->headerIsDumped = false;
114
110
  $this->displayOptions = $displayOptions + $this->displayOptions;
@@ -116,30 +112,22 @@ class HtmlDumper extends CliDumper
116
112
 
117
113
  /**
118
114
  * Sets an HTML header that will be dumped once in the output stream.
119
- *
120
- * @param string $header An HTML string
121
115
  */
122
- public function setDumpHeader($header)
116
+ public function setDumpHeader(?string $header): void
123
117
  {
124
118
  $this->dumpHeader = $header;
125
119
  }
126
120
 
127
121
  /**
128
122
  * Sets an HTML prefix and suffix that will encapse every single dump.
129
- *
130
- * @param string $prefix The prepended HTML string
131
- * @param string $suffix The appended HTML string
132
123
  */
133
- public function setDumpBoundaries($prefix, $suffix)
124
+ public function setDumpBoundaries(string $prefix, string $suffix): void
134
125
  {
135
126
  $this->dumpPrefix = $prefix;
136
127
  $this->dumpSuffix = $suffix;
137
128
  }
138
129
 
139
- /**
140
- * {@inheritdoc}
141
- */
142
- public function dump(Data $data, $output = null, array $extraDisplayOptions = [])
130
+ public function dump(Data $data, $output = null, array $extraDisplayOptions = []): ?string
143
131
  {
144
132
  $this->extraDisplayOptions = $extraDisplayOptions;
145
133
  $result = parent::dump($data, $output);
@@ -151,9 +139,9 @@ class HtmlDumper extends CliDumper
151
139
  /**
152
140
  * Dumps the HTML header.
153
141
  */
154
- protected function getDumpHeader()
142
+ protected function getDumpHeader(): string
155
143
  {
156
- $this->headerIsDumped = null !== $this->outputStream ? $this->outputStream : $this->lineDumper;
144
+ $this->headerIsDumped = $this->outputStream ?? $this->lineDumper;
157
145
 
158
146
  if (null !== $this->dumpHeader) {
159
147
  return $this->dumpHeader;
@@ -162,17 +150,15 @@ class HtmlDumper extends CliDumper
162
150
  $line = str_replace('{$options}', json_encode($this->displayOptions, \JSON_FORCE_OBJECT), <<<'EOHTML'
163
151
  <script>
164
152
  Sfdump = window.Sfdump || (function (doc) {
153
+ doc.documentElement.classList.add('sf-js-enabled');
165
154
 
166
- var refStyle = doc.createElement('style'),
167
- rxEsc = /([.*+?^${}()|\[\]\/\\])/g,
155
+ var rxEsc = /([.*+?^${}()|\[\]\/\\])/g,
168
156
  idRx = /\bsf-dump-\d+-ref[012]\w+\b/,
169
157
  keyHint = 0 <= navigator.platform.toUpperCase().indexOf('MAC') ? 'Cmd' : 'Ctrl',
170
158
  addEventListener = function (e, n, cb) {
171
159
  e.addEventListener(n, cb, false);
172
160
  };
173
161
 
174
- (doc.documentElement.firstElementChild || doc.documentElement.children[0]).appendChild(refStyle);
175
-
176
162
  if (!doc.addEventListener) {
177
163
  addEventListener = function (element, eventName, callback) {
178
164
  element.attachEvent('on' + eventName, function (e) {
@@ -352,26 +338,16 @@ return function (root, x) {
352
338
  function xpathHasClass(className) {
353
339
  return "contains(concat(' ', normalize-space(@class), ' '), ' " + className +" ')";
354
340
  }
355
- addEventListener(root, 'mouseover', function (e) {
356
- if ('' != refStyle.innerHTML) {
357
- refStyle.innerHTML = '';
358
- }
359
- });
360
341
  a('mouseover', function (a, e, c) {
361
342
  if (c) {
362
343
  e.target.style.cursor = "pointer";
363
- } else if (a = idRx.exec(a.className)) {
364
- try {
365
- refStyle.innerHTML = 'pre.sf-dump .'+a[0]+'{background-color: #B729D9; color: #FFF !important; border-radius: 2px}';
366
- } catch (e) {
367
- }
368
344
  }
369
345
  });
370
346
  a('click', function (a, e, c) {
371
347
  if (/\bsf-dump-toggle\b/.test(a.className)) {
372
348
  e.preventDefault();
373
349
  if (!toggle(a, isCtrlKey(e))) {
374
- var r = doc.getElementById(a.getAttribute('href').substr(1)),
350
+ var r = doc.getElementById(a.getAttribute('href').slice(1)),
375
351
  s = r.previousSibling,
376
352
  f = r.parentNode,
377
353
  t = a.parentNode;
@@ -424,21 +400,16 @@ return function (root, x) {
424
400
  a.innerHTML += ' ';
425
401
  }
426
402
  a.title = (a.title ? a.title+'\n[' : '[')+keyHint+'+click] Expand all children';
427
- a.innerHTML += '<span>▼</span>';
403
+ a.innerHTML += elt.className == 'sf-dump-compact' ? '<span>▶</span>' : '<span>▼</span>';
428
404
  a.className += ' sf-dump-toggle';
429
405
 
430
406
  x = 1;
431
407
  if ('sf-dump' != elt.parentNode.className) {
432
408
  x += elt.parentNode.getAttribute('data-depth')/1;
433
409
  }
434
- elt.setAttribute('data-depth', x);
435
- var className = elt.className;
436
- elt.className = 'sf-dump-expanded';
437
- if (className ? 'sf-dump-expanded' !== className : (x > options.maxDepth)) {
438
- toggle(a);
439
- }
440
410
  } else if (/\bsf-dump-ref\b/.test(elt.className) && (a = elt.getAttribute('href'))) {
441
- a = a.substr(1);
411
+ a = a.slice(1);
412
+ elt.className += ' sf-dump-hover';
442
413
  elt.className += ' '+a;
443
414
 
444
415
  if (/[\[{]$/.test(elt.previousSibling.nodeValue)) {
@@ -655,6 +626,16 @@ return function (root, x) {
655
626
 
656
627
  })(document);
657
628
  </script><style>
629
+ .sf-js-enabled pre.sf-dump .sf-dump-compact,
630
+ .sf-js-enabled .sf-dump-str-collapse .sf-dump-str-collapse,
631
+ .sf-js-enabled .sf-dump-str-expand .sf-dump-str-expand {
632
+ display: none;
633
+ }
634
+ .sf-dump-hover:hover {
635
+ background-color: #B729D9;
636
+ color: #FFF !important;
637
+ border-radius: 2px;
638
+ }
658
639
  pre.sf-dump {
659
640
  display: block;
660
641
  white-space: pre;
@@ -668,11 +649,8 @@ pre.sf-dump:after {
668
649
  height: 0;
669
650
  clear: both;
670
651
  }
671
- pre.sf-dump span {
672
- display: inline;
673
- }
674
- pre.sf-dump .sf-dump-compact {
675
- display: none;
652
+ pre.sf-dump .sf-dump-ellipsization {
653
+ display: inline-flex;
676
654
  }
677
655
  pre.sf-dump a {
678
656
  text-decoration: none;
@@ -689,28 +667,18 @@ pre.sf-dump img {
689
667
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAHUlEQVQY02O8zAABilCaiQEN0EeA8QuUcX9g3QEAAjcC5piyhyEAAAAASUVORK5CYII=) #D3D3D3;
690
668
  }
691
669
  pre.sf-dump .sf-dump-ellipsis {
692
- display: inline-block;
693
- overflow: visible;
694
670
  text-overflow: ellipsis;
695
- max-width: 5em;
696
671
  white-space: nowrap;
697
672
  overflow: hidden;
698
- vertical-align: top;
699
673
  }
700
- pre.sf-dump .sf-dump-ellipsis+.sf-dump-ellipsis {
701
- max-width: none;
674
+ pre.sf-dump .sf-dump-ellipsis-tail {
675
+ flex-shrink: 0;
702
676
  }
703
677
  pre.sf-dump code {
704
678
  display:inline;
705
679
  padding:0;
706
680
  background:none;
707
681
  }
708
- .sf-dump-str-collapse .sf-dump-str-collapse {
709
- display: none;
710
- }
711
- .sf-dump-str-expand .sf-dump-str-expand {
712
- display: none;
713
- }
714
682
  .sf-dump-public.sf-dump-highlight,
715
683
  .sf-dump-protected.sf-dump-highlight,
716
684
  .sf-dump-private.sf-dump-highlight,
@@ -799,60 +767,50 @@ EOHTML
799
767
  return $this->dumpHeader = preg_replace('/\s+/', ' ', $line).'</style>'.$this->dumpHeader;
800
768
  }
801
769
 
802
- /**
803
- * {@inheritdoc}
804
- */
805
- public function dumpString(Cursor $cursor, $str, $bin, $cut)
770
+ public function dumpString(Cursor $cursor, string $str, bool $bin, int $cut): void
806
771
  {
807
772
  if ('' === $str && isset($cursor->attr['img-data'], $cursor->attr['content-type'])) {
808
773
  $this->dumpKey($cursor);
809
- $this->line .= $this->style('default', $cursor->attr['img-size'] ?? '', []).' <samp>';
774
+ $this->line .= $this->style('default', $cursor->attr['img-size'] ?? '', []);
775
+ $this->line .= $cursor->depth >= $this->displayOptions['maxDepth'] ? ' <samp class=sf-dump-compact>' : ' <samp class=sf-dump-expanded>';
810
776
  $this->endValue($cursor);
811
777
  $this->line .= $this->indentPad;
812
- $this->line .= sprintf('<img src="data:%s;base64,%s" /></samp>', $cursor->attr['content-type'], base64_encode($cursor->attr['img-data']));
778
+ $this->line .= \sprintf('<img src="data:%s;base64,%s" /></samp>', $cursor->attr['content-type'], base64_encode($cursor->attr['img-data']));
813
779
  $this->endValue($cursor);
814
780
  } else {
815
781
  parent::dumpString($cursor, $str, $bin, $cut);
816
782
  }
817
783
  }
818
784
 
819
- /**
820
- * {@inheritdoc}
821
- */
822
- public function enterHash(Cursor $cursor, $type, $class, $hasChild)
785
+ public function enterHash(Cursor $cursor, int $type, string|int|null $class, bool $hasChild): void
823
786
  {
824
787
  if (Cursor::HASH_OBJECT === $type) {
825
788
  $cursor->attr['depth'] = $cursor->depth;
826
789
  }
827
790
  parent::enterHash($cursor, $type, $class, false);
828
791
 
829
- if ($cursor->skipChildren) {
792
+ if ($cursor->skipChildren || $cursor->depth >= $this->displayOptions['maxDepth']) {
830
793
  $cursor->skipChildren = false;
831
794
  $eol = ' class=sf-dump-compact>';
832
- } elseif ($this->expandNextHash) {
795
+ } else {
833
796
  $this->expandNextHash = false;
834
797
  $eol = ' class=sf-dump-expanded>';
835
- } else {
836
- $eol = '>';
837
798
  }
838
799
 
839
800
  if ($hasChild) {
840
- $this->line .= '<samp';
801
+ $this->line .= '<samp data-depth='.($cursor->depth + 1);
841
802
  if ($cursor->refIndex) {
842
803
  $r = Cursor::HASH_OBJECT !== $type ? 1 - (Cursor::HASH_RESOURCE !== $type) : 2;
843
804
  $r .= $r && 0 < $cursor->softRefHandle ? $cursor->softRefHandle : $cursor->refIndex;
844
805
 
845
- $this->line .= sprintf(' id=%s-ref%s', $this->dumpId, $r);
806
+ $this->line .= \sprintf(' id=%s-ref%s', $this->dumpId, $r);
846
807
  }
847
808
  $this->line .= $eol;
848
809
  $this->dumpLine($cursor->depth);
849
810
  }
850
811
  }
851
812
 
852
- /**
853
- * {@inheritdoc}
854
- */
855
- public function leaveHash(Cursor $cursor, $type, $class, $hasChild, $cut)
813
+ public function leaveHash(Cursor $cursor, int $type, string|int|null $class, bool $hasChild, int $cut): void
856
814
  {
857
815
  $this->dumpEllipsis($cursor, $hasChild, $cut);
858
816
  if ($hasChild) {
@@ -861,12 +819,9 @@ EOHTML
861
819
  parent::leaveHash($cursor, $type, $class, $hasChild, 0);
862
820
  }
863
821
 
864
- /**
865
- * {@inheritdoc}
866
- */
867
- protected function style($style, $value, $attr = [])
822
+ protected function style(string $style, string $value, array $attr = []): string
868
823
  {
869
- if ('' === $value) {
824
+ if ('' === $value && ('label' !== $style || !isset($attr['file']) && !isset($attr['href']))) {
870
825
  return '';
871
826
  }
872
827
 
@@ -874,97 +829,118 @@ EOHTML
874
829
 
875
830
  if ('ref' === $style) {
876
831
  if (empty($attr['count'])) {
877
- return sprintf('<a class=sf-dump-ref>%s</a>', $v);
832
+ return \sprintf('<a class=sf-dump-ref>%s</a>', $v);
878
833
  }
879
834
  $r = ('#' !== $v[0] ? 1 - ('@' !== $v[0]) : 2).substr($value, 1);
880
835
 
881
- return sprintf('<a class=sf-dump-ref href=#%s-ref%s title="%d occurrences">%s</a>', $this->dumpId, $r, 1 + $attr['count'], $v);
836
+ return \sprintf('<a class=sf-dump-ref href=#%s-ref%s title="%d occurrences">%s</a>', $this->dumpId, $r, 1 + $attr['count'], $v);
882
837
  }
883
838
 
839
+ $dumpClasses = ['sf-dump-'.$style];
840
+ $dumpTitle = '';
841
+
884
842
  if ('const' === $style && isset($attr['value'])) {
885
- $style .= sprintf(' title="%s"', esc(is_scalar($attr['value']) ? $attr['value'] : json_encode($attr['value'])));
843
+ $dumpTitle = esc(\is_scalar($attr['value']) ? $attr['value'] : json_encode($attr['value']));
886
844
  } elseif ('public' === $style) {
887
- $style .= sprintf(' title="%s"', empty($attr['dynamic']) ? 'Public property' : 'Runtime added dynamic property');
845
+ $dumpTitle = empty($attr['dynamic']) ? 'Public property' : 'Runtime added dynamic property';
888
846
  } elseif ('str' === $style && 1 < $attr['length']) {
889
- $style .= sprintf(' title="%d%s characters"', $attr['length'], $attr['binary'] ? ' binary or non-UTF-8' : '');
847
+ $dumpTitle = \sprintf('%d%s characters', $attr['length'], $attr['binary'] ? ' binary or non-UTF-8' : '');
890
848
  } elseif ('note' === $style && 0 < ($attr['depth'] ?? 0) && false !== $c = strrpos($value, '\\')) {
891
- $style .= ' title=""';
892
849
  $attr += [
893
850
  'ellipsis' => \strlen($value) - $c,
894
851
  'ellipsis-type' => 'note',
895
852
  'ellipsis-tail' => 1,
896
853
  ];
897
854
  } elseif ('protected' === $style) {
898
- $style .= ' title="Protected property"';
855
+ $dumpTitle = 'Protected property';
899
856
  } elseif ('meta' === $style && isset($attr['title'])) {
900
- $style .= sprintf(' title="%s"', esc($this->utf8Encode($attr['title'])));
857
+ $dumpTitle = esc($this->utf8Encode($attr['title']));
901
858
  } elseif ('private' === $style) {
902
- $style .= sprintf(' title="Private property defined in class:&#10;`%s`"', esc($this->utf8Encode($attr['class'])));
859
+ $dumpTitle = \sprintf('Private property defined in class:&#10;`%s`', esc($this->utf8Encode($attr['class'])));
903
860
  }
904
- $map = static::$controlCharsMap;
905
861
 
906
862
  if (isset($attr['ellipsis'])) {
907
- $class = 'sf-dump-ellipsis';
863
+ $dumpClasses[] = 'sf-dump-ellipsization';
864
+ $ellipsisClass = 'sf-dump-ellipsis';
908
865
  if (isset($attr['ellipsis-type'])) {
909
- $class = sprintf('"%s sf-dump-ellipsis-%s"', $class, $attr['ellipsis-type']);
866
+ $ellipsisClass .= ' sf-dump-ellipsis-'.$attr['ellipsis-type'];
910
867
  }
911
868
  $label = esc(substr($value, -$attr['ellipsis']));
912
- $style = str_replace(' title="', " title=\"$v\n", $style);
913
- $v = sprintf('<span class=%s>%s</span>', $class, substr($v, 0, -\strlen($label)));
869
+ $dumpTitle = $v."\n".$dumpTitle;
870
+ $v = \sprintf('<span class="%s">%s</span>', $ellipsisClass, substr($v, 0, -\strlen($label)));
914
871
 
915
872
  if (!empty($attr['ellipsis-tail'])) {
916
873
  $tail = \strlen(esc(substr($value, -$attr['ellipsis'], $attr['ellipsis-tail'])));
917
- $v .= sprintf('<span class=%s>%s</span>%s', $class, substr($label, 0, $tail), substr($label, $tail));
874
+ $v .= \sprintf('<span class="%s">%s</span><span class="sf-dump-ellipsis-tail">%s</span>', $ellipsisClass, substr($label, 0, $tail), substr($label, $tail));
918
875
  } else {
919
- $v .= $label;
876
+ $v .= \sprintf('<span class="sf-dump-ellipsis-tail">%s</span>', $label);
920
877
  }
921
878
  }
922
879
 
923
- $v = "<span class=sf-dump-{$style}>".preg_replace_callback(static::$controlCharsRx, function ($c) use ($map) {
924
- $s = $b = '<span class="sf-dump-default';
925
- $c = $c[$i = 0];
926
- if ($ns = "\r" === $c[$i] || "\n" === $c[$i]) {
927
- $s .= ' sf-dump-ns';
928
- }
929
- $s .= '">';
930
- do {
931
- if (("\r" === $c[$i] || "\n" === $c[$i]) !== $ns) {
932
- $s .= '</span>'.$b;
933
- if ($ns = !$ns) {
934
- $s .= ' sf-dump-ns';
935
- }
936
- $s .= '">';
880
+ $map = static::$controlCharsMap;
881
+ $v = \sprintf(
882
+ '<span class=%s%s%1$s%s>%s</span>',
883
+ 1 === \count($dumpClasses) ? '' : '"',
884
+ implode(' ', $dumpClasses),
885
+ $dumpTitle ? ' title="'.$dumpTitle.'"' : '',
886
+ preg_replace_callback(static::$controlCharsRx, function ($c) use ($map) {
887
+ $s = $b = '<span class="sf-dump-default';
888
+ $c = $c[$i = 0];
889
+ if ($ns = "\r" === $c[$i] || "\n" === $c[$i]) {
890
+ $s .= ' sf-dump-ns';
937
891
  }
892
+ $s .= '">';
893
+ do {
894
+ if (("\r" === $c[$i] || "\n" === $c[$i]) !== $ns) {
895
+ $s .= '</span>'.$b;
896
+ if ($ns = !$ns) {
897
+ $s .= ' sf-dump-ns';
898
+ }
899
+ $s .= '">';
900
+ }
901
+
902
+ $s .= $map[$c[$i]] ?? \sprintf('\x%02X', \ord($c[$i]));
903
+ } while (isset($c[++$i]));
938
904
 
939
- $s .= isset($map[$c[$i]]) ? $map[$c[$i]] : sprintf('\x%02X', \ord($c[$i]));
940
- } while (isset($c[++$i]));
905
+ return $s.'</span>';
906
+ }, $v)
907
+ );
941
908
 
942
- return $s.'</span>';
943
- }, $v).'</span>';
909
+ if (!($attr['binary'] ?? false)) {
910
+ $v = preg_replace_callback(static::$unicodeCharsRx, function ($c) {
911
+ return '<span class=sf-dump-default>\u{'.strtoupper(dechex(mb_ord($c[0]))).'}</span>';
912
+ }, $v);
913
+ }
944
914
 
945
- if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'], isset($attr['line']) ? $attr['line'] : 0)) {
915
+ if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'], $attr['line'] ?? 0)) {
946
916
  $attr['href'] = $href;
947
917
  }
948
918
  if (isset($attr['href'])) {
919
+ if ('label' === $style) {
920
+ $v .= '^';
921
+ }
949
922
  $target = isset($attr['file']) ? '' : ' target="_blank"';
950
- $v = sprintf('<a href="%s"%s rel="noopener noreferrer">%s</a>', esc($this->utf8Encode($attr['href'])), $target, $v);
923
+ $v = \sprintf('<a href="%s"%s rel="noopener noreferrer">%s</a>', esc($this->utf8Encode($attr['href'])), $target, $v);
951
924
  }
952
925
  if (isset($attr['lang'])) {
953
- $v = sprintf('<code class="%s">%s</code>', esc($attr['lang']), $v);
926
+ $v = \sprintf('<code class="%s">%s</code>', esc($attr['lang']), $v);
927
+ }
928
+ if ('label' === $style) {
929
+ $v .= ' ';
930
+ }
931
+ if ($attr['virtual'] ?? false) {
932
+ $v = '<span class=sf-dump-virtual>'.$v.'</span>';
954
933
  }
955
934
 
956
935
  return $v;
957
936
  }
958
937
 
959
- /**
960
- * {@inheritdoc}
961
- */
962
- protected function dumpLine($depth, $endOfValue = false)
938
+ protected function dumpLine(int $depth, bool $endOfValue = false): void
963
939
  {
964
940
  if (-1 === $this->lastDepth) {
965
- $this->line = sprintf($this->dumpPrefix, $this->dumpId, $this->indentPad).$this->line;
941
+ $this->line = \sprintf($this->dumpPrefix, $this->dumpId, $this->indentPad).$this->line;
966
942
  }
967
- if ($this->headerIsDumped !== (null !== $this->outputStream ? $this->outputStream : $this->lineDumper)) {
943
+ if ($this->headerIsDumped !== ($this->outputStream ?? $this->lineDumper)) {
968
944
  $this->line = $this->getDumpHeader().$this->line;
969
945
  }
970
946
 
@@ -974,11 +950,11 @@ EOHTML
974
950
  $args[] = json_encode($this->extraDisplayOptions, \JSON_FORCE_OBJECT);
975
951
  }
976
952
  // Replace is for BC
977
- $this->line .= sprintf(str_replace('"%s"', '%s', $this->dumpSuffix), implode(', ', $args));
953
+ $this->line .= \sprintf(str_replace('"%s"', '%s', $this->dumpSuffix), implode(', ', $args));
978
954
  }
979
955
  $this->lastDepth = $depth;
980
956
 
981
- $this->line = mb_convert_encoding($this->line, 'HTML-ENTITIES', 'UTF-8');
957
+ $this->line = mb_encode_numericentity($this->line, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');
982
958
 
983
959
  if (-1 === $depth) {
984
960
  AbstractDumper::dumpLine(0);
@@ -986,7 +962,7 @@ EOHTML
986
962
  AbstractDumper::dumpLine($depth);
987
963
  }
988
964
 
989
- private function getSourceLink(string $file, int $line)
965
+ private function getSourceLink(string $file, int $line): string|false
990
966
  {
991
967
  $options = $this->extraDisplayOptions + $this->displayOptions;
992
968
 
@@ -998,7 +974,7 @@ EOHTML
998
974
  }
999
975
  }
1000
976
 
1001
- function esc($str)
977
+ function esc(string $str): string
1002
978
  {
1003
979
  return htmlspecialchars($str, \ENT_QUOTES, 'UTF-8');
1004
980
  }
@@ -22,18 +22,19 @@ use Symfony\Component\VarDumper\Server\Connection;
22
22
  */
23
23
  class ServerDumper implements DataDumperInterface
24
24
  {
25
- private $connection;
26
- private $wrappedDumper;
25
+ private Connection $connection;
27
26
 
28
27
  /**
29
28
  * @param string $host The server host
30
29
  * @param DataDumperInterface|null $wrappedDumper A wrapped instance used whenever we failed contacting the server
31
30
  * @param ContextProviderInterface[] $contextProviders Context providers indexed by context name
32
31
  */
33
- public function __construct(string $host, DataDumperInterface $wrappedDumper = null, array $contextProviders = [])
34
- {
32
+ public function __construct(
33
+ string $host,
34
+ private ?DataDumperInterface $wrappedDumper = null,
35
+ array $contextProviders = [],
36
+ ) {
35
37
  $this->connection = new Connection($host, $contextProviders);
36
- $this->wrappedDumper = $wrappedDumper;
37
38
  }
38
39
 
39
40
  public function getContextProviders(): array
@@ -41,13 +42,12 @@ class ServerDumper implements DataDumperInterface
41
42
  return $this->connection->getContextProviders();
42
43
  }
43
44
 
44
- /**
45
- * {@inheritdoc}
46
- */
47
- public function dump(Data $data)
45
+ public function dump(Data $data): ?string
48
46
  {
49
47
  if (!$this->connection->write($data) && $this->wrappedDumper) {
50
- $this->wrappedDumper->dump($data);
48
+ return $this->wrappedDumper->dump($data);
51
49
  }
50
+
51
+ return null;
52
52
  }
53
53
  }
@@ -21,6 +21,6 @@ class ThrowingCasterException extends \Exception
21
21
  */
22
22
  public function __construct(\Throwable $prev)
23
23
  {
24
- parent::__construct('Unexpected '.\get_class($prev).' thrown from a caster: '.$prev->getMessage(), 0, $prev);
24
+ parent::__construct('Unexpected '.$prev::class.' thrown from a caster: '.$prev->getMessage(), 0, $prev);
25
25
  }
26
26
  }
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014-2020 Fabien Potencier
1
+ Copyright (c) 2014-present Fabien Potencier
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
@@ -3,13 +3,13 @@ VarDumper Component
3
3
 
4
4
  The VarDumper component provides mechanisms for walking through any arbitrary
5
5
  PHP variable. It provides a better `dump()` function that you can use instead
6
- of `var_dump`.
6
+ of `var_dump()`.
7
7
 
8
8
  Resources
9
9
  ---------
10
10
 
11
- * [Documentation](https://symfony.com/doc/current/components/var_dumper/introduction.html)
12
- * [Contributing](https://symfony.com/doc/current/contributing/index.html)
13
- * [Report issues](https://github.com/symfony/symfony/issues) and
14
- [send Pull Requests](https://github.com/symfony/symfony/pulls)
15
- in the [main Symfony repository](https://github.com/symfony/symfony)
11
+ * [Documentation](https://symfony.com/doc/current/components/var_dumper/introduction.html)
12
+ * [Contributing](https://symfony.com/doc/current/contributing/index.html)
13
+ * [Report issues](https://github.com/symfony/symfony/issues) and
14
+ [send Pull Requests](https://github.com/symfony/symfony/pulls)
15
+ in the [main Symfony repository](https://github.com/symfony/symfony)
@@ -10,6 +10,10 @@
10
10
  * file that was distributed with this source code.
11
11
  */
12
12
 
13
+ if ('cli' !== PHP_SAPI) {
14
+ throw new Exception('This script must be run from the command line.');
15
+ }
16
+
13
17
  /**
14
18
  * Starts a dump server to collect and output dumps on a single place with multiple formats support.
15
19
  *