sdc-build-wp 4.1.0 → 4.1.2

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 (296) hide show
  1. package/composer.json +2 -3
  2. package/composer.lock +3 -313
  3. package/index.js +38 -21
  4. package/lib/blocks.js +8 -6
  5. package/lib/style.js +17 -0
  6. package/package.json +1 -1
  7. package/vendor/composer/autoload_classmap.php +0 -37
  8. package/vendor/composer/autoload_psr4.php +0 -1
  9. package/vendor/composer/autoload_real.php +2 -0
  10. package/vendor/composer/autoload_static.php +0 -53
  11. package/vendor/composer/installed.json +1 -329
  12. package/vendor/composer/installed.php +3 -39
  13. package/vendor/composer/platform_check.php +26 -0
  14. package/lib/bustCache.js +0 -14
  15. package/vendor/dealerdirect/phpcodesniffer-composer-installer/LICENSE.md +0 -22
  16. package/vendor/dealerdirect/phpcodesniffer-composer-installer/README.md +0 -285
  17. package/vendor/dealerdirect/phpcodesniffer-composer-installer/composer.json +0 -71
  18. package/vendor/dealerdirect/phpcodesniffer-composer-installer/src/Plugin.php +0 -637
  19. package/vendor/phpcsstandards/phpcsextra/CHANGELOG.md +0 -590
  20. package/vendor/phpcsstandards/phpcsextra/LICENSE +0 -165
  21. package/vendor/phpcsstandards/phpcsextra/Modernize/Docs/FunctionCalls/DirnameStandard.xml +0 -40
  22. package/vendor/phpcsstandards/phpcsextra/Modernize/Sniffs/FunctionCalls/DirnameSniff.php +0 -382
  23. package/vendor/phpcsstandards/phpcsextra/Modernize/ruleset.xml +0 -5
  24. package/vendor/phpcsstandards/phpcsextra/NormalizedArrays/Docs/Arrays/ArrayBraceSpacingStandard.xml +0 -94
  25. package/vendor/phpcsstandards/phpcsextra/NormalizedArrays/Docs/Arrays/CommaAfterLastStandard.xml +0 -43
  26. package/vendor/phpcsstandards/phpcsextra/NormalizedArrays/Sniffs/Arrays/ArrayBraceSpacingSniff.php +0 -305
  27. package/vendor/phpcsstandards/phpcsextra/NormalizedArrays/Sniffs/Arrays/CommaAfterLastSniff.php +0 -226
  28. package/vendor/phpcsstandards/phpcsextra/NormalizedArrays/ruleset.xml +0 -5
  29. package/vendor/phpcsstandards/phpcsextra/README.md +0 -573
  30. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Arrays/DisallowShortArraySyntaxStandard.xml +0 -27
  31. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Arrays/DuplicateArrayKeyStandard.xml +0 -44
  32. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Arrays/MixedArrayKeyTypesStandard.xml +0 -40
  33. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Arrays/MixedKeyedUnkeyedArrayStandard.xml +0 -31
  34. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Classes/DisallowAnonClassParenthesesStandard.xml +0 -24
  35. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Classes/DisallowFinalClassStandard.xml +0 -25
  36. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Classes/ModifierKeywordOrderStandard.xml +0 -27
  37. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Classes/RequireAnonClassParenthesesStandard.xml +0 -23
  38. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Classes/RequireFinalClassStandard.xml +0 -25
  39. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/CodeAnalysis/ConstructorDestructorReturnStandard.xml +0 -64
  40. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/CodeAnalysis/ForeachUniqueAssignmentStandard.xml +0 -26
  41. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/CodeAnalysis/NoDoubleNegativeStandard.xml +0 -27
  42. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/CodeAnalysis/NoEchoSprintfStandard.xml +0 -25
  43. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/CodeAnalysis/StaticInFinalClassStandard.xml +0 -43
  44. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Constants/LowercaseClassResolutionKeywordStandard.xml +0 -23
  45. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Constants/ModifierKeywordOrderStandard.xml +0 -30
  46. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Constants/UppercaseMagicConstantsStandard.xml +0 -25
  47. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/ControlStructures/DisallowAlternativeSyntaxStandard.xml +0 -35
  48. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/ControlStructures/DisallowLonelyIfStandard.xml +0 -49
  49. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/ControlStructures/IfElseDeclarationStandard.xml +0 -37
  50. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Files/SeparateFunctionsFromOOStandard.xml +0 -45
  51. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/FunctionDeclarations/NoLongClosuresStandard.xml +0 -42
  52. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/FunctionDeclarations/RequireFinalMethodsInTraitsStandard.xml +0 -33
  53. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Lists/DisallowLongListSyntaxStandard.xml +0 -23
  54. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Lists/DisallowShortListSyntaxStandard.xml +0 -23
  55. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Namespaces/DisallowCurlyBraceSyntaxStandard.xml +0 -27
  56. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Namespaces/DisallowDeclarationWithoutNameStandard.xml +0 -25
  57. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Namespaces/EnforceCurlyBraceSyntaxStandard.xml +0 -27
  58. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Namespaces/OneDeclarationPerFileStandard.xml +0 -27
  59. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/NamingConventions/NoReservedKeywordParameterNamesStandard.xml +0 -23
  60. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/OOStructures/AlphabeticExtendsImplementsStandard.xml +0 -27
  61. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/ConcatPositionStandard.xml +0 -31
  62. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/DisallowLogicalAndOrStandard.xml +0 -30
  63. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/DisallowShortTernaryStandard.xml +0 -26
  64. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/DisallowStandalonePostIncrementDecrementStandard.xml +0 -44
  65. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/StrictComparisonsStandard.xml +0 -29
  66. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/TypeSeparatorSpacingStandard.xml +0 -33
  67. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/PHP/LowercasePHPTagStandard.xml +0 -25
  68. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/PHP/OneStatementInShortEchoTagStandard.xml +0 -41
  69. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/DisallowMixedGroupUseStandard.xml +0 -39
  70. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/DisallowUseClassStandard.xml +0 -25
  71. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/DisallowUseConstStandard.xml +0 -25
  72. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/DisallowUseFunctionStandard.xml +0 -25
  73. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/KeywordSpacingStandard.xml +0 -29
  74. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/LowercaseFunctionConstStandard.xml +0 -25
  75. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/NoLeadingBackslashStandard.xml +0 -23
  76. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/NoUselessAliasesStandard.xml +0 -30
  77. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/WhiteSpace/AnonClassKeywordSpacingStandard.xml +0 -31
  78. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/WhiteSpace/CommaSpacingStandard.xml +0 -94
  79. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/WhiteSpace/DisallowInlineTabsStandard.xml +0 -25
  80. package/vendor/phpcsstandards/phpcsextra/Universal/Docs/WhiteSpace/PrecisionAlignmentStandard.xml +0 -29
  81. package/vendor/phpcsstandards/phpcsextra/Universal/Helpers/DummyTokenizer.php +0 -60
  82. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Arrays/DisallowShortArraySyntaxSniff.php +0 -89
  83. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Arrays/DuplicateArrayKeySniff.php +0 -297
  84. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Arrays/MixedArrayKeyTypesSniff.php +0 -174
  85. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Arrays/MixedKeyedUnkeyedArraySniff.php +0 -134
  86. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Classes/DisallowAnonClassParenthesesSniff.php +0 -112
  87. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Classes/DisallowFinalClassSniff.php +0 -116
  88. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Classes/ModifierKeywordOrderSniff.php +0 -188
  89. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Classes/RequireAnonClassParenthesesSniff.php +0 -81
  90. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Classes/RequireFinalClassSniff.php +0 -102
  91. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/CodeAnalysis/ConstructorDestructorReturnSniff.php +0 -211
  92. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/CodeAnalysis/ForeachUniqueAssignmentSniff.php +0 -153
  93. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/CodeAnalysis/NoDoubleNegativeSniff.php +0 -269
  94. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/CodeAnalysis/NoEchoSprintfSniff.php +0 -131
  95. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/CodeAnalysis/StaticInFinalClassSniff.php +0 -216
  96. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Constants/LowercaseClassResolutionKeywordSniff.php +0 -106
  97. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Constants/ModifierKeywordOrderSniff.php +0 -199
  98. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Constants/UppercaseMagicConstantsSniff.php +0 -89
  99. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/ControlStructures/DisallowAlternativeSyntaxSniff.php +0 -216
  100. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/ControlStructures/DisallowLonelyIfSniff.php +0 -348
  101. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/ControlStructures/IfElseDeclarationSniff.php +0 -164
  102. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Files/SeparateFunctionsFromOOSniff.php +0 -190
  103. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/FunctionDeclarations/NoLongClosuresSniff.php +0 -233
  104. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/FunctionDeclarations/RequireFinalMethodsInTraitsSniff.php +0 -120
  105. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Lists/DisallowLongListSyntaxSniff.php +0 -71
  106. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Lists/DisallowShortListSyntaxSniff.php +0 -86
  107. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Namespaces/DisallowCurlyBraceSyntaxSniff.php +0 -81
  108. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Namespaces/DisallowDeclarationWithoutNameSniff.php +0 -80
  109. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Namespaces/EnforceCurlyBraceSyntaxSniff.php +0 -81
  110. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Namespaces/OneDeclarationPerFileSniff.php +0 -96
  111. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/NamingConventions/NoReservedKeywordParameterNamesSniff.php +0 -190
  112. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/OOStructures/AlphabeticExtendsImplementsSniff.php +0 -275
  113. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/ConcatPositionSniff.php +0 -204
  114. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/DisallowLogicalAndOrSniff.php +0 -112
  115. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/DisallowShortTernarySniff.php +0 -76
  116. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/DisallowStandalonePostIncrementDecrementSniff.php +0 -197
  117. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/StrictComparisonsSniff.php +0 -116
  118. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/TypeSeparatorSpacingSniff.php +0 -85
  119. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/PHP/LowercasePHPTagSniff.php +0 -87
  120. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/PHP/OneStatementInShortEchoTagSniff.php +0 -101
  121. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/DisallowMixedGroupUseSniff.php +0 -248
  122. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/DisallowUseClassSniff.php +0 -211
  123. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/DisallowUseConstSniff.php +0 -211
  124. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/DisallowUseFunctionSniff.php +0 -211
  125. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/KeywordSpacingSniff.php +0 -207
  126. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/LowercaseFunctionConstSniff.php +0 -156
  127. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/NoLeadingBackslashSniff.php +0 -170
  128. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/NoUselessAliasesSniff.php +0 -155
  129. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/WhiteSpace/AnonClassKeywordSpacingSniff.php +0 -79
  130. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/WhiteSpace/CommaSpacingSniff.php +0 -408
  131. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/WhiteSpace/DisallowInlineTabsSniff.php +0 -173
  132. package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/WhiteSpace/PrecisionAlignmentSniff.php +0 -445
  133. package/vendor/phpcsstandards/phpcsextra/Universal/ruleset.xml +0 -5
  134. package/vendor/phpcsstandards/phpcsextra/composer.json +0 -69
  135. package/vendor/phpcsstandards/phpcsutils/.phpdoc.xml.dist +0 -36
  136. package/vendor/phpcsstandards/phpcsutils/CHANGELOG.md +0 -1106
  137. package/vendor/phpcsstandards/phpcsutils/LICENSE +0 -165
  138. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/AbstractSniffs/AbstractArrayDeclarationSniff.php +0 -551
  139. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/BackCompat/BCFile.php +0 -781
  140. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/BackCompat/BCTokens.php +0 -123
  141. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/BackCompat/Helper.php +0 -202
  142. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Exceptions/InvalidTokenArray.php +0 -44
  143. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Exceptions/TestFileNotFound.php +0 -47
  144. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Exceptions/TestMarkerNotFound.php +0 -43
  145. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Exceptions/TestTargetNotFound.php +0 -50
  146. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Fixers/SpacesFixer.php +0 -246
  147. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Internal/Cache.php +0 -218
  148. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Internal/IsShortArrayOrList.php +0 -687
  149. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Internal/IsShortArrayOrListWithCache.php +0 -269
  150. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Internal/NoFileCache.php +0 -164
  151. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Internal/StableCollections.php +0 -75
  152. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/TestUtils/UtilityMethodTestCase.php +0 -459
  153. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Tokens/Collections.php +0 -837
  154. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Tokens/TokenHelper.php +0 -55
  155. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Arrays.php +0 -227
  156. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Conditions.php +0 -156
  157. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Context.php +0 -232
  158. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/ControlStructures.php +0 -276
  159. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/FunctionDeclarations.php +0 -828
  160. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/GetTokensAsString.php +0 -262
  161. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Lists.php +0 -359
  162. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/MessageHelper.php +0 -145
  163. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Namespaces.php +0 -389
  164. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/NamingConventions.php +0 -116
  165. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Numbers.php +0 -322
  166. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/ObjectDeclarations.php +0 -359
  167. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Operators.php +0 -252
  168. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Orthography.php +0 -120
  169. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Parentheses.php +0 -419
  170. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/PassedParameters.php +0 -510
  171. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Scopes.php +0 -143
  172. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/TextStrings.php +0 -331
  173. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/UseStatements.php +0 -432
  174. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Variables.php +0 -333
  175. package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/ruleset.xml +0 -4
  176. package/vendor/phpcsstandards/phpcsutils/README.md +0 -297
  177. package/vendor/phpcsstandards/phpcsutils/composer.json +0 -92
  178. package/vendor/phpcsstandards/phpcsutils/phpcsutils-autoload.php +0 -68
  179. package/vendor/wp-coding-standards/wpcs/CHANGELOG.md +0 -1654
  180. package/vendor/wp-coding-standards/wpcs/LICENSE +0 -21
  181. package/vendor/wp-coding-standards/wpcs/README.md +0 -261
  182. package/vendor/wp-coding-standards/wpcs/WordPress/AbstractArrayAssignmentRestrictionsSniff.php +0 -261
  183. package/vendor/wp-coding-standards/wpcs/WordPress/AbstractClassRestrictionsSniff.php +0 -257
  184. package/vendor/wp-coding-standards/wpcs/WordPress/AbstractFunctionParameterSniff.php +0 -111
  185. package/vendor/wp-coding-standards/wpcs/WordPress/AbstractFunctionRestrictionsSniff.php +0 -358
  186. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/Arrays/ArrayIndentationStandard.xml +0 -116
  187. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/Arrays/ArrayKeySpacingRestrictionsStandard.xml +0 -31
  188. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/Arrays/MultipleStatementAlignmentStandard.xml +0 -50
  189. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/CodeAnalysis/EscapedNotTranslatedStandard.xml +0 -24
  190. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/DateTime/CurrentTimeTimestampStandard.xml +0 -35
  191. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/DateTime/RestrictedFunctionsStandard.xml +0 -54
  192. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/NamingConventions/PrefixAllGlobalsStandard.xml +0 -119
  193. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/NamingConventions/ValidHookNameStandard.xml +0 -35
  194. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/NamingConventions/ValidPostTypeSlugStandard.xml +0 -121
  195. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/PHP/IniSetStandard.xml +0 -40
  196. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/PHP/StrictInArrayStandard.xml +0 -53
  197. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/PHP/YodaConditionsStandard.xml +0 -27
  198. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/Security/SafeRedirectStandard.xml +0 -23
  199. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/CapabilitiesStandard.xml +0 -69
  200. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/CapitalPDangitStandard.xml +0 -43
  201. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/ClassNameCaseStandard.xml +0 -23
  202. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/CronIntervalStandard.xml +0 -45
  203. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/DeprecatedClassesStandard.xml +0 -23
  204. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/DeprecatedFunctionsStandard.xml +0 -23
  205. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/DeprecatedParameterValuesStandard.xml +0 -23
  206. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/DeprecatedParametersStandard.xml +0 -40
  207. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/EnqueuedResourceParametersStandard.xml +0 -92
  208. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/EnqueuedResourcesStandard.xml +0 -57
  209. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/PostsPerPageStandard.xml +0 -73
  210. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WhiteSpace/CastStructureSpacingStandard.xml +0 -27
  211. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WhiteSpace/ControlStructureSpacingStandard.xml +0 -150
  212. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WhiteSpace/ObjectOperatorSpacingStandard.xml +0 -19
  213. package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WhiteSpace/OperatorSpacingStandard.xml +0 -61
  214. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/ArrayWalkingFunctionsHelper.php +0 -108
  215. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/ConstantsHelper.php +0 -135
  216. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/ContextHelper.php +0 -394
  217. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/DeprecationHelper.php +0 -84
  218. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/EscapingFunctionsTrait.php +0 -256
  219. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/FormattingFunctionsHelper.php +0 -60
  220. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/IsUnitTestTrait.php +0 -238
  221. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/ListHelper.php +0 -101
  222. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/MinimumWPVersionTrait.php +0 -159
  223. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/PrintingFunctionsTrait.php +0 -122
  224. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/RulesetPropertyHelper.php +0 -73
  225. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/SanitizationHelperTrait.php +0 -418
  226. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/SnakeCaseHelper.php +0 -60
  227. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/UnslashingFunctionsHelper.php +0 -59
  228. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/ValidationHelper.php +0 -349
  229. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/VariableHelper.php +0 -262
  230. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/WPDBTrait.php +0 -115
  231. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/WPGlobalVariablesHelper.php +0 -312
  232. package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/WPHookHelper.php +0 -113
  233. package/vendor/wp-coding-standards/wpcs/WordPress/Sniff.php +0 -72
  234. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Arrays/ArrayDeclarationSpacingSniff.php +0 -252
  235. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Arrays/ArrayIndentationSniff.php +0 -550
  236. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Arrays/ArrayKeySpacingRestrictionsSniff.php +0 -174
  237. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Arrays/MultipleStatementAlignmentSniff.php +0 -583
  238. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/CodeAnalysis/AssignmentInTernaryConditionSniff.php +0 -173
  239. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/CodeAnalysis/EscapedNotTranslatedSniff.php +0 -89
  240. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/DirectDatabaseQuerySniff.php +0 -301
  241. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/PreparedSQLPlaceholdersSniff.php +0 -761
  242. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/PreparedSQLSniff.php +0 -242
  243. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/RestrictedClassesSniff.php +0 -57
  244. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/RestrictedFunctionsSniff.php +0 -63
  245. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/SlowDBQuerySniff.php +0 -58
  246. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DateTime/CurrentTimeTimestampSniff.php +0 -168
  247. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DateTime/RestrictedFunctionsSniff.php +0 -59
  248. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Files/FileNameSniff.php +0 -313
  249. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/PrefixAllGlobalsSniff.php +0 -1297
  250. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/ValidFunctionNameSniff.php +0 -188
  251. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/ValidHookNameSniff.php +0 -277
  252. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/ValidPostTypeSlugSniff.php +0 -230
  253. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/ValidVariableNameSniff.php +0 -289
  254. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/DevelopmentFunctionsSniff.php +0 -63
  255. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/DiscouragedPHPFunctionsSniff.php +0 -100
  256. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/DontExtractSniff.php +0 -52
  257. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/IniSetSniff.php +0 -193
  258. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/NoSilencedErrorsSniff.php +0 -245
  259. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/POSIXFunctionsSniff.php +0 -73
  260. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/PregQuoteDelimiterSniff.php +0 -70
  261. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/RestrictedPHPFunctionsSniff.php +0 -45
  262. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/StrictInArraySniff.php +0 -122
  263. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/TypeCastsSniff.php +0 -90
  264. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/YodaConditionsSniff.php +0 -124
  265. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Security/EscapeOutputSniff.php +0 -903
  266. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Security/NonceVerificationSniff.php +0 -422
  267. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Security/PluginMenuSlugSniff.php +0 -126
  268. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Security/SafeRedirectSniff.php +0 -45
  269. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Security/ValidatedSanitizedInputSniff.php +0 -244
  270. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Utils/I18nTextDomainFixerSniff.php +0 -862
  271. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/AlternativeFunctionsSniff.php +0 -371
  272. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/CapabilitiesSniff.php +0 -478
  273. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/CapitalPDangitSniff.php +0 -315
  274. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/ClassNameCaseSniff.php +0 -897
  275. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/CronIntervalSniff.php +0 -321
  276. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DeprecatedClassesSniff.php +0 -152
  277. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DeprecatedFunctionsSniff.php +0 -1708
  278. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DeprecatedParameterValuesSniff.php +0 -291
  279. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DeprecatedParametersSniff.php +0 -509
  280. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DiscouragedConstantsSniff.php +0 -160
  281. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DiscouragedFunctionsSniff.php +0 -54
  282. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/EnqueuedResourceParametersSniff.php +0 -241
  283. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/EnqueuedResourcesSniff.php +0 -108
  284. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/GlobalVariablesOverrideSniff.php +0 -436
  285. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/I18nSniff.php +0 -977
  286. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/PostsPerPageSniff.php +0 -102
  287. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WhiteSpace/CastStructureSpacingSniff.php +0 -59
  288. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WhiteSpace/ControlStructureSpacingSniff.php +0 -486
  289. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php +0 -63
  290. package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WhiteSpace/OperatorSpacingSniff.php +0 -60
  291. package/vendor/wp-coding-standards/wpcs/WordPress/ruleset.xml +0 -13
  292. package/vendor/wp-coding-standards/wpcs/WordPress-Core/ruleset.xml +0 -948
  293. package/vendor/wp-coding-standards/wpcs/WordPress-Docs/ruleset.xml +0 -109
  294. package/vendor/wp-coding-standards/wpcs/WordPress-Extra/ruleset.xml +0 -199
  295. package/vendor/wp-coding-standards/wpcs/composer.json +0 -88
  296. package/vendor/wp-coding-standards/wpcs/phpcs.xml.dist.sample +0 -153
