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
@@ -7,9 +7,12 @@
7
7
  "homepage": "http://phug-lang.com",
8
8
  "authors": [
9
9
  {
10
- "name": "KyleKatarn",
11
- "email": "jade-php@selfbuild.fr",
10
+ "name": "kylekatarnls",
12
11
  "homepage": "http://github.com/kylekatarnls"
12
+ },
13
+ {
14
+ "name": "Torben Koehn",
15
+ "email": "torben@talesoft.codes"
13
16
  }
14
17
  ],
15
18
  "support": {
@@ -20,21 +23,22 @@
20
23
  },
21
24
  "minimum-stability": "dev",
22
25
  "require": {
23
- "php": ">=5.5.0",
24
- "symfony/var-dumper": "^3.4 || ^4.0 || ^5.0"
26
+ "php": "^7.1 || ^8.0",
27
+ "symfony/var-dumper": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0"
25
28
  },
26
29
  "require-dev": {
27
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.0",
28
- "phpunit/php-code-coverage": "^2.2 || ^4.0 || ^5.2 || ^6.0 || ^7.0",
29
- "squizlabs/php_codesniffer": "~3.4.2",
30
- "js-phpize/js-phpize-phug": "^1.2 || ^2.2",
31
- "pug-php/pug-filter-coffee-script": "^1.2",
32
- "nodejs-php-fallback/coffeescript": "^1.0",
33
- "nodejs-php-fallback/less": "^1.0",
34
- "nodejs-php-fallback/uglify": "^1.0",
35
- "nodejs-php-fallback/stylus": "^1.0",
36
30
  "cebe/markdown": "^1.1",
37
- "kylekatarnls/multi-tester": "^1.4"
31
+ "js-phpize/js-phpize-phug": "^2.2.1",
32
+ "nodejs-php-fallback/coffeescript": "^1.0.1",
33
+ "nodejs-php-fallback/less": "^1.0.5",
34
+ "nodejs-php-fallback/stylus": "^1.0.4",
35
+ "nodejs-php-fallback/uglify": "^1.0.4",
36
+ "phpunit/phpunit": "^7.5.20 || ^8.5.52 || ^9.6.34",
37
+ "phpunit/php-code-coverage": "^6.1.4 || ^7.0.17 || ^9.2.32",
38
+ "phpunit/php-invoker": "^1.1.4 || ^3.1.1",
39
+ "pug-php/pug": "^3.4.1",
40
+ "pug-php/pug-filter-coffee-script": "^1.3.1",
41
+ "squizlabs/php_codesniffer": "^3.13.5"
38
42
  },
39
43
  "replace": {
40
44
  "phug/ast": "self.version",
@@ -65,9 +69,9 @@
65
69
  "./src/Phug/Lexer/",
66
70
  "./src/Phug/Parser/",
67
71
  "./src/Phug/Reader/",
68
- "./src/Phug/Renderer/",
69
- "./src/Phug/Util/"
70
- ]
72
+ "./src/Phug/Renderer/"
73
+ ],
74
+ "Phug\\Util\\": "./src/Phug/Util/Util/"
71
75
  }
72
76
  },
73
77
  "autoload-dev": {
@@ -78,8 +82,13 @@
78
82
  "bin": ["phug"],
79
83
  "extra": {
80
84
  "branch-alias": {
81
- "dev-master": "1.x-dev",
85
+ "dev-master": "2.x-dev",
82
86
  "dev-facade": "0.4.x-dev"
83
87
  }
88
+ },
89
+ "config": {
90
+ "allow-plugins": {
91
+ "nodejs-php-fallback/nodejs-php-fallback": true
92
+ }
84
93
  }
85
94
  }
@@ -2,6 +2,10 @@
2
2
  <ruleset name="PSR-2">
3
3
  <rule ref="PSR2">
4
4
  <exclude-pattern>*.js</exclude-pattern>
5
+ <exclude-pattern>*/src/Phug/Renderer/Renderer/Adapter/Stream/Template.php</exclude-pattern>
6
+ <exclude-pattern>*/src/Phug/Util/Util/TestCase.php</exclude-pattern>
7
+ <exclude-pattern>*/src/Phug/Util/CompatibilityUtil/TestCaseTyped.php</exclude-pattern>
8
+ <exclude-pattern>*/src/Phug/Util/CompatibilityUtil/TestCaseUntyped.php</exclude-pattern>
5
9
  </rule>
6
10
  <file>src</file>