@@ -1,422 +0,0 @@
1
- <?php
2
- /**
3
- * WordPress Coding Standard.
4
- *
5
- * @package WPCS\WordPressCodingStandards
6
- * @link https://github.com/WordPress/WordPress-Coding-Standards
7
- * @license https://opensource.org/licenses/MIT MIT
8
- */
9
-
10
- namespace WordPressCS\WordPress\Sniffs\Security;
11
-
12
- use PHPCSUtils\Tokens\Collections;
13
- use PHPCSUtils\Utils\Conditions;
14
- use PHPCSUtils\Utils\Context;
15
- use PHPCSUtils\Utils\Lists;
16
- use PHPCSUtils\Utils\MessageHelper;
17
- use PHPCSUtils\Utils\Scopes;
18
- use WordPressCS\WordPress\Helpers\ContextHelper;
19
- use WordPressCS\WordPress\Helpers\RulesetPropertyHelper;
20
- use WordPressCS\WordPress\Helpers\SanitizationHelperTrait;
21
- use WordPressCS\WordPress\Helpers\UnslashingFunctionsHelper;
22
- use WordPressCS\WordPress\Helpers\VariableHelper;
23
- use WordPressCS\WordPress\Sniff;
24
-
25
- /**
26
- * Checks that nonce verification accompanies form processing.
27
- *
28
- * @link https://developer.wordpress.org/plugins/security/nonces/ Nonces on Plugin Developer Handbook
29
- *
30
- * @since 0.5.0
31
- * @since 0.13.0 Class name changed: this class is now namespaced.
32
- * @since 1.0.0 This sniff has been moved from the `CSRF` category to the `Security` category.
33
- * @since 3.0.0 This sniff has received significant updates to its logic and structure.
34
- *
35
- * @uses \WordPressCS\WordPress\Helpers\SanitizationHelperTrait::$customSanitizingFunctions
36
- * @uses \WordPressCS\WordPress\Helpers\SanitizationHelperTrait::$customUnslashingSanitizingFunctions
37
- */
38
- class NonceVerificationSniff extends Sniff {
39
-
40
- use SanitizationHelperTrait;
41
-
42
- /**
43
- * Superglobals to notify about when not accompanied by an nonce check.
44
- *
45
- * A value of `true` results in an error. A value of `false` in a warning.
46
- *
47
- * @since 0.12.0
48
- *
49
- * @var array
50
- */
51
- protected $superglobals = array(
52
- '$_POST' => true,
53
- '$_FILES' => true,
54
- '$_GET' => false,
55
- '$_REQUEST' => false,
56
- );
57
-
58
- /**
59
- * Custom list of functions which verify nonces.
60
- *
61
- * @since 0.5.0
62
- *
63
- * @var string[]
64
- */
65
- public $customNonceVerificationFunctions = array();
66
-
67
- /**
68
- * List of the functions which verify nonces.
69
- *
70
- * @since 0.5.0
71
- * @since 0.11.0 Changed from public static to protected non-static.
72
- * @since 3.0.0 - Moved from the generic `Sniff` class to this class.
73
- * - Visibility changed from `protected` to `private.
74
- *
75
- * @var array
76
- */
77
- private $nonceVerificationFunctions = array(
78
- 'wp_verify_nonce' => true,
79
- 'check_admin_referer' => true,
80
- 'check_ajax_referer' => true,
81
- );
82
-
83
- /**
84
- * Cache of previously added custom functions.
85
- *
86
- * Prevents having to do the same merges over and over again.
87
- *
88
- * @since 0.5.0
89
- * @since 0.11.0 - Changed from public static to protected non-static.
90
- * - Changed the format from simple bool to array.
91
- * @since 3.0.0 - Property rename from `$addedCustomFunctions` to `$addedCustomNonceFunctions`.
92
- * - Visibility changed from `protected` to `private.
93
- * - Format changed from a multi-dimensional array to a single-dimensional array.
94
- *
95
- * @var array
96
- */
97
- private $addedCustomNonceFunctions = array();
98
-
99
- /**
100
- * Information on the all scopes that were checked to find a nonce verification in a particular file.
101
- *
102
- * The array will be in the following format:
103
- * ```
104
- * array(
105
- * 'file' => (string) The name of the file.
106
- * 'cache' => (array) array(
107
- * # => array( The key is the token pointer to the "start" position.
108
- * 'end' => (int) The token pointer to the "end" position.
109
- * 'nonce' => (int|bool) The token pointer where n nonce check
110
- * was found, or false if none was found.
111
- * )
112
- * )
113
- * )
114
- * ```
115
- *
116
- * @since 3.0.0
117
- *
118
- * @var array<string, mixed>
119
- */
120
- private $cached_results;
121
-
122
- /**
123
- * Returns an array of tokens this test wants to listen for.
124
- *
125
- * @return array
126
- */
127
- public function register() {
128
- $targets = array( \T_VARIABLE => \T_VARIABLE );
129
- $targets += Collections::listOpenTokensBC(); // We need to skip over lists.
130
-
131
- return $targets;
132
- }
133
-
134
- /**
135
- * Processes this test, when one of its tokens is encountered.
136
- *
137
- * @param int $stackPtr The position of the current token in the stack.
138
- *
139
- * @return int|void Integer stack pointer to skip forward or void to continue
140
- * normal file processing.
141
- */
142
- public function process_token( $stackPtr ) {
143
- // Skip over lists as whatever is in those will always be assignments.
144
- if ( isset( Collections::listOpenTokensBC()[ $this->tokens[ $stackPtr ]['code'] ] ) ) {
145
- $open_close = Lists::getOpenClose( $this->phpcsFile, $stackPtr );
146
- $skip_to = $stackPtr;
147
- if ( false !== $open_close ) {
148
- $skip_to = $open_close['closer'];
149
- }
150
-
151
- return $skip_to;
152
- }
153
-
154
- if ( ! isset( $this->superglobals[ $this->tokens[ $stackPtr ]['content'] ] ) ) {
155
- return;
156
- }
157
-
158
- if ( Scopes::isOOProperty( $this->phpcsFile, $stackPtr ) ) {
159
- // Property with the same name as a superglobal. Not our target.
160
- return;
161
- }
162
-
163
- // Determine the cache keys for this item.
164
- $cache_keys = array(
165
- 'file' => $this->phpcsFile->getFilename(),
166
- 'start' => 0,
167
- 'end' => $stackPtr,
168
- );
169
-
170
- // If we're in a function, only look inside of it.
171
- // This doesn't take arrow functions into account as those are "open".
172
- $functionPtr = Conditions::getLastCondition( $this->phpcsFile, $stackPtr, array( \T_FUNCTION, \T_CLOSURE ) );
173
- if ( false !== $functionPtr ) {
174
- $cache_keys['start'] = $this->tokens[ $functionPtr ]['scope_opener'];
175
- }
176
-
177
- $this->mergeFunctionLists();
178
-
179
- $needs_nonce = $this->needs_nonce_check( $stackPtr, $cache_keys );
180
- if ( false === $needs_nonce ) {
181
- return;
182
- }
183
-
184
- if ( $this->has_nonce_check( $stackPtr, $cache_keys, ( 'after' === $needs_nonce ) ) ) {
185
- return;
186
- }
187
-
188
- // If we're still here, no nonce-verification function was found.
189
- $error_code = 'Missing';
190
- if ( false === $this->superglobals[ $this->tokens[ $stackPtr ]['content'] ] ) {
191
- $error_code = 'Recommended';
192
- }
193
-
194
- MessageHelper::addMessage(
195
- $this->phpcsFile,
196
- 'Processing form data without nonce verification.',
197
- $stackPtr,
198
- $this->superglobals[ $this->tokens[ $stackPtr ]['content'] ],
199
- $error_code
200
- );
201
- }
202
-
203
- /**
204
- * Determine whether or not a nonce check is needed for the current superglobal.
205
- *
206
- * @since 3.0.0
207
- *
208
- * @param int $stackPtr The position of the current token in the stack of tokens.
209
- * @param array $cache_keys The keys for the applicable cache (to potentially set).
210
- *
211
- * @return string|false String "before" or "after" if a nonce check is needed.
212
- * FALSE when no nonce check is needed.
213
- */
214
- protected function needs_nonce_check( $stackPtr, array $cache_keys ) {
215
- $in_nonce_check = ContextHelper::is_in_function_call( $this->phpcsFile, $stackPtr, $this->nonceVerificationFunctions );
216
- if ( false !== $in_nonce_check ) {
217
- // This *is* the nonce check, so bow out, but do store to cache.
218
- // @todo Change to use arg unpacking once PHP < 5.6 has been dropped.
219
- $this->set_cache( $cache_keys['file'], $cache_keys['start'], $cache_keys['end'], $in_nonce_check );
220
- return false;
221
- }
222
-
223
- if ( Context::inUnset( $this->phpcsFile, $stackPtr ) ) {
224
- // Variable is only being unset, no nonce check needed.
225
- return false;
226
- }
227
-
228
- if ( VariableHelper::is_assignment( $this->phpcsFile, $stackPtr, false ) ) {
229
- // Overwriting the value of a superglobal.
230
- return false;
231
- }
232
-
233
- $needs_nonce = 'before';
234
- if ( ContextHelper::is_in_isset_or_empty( $this->phpcsFile, $stackPtr )
235
- || ContextHelper::is_in_type_test( $this->phpcsFile, $stackPtr )
236
- || VariableHelper::is_comparison( $this->phpcsFile, $stackPtr )
237
- || VariableHelper::is_assignment( $this->phpcsFile, $stackPtr, true )
238
- || ContextHelper::is_in_array_comparison( $this->phpcsFile, $stackPtr )
239
- || ContextHelper::is_in_function_call( $this->phpcsFile, $stackPtr, UnslashingFunctionsHelper::get_functions() ) !== false
240
- || $this->is_only_sanitized( $this->phpcsFile, $stackPtr )
241
- ) {
242
- $needs_nonce = 'after';
243
- }
244
-
245
- return $needs_nonce;
246
- }
247
-
248
- /**
249
- * Check if this token has an associated nonce check.
250
- *
251
- * @since 0.5.0
252
- * @since 3.0.0 - Moved from the generic `Sniff` class to this class.
253
- * - Visibility changed from `protected` to `private.
254
- * - New `$cache_keys` parameter.
255
- * - New `$allow_nonce_after` parameter.
256
- *
257
- * @param int $stackPtr The position of the current token in the stack of tokens.
258
- * @param array $cache_keys The keys for the applicable cache.
259
- * @param bool $allow_nonce_after Whether the nonce check _must_ be before the $stackPtr or
260
- * is allowed _after_ the $stackPtr.
261
- *
262
- * @return bool
263
- */
264
- private function has_nonce_check( $stackPtr, array $cache_keys, $allow_nonce_after = false ) {
265
- $start = $cache_keys['start'];
266
- $end = $cache_keys['end'];
267
-
268
- // We allow for certain actions, such as an isset() check to come before the nonce check.
269
- // If this superglobal is inside such a check, look for the nonce after it as well,
270
- // all the way to the end of the scope.
271
- if ( true === $allow_nonce_after ) {
272
- $end = ( 0 === $start ) ? $this->phpcsFile->numTokens : $this->tokens[ $start ]['scope_closer'];
273
- }
274
-
275
- // Check against the cache.
276
- $current_cache = $this->get_cache( $cache_keys['file'], $start );
277
- if ( false !== $current_cache['nonce'] ) {
278
- // If we have already found a nonce check in this scope, we just
279
- // need to check whether it comes before this token. It is OK if the
280
- // check is after the token though, if this was only an isset() check.
281
- return ( true === $allow_nonce_after || $current_cache['nonce'] < $stackPtr );
282
- } elseif ( $end <= $current_cache['end'] ) {
283
- // If not, we can still go ahead and return false if we've already
284
- // checked to the end of the search area.
285
- return false;
286
- }
287
-
288
- $search_start = $start;
289
- if ( $current_cache['end'] > $start ) {
290
- // We haven't checked this far yet, but we can still save work by
291
- // skipping over the part we've already checked.
292
- $search_start = $this->cached_results['cache'][ $start ]['end'];
293
- }
294
-
295
- // Loop through the tokens looking for nonce verification functions.
296
- for ( $i = $search_start; $i < $end; $i++ ) {
297
- // Skip over nested closed scope constructs.
298
- if ( isset( Collections::closedScopes()[ $this->tokens[ $i ]['code'] ] )
299
- || \T_FN === $this->tokens[ $i ]['code']
300
- ) {
301
- if ( isset( $this->tokens[ $i ]['scope_closer'] ) ) {
302
- $i = $this->tokens[ $i ]['scope_closer'];
303
- }
304
- continue;
305
- }
306
-
307
- // If this isn't a function name, skip it.
308
- if ( \T_STRING !== $this->tokens[ $i ]['code'] ) {
309
- continue;
310
- }
311
-
312
- // If this is one of the nonce verification functions, we can bail out.
313
- if ( isset( $this->nonceVerificationFunctions[ $this->tokens[ $i ]['content'] ] ) ) {
314
- /*
315
- * Now, make sure it is a call to a global function.
316
- */
317
- if ( ContextHelper::has_object_operator_before( $this->phpcsFile, $i ) === true ) {
318
- continue;
319
- }
320
-
321
- if ( ContextHelper::is_token_namespaced( $this->phpcsFile, $i ) === true ) {
322
- continue;
323
- }
324
-
325
- $this->set_cache( $cache_keys['file'], $start, $end, $i );
326
- return true;
327
- }
328
- }
329
-
330
- // We're still here, so no luck.
331
- $this->set_cache( $cache_keys['file'], $start, $end, false );
332
-
333
- return false;
334
- }
335
-
336
- /**
337
- * Helper function to retrieve results from the cache.
338
- *
339
- * @since 3.0.0
340
- *
341
- * @param string $filename The name of the current file.
342
- * @param int $start The stack pointer searches started from.
343
- *
344
- * @return array<string, mixed>
345
- */
346
- private function get_cache( $filename, $start ) {
347
- if ( is_array( $this->cached_results )
348
- && $filename === $this->cached_results['file']
349
- && isset( $this->cached_results['cache'][ $start ] )
350
- ) {
351
- return $this->cached_results['cache'][ $start ];
352
- }
353
-
354
- return array(
355
- 'end' => 0,
356
- 'nonce' => false,
357
- );
358
- }
359
-
360
- /**
361
- * Helper function to store results to the cache.
362
- *
363
- * @since 3.0.0
364
- *
365
- * @param string $filename The name of the current file.
366
- * @param int $start The stack pointer searches started from.
367
- * @param int $end The stack pointer searched stopped at.
368
- * @param int|bool $nonce Stack pointer to the nonce verification function call or false if none was found.
369
- *
370
- * @return void
371
- */
372
- private function set_cache( $filename, $start, $end, $nonce ) {
373
- if ( is_array( $this->cached_results ) === false
374
- || $filename !== $this->cached_results['file']
375
- ) {
376
- $this->cached_results = array(
377
- 'file' => $filename,
378
- 'cache' => array(
379
- $start => array(
380
- 'end' => $end,
381
- 'nonce' => $nonce,
382
- ),
383
- ),
384
- );
385
- return;
386
- }
387
-
388
- // Okay, so we know the current cache is for the current file. Check if we've seen this start pointer before.
389
- if ( isset( $this->cached_results['cache'][ $start ] ) === false ) {
390
- $this->cached_results['cache'][ $start ] = array(
391
- 'end' => $end,
392
- 'nonce' => $nonce,
393
- );
394
- return;
395
- }
396
-
397
- // Update existing entry.
398
- if ( $end > $this->cached_results['cache'][ $start ]['end'] ) {
399
- $this->cached_results['cache'][ $start ]['end'] = $end;
400
- }
401
-
402
- $this->cached_results['cache'][ $start ]['nonce'] = $nonce;
403
- }
404
-
405
- /**
406
- * Merge custom functions provided via a custom ruleset with the defaults, if we haven't already.
407
- *
408
- * @since 0.11.0 Split out from the `process()` method.
409
- *
410
- * @return void
411
- */
412
- protected function mergeFunctionLists() {
413
- if ( $this->customNonceVerificationFunctions !== $this->addedCustomNonceFunctions ) {
414
- $this->nonceVerificationFunctions = RulesetPropertyHelper::merge_custom_array(
415
- $this->customNonceVerificationFunctions,
416
- $this->nonceVerificationFunctions
417
- );
418
-
419
- $this->addedCustomNonceFunctions = $this->customNonceVerificationFunctions;
420
- }
421
- }
422
- }
@@ -1,126 +0,0 @@
1
- <?php
2
- /**
3
- * WordPress Coding Standard.
4
- *
5
- * @package WPCS\WordPressCodingStandards
6
- * @link https://github.com/WordPress/WordPress-Coding-Standards
7
- * @license https://opensource.org/licenses/MIT MIT
8
- */
9
-
10
- namespace WordPressCS\WordPress\Sniffs\Security;
11
-
12
- use PHPCSUtils\Utils\PassedParameters;
13
- use WordPressCS\WordPress\AbstractFunctionParameterSniff;
14
-
15
- /**
16
- * Warn about __FILE__ for page registration.
17
- *
18
- * @link https://vip.wordpress.com/documentation/vip-go/code-review-blockers-warnings-notices/#using-__file__-for-page-registration
19
- *
20
- * @since 0.3.0
21
- * @since 0.11.0 Refactored to extend the new WordPressCS native
22
- * `AbstractFunctionParameterSniff` class.
23
- * @since 0.13.0 Class name changed: this class is now namespaced.
24
- * @since 1.0.0 This sniff has been moved from the `VIP` category to the `Security` category.
25
- */
26
- final class PluginMenuSlugSniff extends AbstractFunctionParameterSniff {
27
-
28
- /**
29
- * The group name for this group of functions.
30
- *
31
- * @since 0.11.0
32
- *
33
- * @var string
34
- */
35
- protected $group_name = 'add_menu_functions';
36
-
37
- /**
38
- * Functions which can be used to add pages to the WP Admin menu.
39
- *
40
- * @since 0.3.0
41
- * @since 0.11.0 Renamed from $add_menu_functions to $target_functions
42
- * and changed visibility to protected.
43
- * @since 3.0.0 The format of the value has changed from a numerically indexed
44
- * array containing parameter positions to an array with the parameter
45
- * position as the index and the parameter name as value.
46
- *
47
- * @var array<string, array<int, string|array>> Key is the name of the functions being targetted.
48
- * Value is an array with parameter positions as the
49
- * keys and parameter names as the values
50
- */
51
- protected $target_functions = array(
52
- 'add_comments_page' => array(
53
- 4 => 'menu_slug',
54
- ),
55
- 'add_dashboard_page' => array(
56
- 4 => 'menu_slug',
57
- ),
58
- 'add_links_page' => array(
59
- 4 => 'menu_slug',
60
- ),
61
- 'add_management_page' => array(
62
- 4 => 'menu_slug',
63
- ),
64
- 'add_media_page' => array(
65
- 4 => 'menu_slug',
66
- ),
67
- 'add_menu_page' => array(
68
- 4 => 'menu_slug',
69
- ),
70
- 'add_object_page' => array(
71
- 4 => 'menu_slug',
72
- ),
73
- 'add_options_page' => array(
74
- 4 => 'menu_slug',
75
- ),
76
- 'add_pages_page' => array(
77
- 4 => 'menu_slug',
78
- ),
79
- 'add_plugins_page' => array(
80
- 4 => 'menu_slug',
81
- ),
82
- 'add_posts_page' => array(
83
- 4 => 'menu_slug',
84
- ),
85
- 'add_submenu_page' => array(
86
- 1 => 'parent_slug',
87
- 5 => 'menu_slug',
88
- ),
89
- 'add_theme_page' => array(
90
- 4 => 'menu_slug',
91
- ),
92
- 'add_users_page' => array(
93
- 4 => 'menu_slug',
94
- ),
95
- 'add_utility_page' => array(
96
- 4 => 'menu_slug',
97
- ),
98
- );
99
-
100
- /**
101
- * Process the parameters of a matched function.
102
- *
103
- * @since 0.11.0
104
- *
105
- * @param int $stackPtr The position of the current token in the stack.
106
- * @param string $group_name The name of the group which was matched.
107
- * @param string $matched_content The token content (function name) which was matched
108
- * in lowercase.
109
- * @param array $parameters Array with information about the parameters.
110
- *
111
- * @return void
112
- */
113
- public function process_parameters( $stackPtr, $group_name, $matched_content, $parameters ) {
114
- foreach ( $this->target_functions[ $matched_content ] as $position => $param_name ) {
115
- $found_param = PassedParameters::getParameterFromStack( $parameters, $position, $param_name );
116
- if ( false === $found_param ) {
117
- continue;
118
- }
119
-
120
- $file_constant = $this->phpcsFile->findNext( \T_FILE, $found_param['start'], ( $found_param['end'] + 1 ) );
121
- if ( false !== $file_constant ) {
122
- $this->phpcsFile->addWarning( 'Using __FILE__ for menu slugs risks exposing filesystem structure.', $file_constant, 'Using__FILE__' );
123
- }
124
- }
125
- }
126
- }
@@ -1,45 +0,0 @@
1
- <?php
2
- /**
3
- * WordPress Coding Standard.
4
- *
5
- * @package WPCS\WordPressCodingStandards
6
- * @link https://github.com/WordPress/WordPress-Coding-Standards
7
- * @license https://opensource.org/licenses/MIT MIT
8
- */
9
-
10
- namespace WordPressCS\WordPress\Sniffs\Security;
11
-
12
- use WordPressCS\WordPress\AbstractFunctionRestrictionsSniff;
13
-
14
- /**
15
- * Encourages use of wp_safe_redirect() to avoid open redirect vulnerabilities.
16
- *
17
- * @since 1.0.0
18
- */
19
- final class SafeRedirectSniff extends AbstractFunctionRestrictionsSniff {
20
-
21
- /**
22
- * Groups of functions to restrict.
23
- *
24
- * Example: groups => array(
25
- * 'lambda' => array(
26
- * 'type' => 'error' | 'warning',
27
- * 'message' => 'Use anonymous functions instead please!',
28
- * 'functions' => array( 'file_get_contents', 'create_function' ),
29
- * )
30
- * )
31
- *
32
- * @return array
33
- */
34
- public function getGroups() {
35
- return array(
36
- 'wp_redirect' => array(
37
- 'type' => 'warning',
38
- 'message' => '%s() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.',
39
- 'functions' => array(
40
- 'wp_redirect',
41
- ),
42
- ),
43
- );
44
- }
45
- }