7
11
  </ruleset>
@@ -7,6 +7,8 @@
7
7
  convertErrorsToExceptions="true"
8
8
  convertNoticesToExceptions="true"
9
9
  convertWarningsToExceptions="true"
10
+ enforceTimeLimit="true"
11
+ defaultTimeLimit="1"
10
12
  verbose="true">
11
13
  <testsuites>
12
14
  <testsuite name="Phug">
@@ -19,7 +19,7 @@ if (!file_exists($autoload)) {
19
19
 
20
20
  include $autoload;
21
21
 
22
- $cli = new Cli('Phug', [
22
+ $cli = new Cli('Phug\Phug', [
23
23
  'render',
24
24
  'renderFile',
25
25
  'renderDirectory',
@@ -1,5 +1,13 @@
1
1
  <?php
2
2
 
3
+ /**
4
+ * Example:
5
+ * ```
6
+ * php release.php minor stable message.md
7
+ * ```.
8
+ *
9
+ * Put release notes in message.md as Markdown format.
10
+ */
3
11
  $settings = parse_ini_file('.env');
4
12
 
5
13
  function env($var)
@@ -4,6 +4,7 @@ namespace Phug\Ast;
4
4
 
5
5
  use InvalidArgumentException;
6
6
  use Phug\AstException;
7
+ use ReturnTypeWillChange;
7
8
 
8
9
  /**
9
10
  * Represents a node in a tree-like data structure.
@@ -30,7 +31,7 @@ class Node implements NodeInterface
30
31
  * @param NodeInterface $parent
31
32
  * @param array $children
32
33
  */
33
- public function __construct(NodeInterface $parent = null, array $children = null)
34
+ public function __construct(?NodeInterface $parent = null, ?array $children = null)
34
35
  {
35
36
  $this->parent = null;
36
37
  $this->children = [];
@@ -76,7 +77,7 @@ class Node implements NodeInterface
76
77
  /**
77
78
  * {@inheritdoc}
78
79
  */
79
- public function setParent(NodeInterface $parent = null)
80
+ public function setParent(?NodeInterface $parent = null)
80
81
  {
81
82
  if ($this->parent === $parent) {
82
83
  return $this;
@@ -369,7 +370,6 @@ class Node implements NodeInterface
369
370
  $level = $level ?: 0;
370
371
 
371
372
  foreach ($this->children as $child) {
372
-
373
373
  /** @var NodeInterface $child */
374
374
  if ($child->is($callback)) {
375
375
  yield $child;
@@ -418,6 +418,7 @@ class Node implements NodeInterface
418
418
  /**
419
419
  * {@inheritdoc}
420
420
  */
421
+ #[ReturnTypeWillChange]
421
422
  public function getIterator()
422
423
  {
423
424
  foreach ($this->children as $child) {
@@ -428,6 +429,7 @@ class Node implements NodeInterface
428
429
  /**
429
430
  * {@inheritdoc}
430
431
  */
432
+ #[ReturnTypeWillChange]
431
433
  public function count()
432
434
  {
433
435
  return $this->getChildCount();
@@ -436,6 +438,7 @@ class Node implements NodeInterface
436
438
  /**
437
439
  * {@inheritdoc}
438
440
  */
441
+ #[ReturnTypeWillChange]
439
442
  public function offsetExists($offset)
440
443
  {
441
444
  return $this->hasChildAt($offset);
@@ -444,6 +447,7 @@ class Node implements NodeInterface
444
447
  /**
445
448
  * {@inheritdoc}
446
449
  */
450
+ #[ReturnTypeWillChange]
447
451
  public function offsetGet($offset)
448
452
  {
449
453
  return $this->getChildAt($offset);
@@ -452,6 +456,7 @@ class Node implements NodeInterface
452
456
  /**
453
457
  * {@inheritdoc}
454
458
  */
459
+ #[ReturnTypeWillChange]
455
460
  public function offsetSet($offset, $value)
456
461
  {
457
462
  if (!($value instanceof NodeInterface)) {
@@ -475,6 +480,7 @@ class Node implements NodeInterface
475
480
  /**
476
481
  * {@inheritdoc}
477
482
  */
483
+ #[ReturnTypeWillChange]
478
484
  public function offsetUnset($offset)
479
485
  {
480
486
  $this->removeChildAt($offset);
@@ -11,8 +11,7 @@
11
11
  "email": "torben@talesoft.codes"
12
12
  },
13
13
  {
14
- "name": "KyleKatarn",
15
- "email": "jade-php@selfbuild.fr",
14
+ "name": "kylekatarnls",
16
15
  "homepage": "http://github.com/kylekatarnls"
17
16
  }
18
17
  ],
@@ -38,7 +37,7 @@
38
37
  },
39
38
  "extra": {
40
39
  "branch-alias": {
41
- "dev-master": "1.x-dev"
40
+ "dev-master": "2.x-dev"
42
41
  }
43
42
  }
44
43
  }
@@ -41,7 +41,7 @@ abstract class AbstractNodeCompiler implements NodeCompilerInterface
41
41
  *
42
42
  * @return ElementInterface[]
43
43
  */
44
- public function getCompiledNodeList($nodeList, ElementInterface $element = null)
44
+ public function getCompiledNodeList($nodeList, ?ElementInterface $element = null)
45
45
  {
46
46
  return array_values(array_filter(array_map(
47
47
  function (NodeInterface $childNode) use ($element) {
@@ -59,7 +59,7 @@ abstract class AbstractNodeCompiler implements NodeCompilerInterface
59
59
  *
60
60
  * @return ElementInterface[]
61
61
  */
62
- public function getCompiledChildren(NodeInterface $node, ElementInterface $element = null)
62
+ public function getCompiledChildren(NodeInterface $node, ?ElementInterface $element = null)
63
63
  {
64
64
  return $this->getCompiledNodeList($node->getChildren(), $element);
65
65
  }
@@ -71,7 +71,7 @@ abstract class AbstractNodeCompiler implements NodeCompilerInterface
71
71
  * @param NodeInterface $node
72
72
  * @param ElementInterface|null $element
73
73
  */
74
- public function compileNodeChildren(NodeInterface $node, ElementInterface $element = null)
74
+ public function compileNodeChildren(NodeInterface $node, ?ElementInterface $element = null)
75
75
  {
76
76
  $children = array_filter($node->getChildren());
77
77
  array_walk($children, function (NodeInterface $childNode) use ($element) {
@@ -109,7 +109,7 @@ abstract class AbstractNodeCompiler implements NodeCompilerInterface
109
109
  }, $children));
110
110
  }
111
111
 
112
- private function compileParserNode(NodeInterface $node, ElementInterface $element = null)
112
+ private function compileParserNode(NodeInterface $node, ?ElementInterface $element = null)
113
113
  {
114
114
  return $node instanceof ParserNodeInterface
115
115
  ? $this->getCompiler()->compileNode($node, $element)
@@ -22,9 +22,9 @@ class BlockElement extends AbstractElement
22
22
  public function __construct(
23
23
  CompilerInterface $compiler,
24
24
  $name = '',
25
- ParserNode $originNode = null,
26
- NodeInterface $parent = null,
27
- array $children = null
25
+ ?ParserNode $originNode = null,
26
+ ?NodeInterface $parent = null,
27
+ ?array $children = null
28
28
  ) {
29
29
  $blocks = &$compiler->getBlocksByName($name);
30
30
  $blocks[] = $this;
@@ -51,7 +51,7 @@ class BlockElement extends AbstractElement
51
51
  */
52
52
  public function addCompiler(CompilerInterface $compiler)
53
53
  {
54
- if (!in_array($compiler, $this->compilers)) {
54
+ if (!in_array($compiler, $this->compilers, true)) {
55
55
  $blocks = &$compiler->getBlocksByName($this->name);
56
56
  $blocks[] = $this;
57
57
  $this->compilers[] = $compiler;
@@ -9,7 +9,7 @@ use Phug\Parser\NodeInterface;
9
9
 
10
10
  class AssignmentListNodeCompiler extends AbstractNodeCompiler
11
11
  {
12
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
12
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
13
13
  {
14
14
  $this->getCompiler()->assert(
15
15
  $node instanceof AssignmentListNode,
@@ -8,11 +8,12 @@ use Phug\Formatter\ElementInterface;
8
8
  use Phug\Parser\Node\AssignmentNode;
9
9
  use Phug\Parser\Node\AttributeNode;
10
10
  use Phug\Parser\NodeInterface;
11
+ use Phug\Util\OrderableInterface;
11
12
  use SplObjectStorage;
12
13
 
13
14
  class AssignmentNodeCompiler extends AbstractNodeCompiler
14
15
  {
15
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
16
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
16
17
  {
17
18
  $this->getCompiler()->assert(
18
19
  $node instanceof AssignmentNode,
@@ -25,9 +26,16 @@ class AssignmentNodeCompiler extends AbstractNodeCompiler
25
26
  */
26
27
  $name = $node->getName();
27
28
  $attributes = new SplObjectStorage();
29
+
28
30
  foreach ($node->getAttributes() as $attribute) {
29
31
  /* @var AttributeNode $attribute */
30
- $attributes->attach($this->getCompiler()->compileNode($attribute, $parent));
32
+ $attributeElement = $this->getCompiler()->compileNode($attribute, $parent);
33
+
34
+ if ($attribute instanceof OrderableInterface && $attributeElement instanceof OrderableInterface) {
35
+ $attributeElement->setOrder($attribute->getOrder());
36
+ }
37
+
38
+ $attributes->attach($attributeElement);
31
39
  }
32
40
 
33
41
  return new AssignmentElement($name, $attributes, null, $node);
@@ -9,7 +9,7 @@ use Phug\Parser\NodeInterface;
9
9
 
10
10
  class AttributeListNodeCompiler extends AbstractNodeCompiler
11
11
  {
12
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
12
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
13
13
  {
14
14
  $this->getCompiler()->assert(
15
15
  $node instanceof AttributeListNode,
@@ -57,7 +57,7 @@ class AttributeNodeCompiler extends AbstractNodeCompiler
57
57
  return $value;
58
58
  }
59
59
 
60
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
60
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
61
61
  {
62
62
  $this->getCompiler()->assert(
63
63
  $node instanceof AttributeNode,
@@ -71,6 +71,7 @@ class AttributeNodeCompiler extends AbstractNodeCompiler
71
71
  $name = $this->compileName($node);
72
72
  $value = $this->compileValue($node);
73
73
  $attribute = new AttributeElement($name, $value, $node);
74
+ $attribute->setOrder($node->getOrder());
74
75
  $attribute->setIsVariadic($node->isVariadic());
75
76
 
76
77
  return $attribute;
@@ -12,7 +12,7 @@ use Phug\Parser\NodeInterface;
12
12
 
13
13
  class BlockNodeCompiler extends AbstractNodeCompiler
14
14
  {
15
- protected function compileAnonymousBlock(BlockNode $node, ElementInterface $parent = null)
15
+ protected function compileAnonymousBlock(BlockNode $node, ?ElementInterface $parent = null)
16
16
  {
17
17
  $mixin = $node;
18
18
  while ($mixin->hasParent() && !($mixin instanceof MixinNode)) {
@@ -38,7 +38,7 @@ class BlockNodeCompiler extends AbstractNodeCompiler
38
38
  return false;
39
39
  }
40
40
 
41
- protected function compileNamedBlock($name, BlockNode $node, ElementInterface $parent = null)
41
+ protected function compileNamedBlock($name, BlockNode $node, ?ElementInterface $parent = null)
42
42
  {
43
43
  $compiler = $this->getCompiler();
44
44
  $layout = $compiler->getLayout();
@@ -63,7 +63,7 @@ class BlockNodeCompiler extends AbstractNodeCompiler
63
63
  );
64
64
  }
65
65
 
66
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
66
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
67
67
  {
68
68
  $this->getCompiler()->assert(
69
69
  $node instanceof BlockNode,
@@ -8,7 +8,7 @@ use Phug\Parser\NodeInterface;
8
8
 
9
9
  class CaseNodeCompiler extends AbstractStatementNodeCompiler
10
10
  {
11
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
11
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
12
12
  {
13
13
  $this->getCompiler()->assert(
14
14
  $node instanceof CaseNode,
@@ -12,7 +12,7 @@ use Phug\Parser\NodeInterface;
12
12
 
13
13
  class CodeNodeCompiler extends AbstractNodeCompiler
14
14
  {
15
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
15
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
16
16
  {
17
17
  $this->getCompiler()->assert(
18
18
  $node instanceof CodeNode,
@@ -42,7 +42,7 @@ class CodeNodeCompiler extends AbstractNodeCompiler
42
42
  return $code;
43
43
  }
44
44
 
45
- private function getCodeElement(CodeNode $node, array $texts, array $children, ElementInterface $parent = null)
45
+ private function getCodeElement(CodeNode $node, array $texts, array $children, ?ElementInterface $parent = null)
46
46
  {
47
47
  if (count($texts) === count($children)) {
48
48
  return new CodeElement($this->getTextChildren($node), $node);
@@ -10,7 +10,7 @@ use Phug\Parser\NodeInterface;
10
10
 
11
11
  class CommentNodeCompiler extends AbstractNodeCompiler
12
12
  {
13
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
13
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
14
14
  {
15
15
  $this->getCompiler()->assert(
16
16
  $node instanceof CommentNode,
@@ -9,7 +9,7 @@ use Phug\Util\TransformableInterface;
9
9
 
10
10
  class ConditionalNodeCompiler extends AbstractStatementNodeCompiler
11
11
  {
12
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
12
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
13
13
  {
14
14
  $compiler = $this->getCompiler();
15
15
 
@@ -8,7 +8,7 @@ use Phug\Parser\NodeInterface;
8
8
 
9
9
  class DoNodeCompiler extends AbstractStatementNodeCompiler
10
10
  {
11
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
11
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
12
12
  {
13
13
  $this->getCompiler()->assert(
14
14
  $node instanceof DoNode,
@@ -10,7 +10,7 @@ use Phug\Parser\NodeInterface;
10
10
 
11
11
  class DoctypeNodeCompiler extends AbstractNodeCompiler
12
12
  {
13
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
13
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
14
14
  {
15
15
  $compiler = $this->getCompiler();
16
16
  $compiler->assert(
@@ -10,7 +10,7 @@ use Phug\Parser\NodeInterface;
10
10
 
11
11
  class DocumentNodeCompiler extends AbstractNodeCompiler
12
12
  {
13
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
13
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
14
14
  {
15
15
  $this->getCompiler()->assert(
16
16
  $node instanceof DocumentNode,
@@ -76,7 +76,7 @@ class EachNodeCompiler extends AbstractStatementNodeCompiler
76
76
  return $loop;
77
77
  }
78
78
 
79
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
79
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
80
80
  {
81
81
  $this->getCompiler()->assert(
82
82
  $node instanceof EachNode,
@@ -9,11 +9,12 @@ use Phug\Formatter\ElementInterface;
9
9
  use Phug\Parser\Node\ElementNode;
10
10
  use Phug\Parser\Node\ExpressionNode;
11
11
  use Phug\Parser\NodeInterface;
12
+ use Phug\Util\OrderableInterface;
12
13
  use SplObjectStorage;
13
14
 
14
15
  class ElementNodeCompiler extends AbstractNodeCompiler
15
16
  {
16
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
17
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
17
18
  {
18
19
  $compiler = $this->getCompiler();
19
20
  $compiler->assert(
@@ -35,6 +36,11 @@ class ElementNodeCompiler extends AbstractNodeCompiler
35
36
  $markup = new MarkupElement($name, $node->isAutoClosed(), $attributes, $node);
36
37
  foreach ($node->getAssignments() as $assignment) {
37
38
  $compiledAssignment = $compiler->compileNode($assignment, $parent);
39
+
40
+ if ($compiledAssignment instanceof OrderableInterface && $assignment instanceof OrderableInterface) {
41
+ $compiledAssignment->setOrder($assignment->getOrder());
42
+ }
43
+
38
44
  if ($compiledAssignment instanceof AssignmentElement) {
39
45
  $markup->addAssignment($compiledAssignment);
40
46
  }
@@ -10,7 +10,7 @@ use Phug\Parser\NodeInterface;
10
10
 
11
11
  class ExpressionNodeCompiler extends AbstractNodeCompiler
12
12
  {
13
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
13
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
14
14
  {
15
15
  $this->getCompiler()->assert(
16
16
  $node instanceof ExpressionNode,
@@ -40,7 +40,7 @@ class FilterNodeCompiler extends AbstractNodeCompiler
40
40
  }, $children));
41
41
  }
42
42
 
43
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
43
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
44
44
  {
45
45
  $compiler = $this->getCompiler();
46
46
  $compiler->assert(
@@ -8,7 +8,7 @@ use Phug\Parser\NodeInterface;
8
8
 
9
9
  class ForNodeCompiler extends EachNodeCompiler
10
10
  {
11
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
11
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
12
12
  {
13
13
  $this->getCompiler()->assert(
14
14
  $node instanceof ForNode,
@@ -23,11 +23,11 @@ class ImportNodeCompiler extends AbstractNodeCompiler
23
23
  protected function isPugImport($path)
24
24
  {
25
25
  $compiler = $this->getCompiler();
26
- $extension = pathinfo($path, PATHINFO_EXTENSION) ?: '';
26
+ $extension = pathinfo((string) $path, PATHINFO_EXTENSION);
27
27
  $extensions = $compiler->getOption('extensions');
28
28
 
29
29
  if ($extension === '') {
30
- return in_array('', $extensions);
30
+ return in_array('', $extensions, true);
31
31
  }
32
32
 
33
33
  if (!$compiler->getOption('allow_composite_extensions')) {
@@ -51,7 +51,7 @@ class ImportNodeCompiler extends AbstractNodeCompiler
51
51
  *
52
52
  * @return null|ElementInterface
53
53
  */
54
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
54
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
55
55
  {
56
56
  $compiler = $this->getCompiler();
57
57
  $compiler->assert(
@@ -72,7 +72,7 @@ class ImportNodeCompiler extends AbstractNodeCompiler
72
72
 
73
73
  $paths = $isAbsolutePath
74
74
  ? null
75
- : [dirname($compiler->getPath()) ?: '.'];
75
+ : [dirname((string) $compiler->getPath()) ?: '.'];
76
76
 
77
77
  $path = $compiler->resolve($node->getPath(), $paths);
78
78
  $compiler->registerImportPath($path);
@@ -135,7 +135,7 @@ class ImportNodeCompiler extends AbstractNodeCompiler
135
135
  'input',
136
136
  'meta',
137
137
  'hr',
138
- ])) {
138
+ ], true)) {
139
139
  $yield = $yield->getParent();
140
140
  }
141
141
  if ($compiler->getImportNode()) {
@@ -10,7 +10,7 @@ use Phug\Parser\NodeInterface;
10
10
 
11
11
  class KeywordNodeCompiler extends AbstractNodeCompiler
12
12
  {
13
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
13
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
14
14
  {
15
15
  $this->getCompiler()->assert(
16
16
  $node instanceof KeywordNode,
@@ -14,7 +14,7 @@ use Phug\Parser\NodeInterface as ParserNodeInterface;
14
14
 
15
15
  class MixinCallNodeCompiler extends AbstractNodeCompiler
16
16
  {
17
- public function compileNode(ParserNodeInterface $node, ElementInterface $parent = null)
17
+ public function compileNode(ParserNodeInterface $node, ?ElementInterface $parent = null)
18
18
  {
19
19
  $compiler = $this->getCompiler();
20
20
  $compiler->assert(
@@ -13,7 +13,7 @@ use Phug\Parser\NodeInterface;
13
13
 
14
14
  class MixinNodeCompiler extends AbstractNodeCompiler
15
15
  {
16
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
16
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
17
17
  {
18
18
  $compiler = $this->getCompiler();
19
19
  $compiler->assert(
@@ -10,7 +10,7 @@ use Phug\Parser\NodeInterface;
10
10
 
11
11
  class TextNodeCompiler extends AbstractNodeCompiler
12
12
  {
13
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
13
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
14
14
  {
15
15
  $this->getCompiler()->assert(
16
16
  $node instanceof TextNode,
@@ -10,7 +10,7 @@ use Phug\Parser\NodeInterface;
10
10
 
11
11
  class VariableNodeCompiler extends AbstractNodeCompiler
12
12
  {
13
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
13
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
14
14
  {
15
15
  $compiler = $this->getCompiler();
16
16
  $compiler->assert(
@@ -10,7 +10,7 @@ use Phug\Parser\NodeInterface;
10
10
 
11
11
  class WhenNodeCompiler extends AbstractNodeCompiler
12
12
  {
13
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
13
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
14
14
  {
15
15
  $this->getCompiler()->assert(
16
16
  $node instanceof WhenNode,
@@ -9,7 +9,7 @@ use Phug\Parser\NodeInterface;
9
9
 
10
10
  class WhileNodeCompiler extends AbstractStatementNodeCompiler
11
11
  {
12
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
12
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
13
13
  {
14
14
  $compiler = $this->getCompiler();
15
15
  $compiler->assert(
@@ -10,7 +10,7 @@ use Phug\Parser\NodeInterface;
10
10
 
11
11
  class YieldNodeCompiler extends AbstractNodeCompiler
12
12
  {
13
- public function compileNode(NodeInterface $node, ElementInterface $parent = null)
13
+ public function compileNode(NodeInterface $node, ?ElementInterface $parent = null)
14
14
  {
15
15
  $compiler = $this->getCompiler();
16
16
  $compiler->assert(