wp-studio 1.7.8-beta2 → 1.7.8-beta4

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 (312) hide show
  1. package/README.md +54 -1
  2. package/assets/demo.gif +0 -0
  3. package/dist/cli/{_events-BRGCap7g.mjs → _events-C2dFSpKE.mjs} +2 -2
  4. package/dist/cli/{certificate-manager-Dd4zv2_k.mjs → certificate-manager-BMngpL-s.mjs} +12 -4
  5. package/dist/cli/{index-9Oz-0bqF.mjs → index-CkFXAp-n.mjs} +5 -5
  6. package/dist/cli/{index-CT4S2538.mjs → index-odShRBgM.mjs} +171 -117
  7. package/dist/cli/{login-D4E3GoXe.mjs → login-BeT1uKwW.mjs} +2 -2
  8. package/dist/cli/{logout-DE-RoshK.mjs → logout-BFQJBJD0.mjs} +2 -2
  9. package/dist/cli/main.mjs +3 -2
  10. package/dist/cli/proxy-daemon.mjs +1 -1
  11. package/dist/cli/{resume-DLoXmzNG.mjs → resume-D_K0QEl5.mjs} +1 -1
  12. package/dist/cli/{set-B8YYUENH.mjs → set-C5l116L7.mjs} +2 -2
  13. package/dist/cli/{set-B0L-QiXT.mjs → set-DzcR6sFr.mjs} +2 -2
  14. package/dist/cli/{status-DEOAA0yx.mjs → status-CbXnAskz.mjs} +1 -1
  15. package/dist/cli/{wp-CobSX6C6.mjs → wp-CUKyZNTP.mjs} +1 -1
  16. package/dist/cli/wp-files/latest/available-site-translations.json +1 -1
  17. package/dist/cli/wp-files/latest/languages/admin-de_DE.l10n.php +2 -2
  18. package/dist/cli/wp-files/latest/languages/admin-network-de_DE.l10n.php +1 -1
  19. package/dist/cli/wp-files/latest/languages/admin-pl_PL.l10n.php +2 -2
  20. package/dist/cli/wp-files/latest/languages/de_DE-0cc31205f20441b3df1d1b46100f6b8d.json +1 -1
  21. package/dist/cli/wp-files/latest/languages/de_DE-0ce75ad2f775d1cac9696967d484808c.json +1 -1
  22. package/dist/cli/wp-files/latest/languages/de_DE-0eebe503220d4a00341eb011b92769b4.json +1 -1
  23. package/dist/cli/wp-files/latest/languages/de_DE-17179a5f2930647c89151e365f843b6e.json +1 -1
  24. package/dist/cli/wp-files/latest/languages/de_DE-1780a2033cf98d69ce13c2e5c8510004.json +1 -1
  25. package/dist/cli/wp-files/latest/languages/de_DE-1a0cd6a7128913b15c1a10dd68951869.json +1 -1
  26. package/dist/cli/wp-files/latest/languages/de_DE-1bba9045bb07c89671c88a3f328548e8.json +1 -1
  27. package/dist/cli/wp-files/latest/languages/de_DE-1c4303f02ff93b290e9faad991eeb06f.json +1 -1
  28. package/dist/cli/wp-files/latest/languages/de_DE-1d17475f620f63a92e2c5d2681c51ee8.json +1 -1
  29. package/dist/cli/wp-files/latest/languages/de_DE-2617ce121227a46077ede6c69aa9fcb5.json +1 -1
  30. package/dist/cli/wp-files/latest/languages/de_DE-270d72d1cff17227d37f3244759cbecb.json +1 -1
  31. package/dist/cli/wp-files/latest/languages/de_DE-28b3c3d595952907e08d98287077426c.json +1 -1
  32. package/dist/cli/wp-files/latest/languages/de_DE-2b390f85a3048c5b4255fb45960b6514.json +1 -1
  33. package/dist/cli/wp-files/latest/languages/de_DE-2c5d274ea625dd91556554ad82901529.json +1 -1
  34. package/dist/cli/wp-files/latest/languages/de_DE-320f4ad9792aaa6dedb1e71cbdf85d57.json +1 -1
  35. package/dist/cli/wp-files/latest/languages/de_DE-440127dd25bde48a531ded36f33e927b.json +1 -1
  36. package/dist/cli/wp-files/latest/languages/de_DE-49c6d4acf36cf3aca9f0b2a77617304f.json +1 -1
  37. package/dist/cli/wp-files/latest/languages/de_DE-4a38fe1c0c45989e44682ba6109d9f46.json +1 -1
  38. package/dist/cli/wp-files/latest/languages/de_DE-4bfa11da57ff2600004bb500368247f4.json +1 -1
  39. package/dist/cli/wp-files/latest/languages/de_DE-50278328b502f4eb3f2b8b7ab49324a1.json +1 -1
  40. package/dist/cli/wp-files/latest/languages/de_DE-5251f7623766a714c8207c7edb938628.json +1 -1
  41. package/dist/cli/wp-files/latest/languages/de_DE-529362903a5a05b34b06b5e793fb4cf8.json +1 -1
  42. package/dist/cli/wp-files/latest/languages/de_DE-569e85ef168299eb8c8f24d8ef8c8a78.json +1 -1
  43. package/dist/cli/wp-files/latest/languages/de_DE-6025add6bde16aaeb12787d250f9b414.json +1 -1
  44. package/dist/cli/wp-files/latest/languages/de_DE-60d06fac6f98e8e8f0ec5a945738b660.json +1 -1
  45. package/dist/cli/wp-files/latest/languages/de_DE-68f2cec7514bf8563c723a4d675fcfe6.json +1 -1
  46. package/dist/cli/wp-files/latest/languages/de_DE-7233008897033de5ee0d14f86a42a65a.json +1 -1
  47. package/dist/cli/wp-files/latest/languages/de_DE-7289286ed59e90a8f36ae797df62220b.json +1 -1
  48. package/dist/cli/wp-files/latest/languages/de_DE-7436b7ee9e4f11ac0d618d8cc886eb66.json +1 -1
  49. package/dist/cli/wp-files/latest/languages/de_DE-77fdfadaf2e1ca3a027d1956b910bc50.json +1 -1
  50. package/dist/cli/wp-files/latest/languages/de_DE-7b74c8457eaa7fcc50db41b431f8a003.json +1 -1
  51. package/dist/cli/wp-files/latest/languages/de_DE-7c90cd4398ee2d9d3628c387a87a70e5.json +1 -1
  52. package/dist/cli/wp-files/latest/languages/de_DE-7d5ca435e60d92f024d46c9257aaa0f7.json +1 -1
  53. package/dist/cli/wp-files/latest/languages/de_DE-7f13c36c641b114bf18cd0bcc9ecc7e0.json +1 -1
  54. package/dist/cli/wp-files/latest/languages/de_DE-803bf1ce2131e13efc590c1bc47851fc.json +1 -1
  55. package/dist/cli/wp-files/latest/languages/de_DE-81c889563f09dd13de1701135dc62941.json +1 -1
  56. package/dist/cli/wp-files/latest/languages/de_DE-81d6f084cb273e02e15b01bd9ece87f7.json +1 -1
  57. package/dist/cli/wp-files/latest/languages/de_DE-8240df461220d1d3a028a9a4c5652a5b.json +1 -1
  58. package/dist/cli/wp-files/latest/languages/de_DE-8860e58c20c6a2ab5876a0f07be43bd9.json +1 -1
  59. package/dist/cli/wp-files/latest/languages/de_DE-93882e8f9976382d7f724ac595ed7151.json +1 -1
  60. package/dist/cli/wp-files/latest/languages/de_DE-947c76bb5095da30e16668eec15406b2.json +1 -1
  61. package/dist/cli/wp-files/latest/languages/de_DE-9b256ea9cd54df92095e04c76758ceb0.json +1 -1
  62. package/dist/cli/wp-files/latest/languages/de_DE-9c3519f4870fac83dc0dbf18cb6bd4c4.json +1 -1
  63. package/dist/cli/wp-files/latest/languages/de_DE-9d47a87c240c1d10701cd6a02b28aa1b.json +1 -1
  64. package/dist/cli/wp-files/latest/languages/de_DE-a25d1cc7bf7ca0b4e114f6bea64943f4.json +1 -1
  65. package/dist/cli/wp-files/latest/languages/de_DE-a2796e57f680e25d84c4b352ee6d7280.json +1 -1
  66. package/dist/cli/wp-files/latest/languages/de_DE-a9dc201dcd011fe71849743133052619.json +1 -1
  67. package/dist/cli/wp-files/latest/languages/de_DE-aabfce98c410957228848dc581e3c420.json +1 -1
  68. package/dist/cli/wp-files/latest/languages/de_DE-ac23eee47530ac63a1178c827db28087.json +1 -1
  69. package/dist/cli/wp-files/latest/languages/de_DE-bf0f094965d3d4a95b47babcb35fc136.json +1 -1
  70. package/dist/cli/wp-files/latest/languages/de_DE-bf23b24175490c2e46aaf92ff6a0c70f.json +1 -1
  71. package/dist/cli/wp-files/latest/languages/de_DE-c31d5f185753910c14afebc6deb2ce24.json +1 -1
  72. package/dist/cli/wp-files/latest/languages/de_DE-ca28138671823450e87dfd354f7afc6b.json +1 -1
  73. package/dist/cli/wp-files/latest/languages/de_DE-daeb084aab42199d26393a56c3465bc0.json +1 -1
  74. package/dist/cli/wp-files/latest/languages/de_DE-e2791ba830489d23043be8650a22a22b.json +1 -1
  75. package/dist/cli/wp-files/latest/languages/de_DE-e2e4c4b80f3adf2c70b431bfdb1b4872.json +1 -1
  76. package/dist/cli/wp-files/latest/languages/de_DE-e53526243551a102928735ec9eed4edf.json +1 -1
  77. package/dist/cli/wp-files/latest/languages/de_DE-f575f481034e90e21d832e415fd95fcf.json +1 -1
  78. package/dist/cli/wp-files/latest/languages/de_DE-f70806bf0c7d62f2908bd5a1c3fe4efc.json +1 -1
  79. package/dist/cli/wp-files/latest/languages/de_DE-f8f49d9fc4a9cf7d78ec99285417bd9c.json +1 -1
  80. package/dist/cli/wp-files/latest/languages/de_DE.l10n.php +27 -27
  81. package/dist/cli/wp-files/latest/languages/pl_PL-0cc31205f20441b3df1d1b46100f6b8d.json +1 -1
  82. package/dist/cli/wp-files/latest/languages/pl_PL-0eebe503220d4a00341eb011b92769b4.json +1 -1
  83. package/dist/cli/wp-files/latest/languages/pl_PL-1c4303f02ff93b290e9faad991eeb06f.json +1 -1
  84. package/dist/cli/wp-files/latest/languages/pl_PL-1d17475f620f63a92e2c5d2681c51ee8.json +1 -1
  85. package/dist/cli/wp-files/latest/languages/pl_PL-2b390f85a3048c5b4255fb45960b6514.json +1 -1
  86. package/dist/cli/wp-files/latest/languages/pl_PL-4a38fe1c0c45989e44682ba6109d9f46.json +1 -1
  87. package/dist/cli/wp-files/latest/languages/pl_PL-4bfa11da57ff2600004bb500368247f4.json +1 -1
  88. package/dist/cli/wp-files/latest/languages/pl_PL-50278328b502f4eb3f2b8b7ab49324a1.json +1 -1
  89. package/dist/cli/wp-files/latest/languages/pl_PL-5251f7623766a714c8207c7edb938628.json +1 -1
  90. package/dist/cli/wp-files/latest/languages/pl_PL-529362903a5a05b34b06b5e793fb4cf8.json +1 -1
  91. package/dist/cli/wp-files/latest/languages/pl_PL-569e85ef168299eb8c8f24d8ef8c8a78.json +1 -1
  92. package/dist/cli/wp-files/latest/languages/pl_PL-6025add6bde16aaeb12787d250f9b414.json +1 -1
  93. package/dist/cli/wp-files/latest/languages/pl_PL-7436b7ee9e4f11ac0d618d8cc886eb66.json +1 -1
  94. package/dist/cli/wp-files/latest/languages/pl_PL-77fdfadaf2e1ca3a027d1956b910bc50.json +1 -1
  95. package/dist/cli/wp-files/latest/languages/pl_PL-7b74c8457eaa7fcc50db41b431f8a003.json +1 -1
  96. package/dist/cli/wp-files/latest/languages/pl_PL-7d5ca435e60d92f024d46c9257aaa0f7.json +1 -1
  97. package/dist/cli/wp-files/latest/languages/pl_PL-81d6f084cb273e02e15b01bd9ece87f7.json +1 -1
  98. package/dist/cli/wp-files/latest/languages/pl_PL-8240df461220d1d3a028a9a4c5652a5b.json +1 -1
  99. package/dist/cli/wp-files/latest/languages/pl_PL-9b256ea9cd54df92095e04c76758ceb0.json +1 -1
  100. package/dist/cli/wp-files/latest/languages/pl_PL-9c3519f4870fac83dc0dbf18cb6bd4c4.json +1 -1
  101. package/dist/cli/wp-files/latest/languages/pl_PL-9d47a87c240c1d10701cd6a02b28aa1b.json +1 -1
  102. package/dist/cli/wp-files/latest/languages/pl_PL-a9dc201dcd011fe71849743133052619.json +1 -1
  103. package/dist/cli/wp-files/latest/languages/pl_PL-aabfce98c410957228848dc581e3c420.json +1 -1
  104. package/dist/cli/wp-files/latest/languages/pl_PL-ca28138671823450e87dfd354f7afc6b.json +1 -1
  105. package/dist/cli/wp-files/latest/languages/pl_PL-e2e4c4b80f3adf2c70b431bfdb1b4872.json +1 -1
  106. package/dist/cli/wp-files/sqlite-command/composer.json +4 -3
  107. package/dist/cli/wp-files/sqlite-command/composer.lock +132 -80
  108. package/dist/cli/wp-files/sqlite-command/vendor/autoload.php +1 -1
  109. package/dist/cli/wp-files/sqlite-command/vendor/composer/autoload_classmap.php +58 -70
  110. package/dist/cli/wp-files/sqlite-command/vendor/composer/autoload_namespaces.php +1 -0
  111. package/dist/cli/wp-files/sqlite-command/vendor/composer/autoload_psr4.php +1 -1
  112. package/dist/cli/wp-files/sqlite-command/vendor/composer/autoload_real.php +5 -5
  113. package/dist/cli/wp-files/sqlite-command/vendor/composer/autoload_static.php +78 -80
  114. package/dist/cli/wp-files/sqlite-command/vendor/composer/installed.json +104 -49
  115. package/dist/cli/wp-files/sqlite-command/vendor/composer/installed.php +29 -16
  116. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/CHANGELOG.md +103 -0
  117. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Comparator/Comparator.php +62 -0
  118. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Comparator/DateComparator.php +50 -0
  119. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Comparator/NumberComparator.php +78 -0
  120. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Exception/AccessDeniedException.php +19 -0
  121. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Exception/DirectoryNotFoundException.php +19 -0
  122. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Finder.php +851 -0
  123. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Gitignore.php +91 -0
  124. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Glob.php +116 -0
  125. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/CustomFilterIterator.php +61 -0
  126. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php +58 -0
  127. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php +48 -0
  128. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +110 -0
  129. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php +51 -0
  130. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php +58 -0
  131. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/FilenameFilterIterator.php +45 -0
  132. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/LazyIterator.php +32 -0
  133. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +107 -0
  134. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/PathFilterIterator.php +56 -0
  135. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +134 -0
  136. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php +57 -0
  137. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/SortableIterator.php +115 -0
  138. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php +173 -0
  139. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/LICENSE +19 -0
  140. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/README.md +14 -0
  141. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/SplFileInfo.php +80 -0
  142. package/dist/cli/wp-files/sqlite-command/vendor/symfony/finder/composer.json +31 -0
  143. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/mustache/.gitattributes +8 -0
  144. package/dist/cli/wp-files/sqlite-command/vendor/{mustache → wp-cli}/mustache/LICENSE +1 -1
  145. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/mustache/README.md +76 -0
  146. package/dist/cli/wp-files/sqlite-command/vendor/{mustache → wp-cli}/mustache/composer.json +6 -16
  147. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/mustache/src/Mustache/Autoloader.php +88 -0
  148. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Cache/AbstractCache.php +7 -15
  149. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Cache/FilesystemCache.php +15 -20
  150. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Cache/NoopCache.php +4 -8
  151. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Cache.php +7 -10
  152. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Compiler.php +87 -144
  153. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Context.php +19 -23
  154. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Engine.php +134 -251
  155. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Exception/InvalidArgumentException.php +2 -6
  156. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Exception/LogicException.php +2 -6
  157. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Exception/RuntimeException.php +2 -6
  158. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Exception/SyntaxException.php +8 -7
  159. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Exception/UnknownFilterException.php +7 -7
  160. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Exception/UnknownHelperException.php +7 -7
  161. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Exception/UnknownTemplateException.php +7 -7
  162. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Exception.php +5 -4
  163. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/HelperCollection.php +17 -22
  164. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/LambdaHelper.php +8 -28
  165. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Loader/ArrayLoader.php +9 -12
  166. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Loader/CascadingLoader.php +15 -18
  167. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Loader/FilesystemLoader.php +18 -24
  168. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Loader/InlineLoader.php +13 -19
  169. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Loader/MutableLoader.php +7 -4
  170. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Loader/ProductionFilesystemLoader.php +16 -23
  171. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Loader/StringLoader.php +4 -8
  172. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Loader.php +7 -8
  173. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Logger/AbstractLogger.php +26 -22
  174. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Logger/StreamLogger.php +20 -25
  175. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Logger.php +37 -13
  176. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Parser.php +93 -100
  177. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Source/FilesystemSource.php +7 -11
  178. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Source.php +5 -4
  179. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Template.php +32 -39
  180. package/dist/cli/wp-files/sqlite-command/vendor/{mustache/mustache/src → wp-cli/mustache/src/Mustache}/Tokenizer.php +29 -33
  181. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/.actrc +3 -0
  182. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/.gitattributes +6 -0
  183. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/.mailmap +234 -0
  184. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/README.md +4 -4
  185. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/VERSION +1 -1
  186. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/CHANGELOG.md +0 -65
  187. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/README.md +1 -2
  188. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/certificates/cacert.pem +372 -315
  189. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/certificates/cacert.pem.sha256 +1 -1
  190. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/composer.json +5 -7
  191. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/src/Iri.php +18 -20
  192. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/src/Requests.php +1 -1
  193. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/src/Response/Headers.php +1 -1
  194. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/src/Transport/Curl.php +1 -5
  195. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/src/Transport/Fsockopen.php +0 -2
  196. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/src/Utility/CaseInsensitiveDictionary.php +0 -12
  197. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/src/Utility/FilteredIterator.php +2 -2
  198. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/composer.json +13 -30
  199. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/dependencies.yml +6 -0
  200. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/manifest.json +1 -1
  201. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Autoloader.php +2 -4
  202. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/AutoloaderStep.php +1 -10
  203. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/CheckRoot.php +2 -20
  204. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/DefineProtectedCommands.php +3 -3
  205. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/IncludeFrameworkAutoloader.php +4 -3
  206. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/IncludeRequestsAutoloader.php +3 -4
  207. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/InitializeContexts.php +0 -3
  208. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/InitializeLogger.php +1 -1
  209. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/LaunchRunner.php +3 -6
  210. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/{RegisterShutdownHandler.php → LoadDispatcher.php} +4 -6
  211. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/LoadRequiredCommand.php +5 -9
  212. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/LoadUtilityFunctions.php +0 -1
  213. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Completions.php +6 -149
  214. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Configurator.php +49 -202
  215. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Context/Admin.php +21 -113
  216. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Context/Auto.php +1 -1
  217. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Context/Cli.php +1 -0
  218. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Context/Frontend.php +1 -0
  219. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/CommandFactory.php +26 -63
  220. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/CompositeCommand.php +9 -19
  221. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Dispatcher/Subcommand.php +19 -284
  222. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/DocParser.php +5 -17
  223. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Exception/NonExistentKeyException.php +3 -6
  224. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Extractor.php +54 -30
  225. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Fetchers/Base.php +3 -7
  226. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Fetchers/Comment.php +2 -4
  227. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Fetchers/Post.php +3 -8
  228. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Fetchers/Signup.php +1 -3
  229. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Fetchers/Site.php +4 -12
  230. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Fetchers/User.php +1 -3
  231. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/FileCache.php +33 -135
  232. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Formatter.php +57 -221
  233. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Inflector.php +4 -4
  234. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Iterators/CSV.php +1 -6
  235. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Iterators/Query.php +1 -3
  236. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Iterators/Table.php +1 -7
  237. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Iterators/Transform.php +0 -2
  238. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Loggers/Base.php +0 -15
  239. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Loggers/Quiet.php +3 -2
  240. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Loggers/Regular.php +3 -4
  241. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/NoOp.php +0 -4
  242. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Process.php +7 -40
  243. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/RequestsLibrary.php +1 -4
  244. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php +234 -795
  245. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/SynopsisParser.php +26 -116
  246. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/SynopsisValidator.php +1 -1
  247. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Traverser/RecursiveDataStructureTraverser.php +26 -69
  248. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/UpgraderSkin.php +1 -1
  249. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/WpHttpCacheManager.php +5 -67
  250. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/WpOrgApi.php +3 -3
  251. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/boot-fs.php +2 -2
  252. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/bootstrap.php +2 -5
  253. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/class-wp-cli.php +62 -311
  254. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/commands/src/CLI_Alias_Command.php +60 -292
  255. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/commands/src/CLI_Cache_Command.php +1 -1
  256. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/commands/src/CLI_Command.php +31 -191
  257. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/commands/src/Help_Command.php +35 -177
  258. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/config-spec.php +4 -28
  259. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/utils-wp.php +47 -81
  260. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/utils.php +200 -512
  261. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/wp-cli.php +2 -2
  262. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/wp-settings-cli.php +465 -0
  263. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/templates/man-params.mustache +4 -0
  264. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/templates/man.mustache +0 -8
  265. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/ArgValidationTest.php +74 -0
  266. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/CommandFactoryTest.php +420 -0
  267. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/ConfiguratorTest.php +87 -0
  268. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/DocParserTest.php +213 -0
  269. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/ExtractorTest.php +293 -0
  270. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/FileCacheTest.php +207 -0
  271. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/HelpTest.php +119 -0
  272. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/InflectorTest.php +37 -0
  273. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/LoggingTest.php +124 -0
  274. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/ProcessTest.php +30 -0
  275. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/SynopsisParserTest.php +194 -0
  276. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/UtilsTest.php +1092 -0
  277. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/WPCLITest.php +16 -0
  278. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/WP_CLI/Iterators/CSVTest.php +109 -0
  279. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/WP_CLI/Traversers/RecursiveDataStructureTraverserTest.php +151 -0
  280. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/WP_CLI/WpOrgApiTest.php +166 -0
  281. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/WpVersionCompareTest.php +78 -0
  282. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/bootstrap.php +17 -0
  283. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/commandfactory-doc_comment-class-win.php +70 -0
  284. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/commandfactory-doc_comment-class.php +70 -0
  285. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/commandfactory-doc_comment-function-win.php +19 -0
  286. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/commandfactory-doc_comment-function.php +19 -0
  287. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/expand_globs/bar.ab2 +0 -0
  288. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/expand_globs/baz.ab1 +0 -0
  289. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/expand_globs/baz.ac1 +0 -0
  290. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/expand_globs/baz.efg2 +0 -0
  291. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/expand_globs/foo.ab1 +0 -0
  292. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/expand_globs/foo.ab2 +0 -0
  293. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/expand_globs/foo.efg1 +0 -0
  294. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/data/expand_globs/foo.efg2 +0 -0
  295. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/tests/mock-requests-transport.php +34 -0
  296. package/dist/cli/wp-files/sqlite-command/version +1 -1
  297. package/package.json +4 -3
  298. package/patches/archiver+7.0.1.patch +14 -0
  299. package/dist/cli/wp-files/sqlite-command/vendor/mustache/mustache/.php-cs-fixer.php +0 -20
  300. package/dist/cli/wp-files/sqlite-command/vendor/mustache/mustache/README.md +0 -94
  301. package/dist/cli/wp-files/sqlite-command/vendor/mustache/mustache/src/RenderedString.php +0 -51
  302. package/dist/cli/wp-files/sqlite-command/vendor/mustache/mustache/src/compat.php +0 -282
  303. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/.typos.toml +0 -14
  304. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/AGENTS.md +0 -121
  305. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/scripts/proxy/proxy.py +0 -5
  306. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/scripts/proxy/start.sh +0 -19
  307. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/bundle/rmccue/requests/scripts/proxy/stop.sh +0 -10
  308. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/Path.php +0 -260
  309. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/php/WP_CLI/ShutdownHandler.php +0 -329
  310. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/schemas/wp-cli-config.json +0 -218
  311. package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/schemas/wp-cli.example.yml +0 -55
  312. /package/dist/cli/wp-files/sqlite-command/vendor/wp-cli/wp-cli/{codecov.yml → tests/data/expand_globs/bar.ab1} +0 -0
@@ -112,10 +112,10 @@ class Subcommand extends CompositeCommand {
112
112
  * Wrapper for CLI Tools' prompt() method.
113
113
  *
114
114
  * @param string $question
115
- * @param mixed $default
115
+ * @param string $default
116
116
  * @return string|false
117
117
  */
118
- private function prompt( $question, $default = null ) {
118
+ private function prompt( $question, $default ) {
119
119
 
120
120
  $question .= ': ';
121
121
  if ( function_exists( 'readline' ) ) {
@@ -124,49 +124,13 @@ class Subcommand extends CompositeCommand {
124
124
 
125
125
  echo $question;
126
126
 
127
- $ret = (string) stream_get_line( STDIN, 1024, "\n" );
127
+ $ret = stream_get_line( STDIN, 1024, "\n" );
128
128
  if ( Utils\is_windows() && "\r" === substr( $ret, -1 ) ) {
129
129
  $ret = substr( $ret, 0, -1 );
130
130
  }
131
131
  return $ret;
132
132
  }
133
133
 
134
- /**
135
- * Get the description for an argument from documentation.
136
- *
137
- * @param array $spec_arg Argument specification from SynopsisParser
138
- * @param DocParser $docparser DocParser instance for retrieving descriptions
139
- * @param string $longdesc Long description text for regex matching
140
- * @return string Description text, or empty string if not found
141
- */
142
- private function get_arg_description( $spec_arg, $docparser, $longdesc ) {
143
- $description = '';
144
-
145
- if ( 'positional' === $spec_arg['type'] ) {
146
- $description = $docparser->get_arg_desc( $spec_arg['name'] );
147
- // If get_arg_desc doesn't find it (e.g., for simple <arg> without modifiers),
148
- // try a simpler pattern that matches <arg> followed by : description,
149
- // using a pattern consistent with DocParser::get_arg_desc().
150
- if ( empty( $description ) ) {
151
- $arg_pattern = '/\[?<' . preg_quote( $spec_arg['name'], '/' ) . ">.+\n:\s*(.+?)(\n|$)/";
152
- if ( preg_match( $arg_pattern, $longdesc, $matches ) ) {
153
- $description = trim( $matches[1] );
154
- }
155
- }
156
- } elseif ( 'assoc' === $spec_arg['type'] ) {
157
- $description = $docparser->get_param_desc( $spec_arg['name'] );
158
- } elseif ( 'flag' === $spec_arg['type'] ) {
159
- // For flags, the pattern is [--flag] not [--flag=<value>]
160
- // So we need a custom regex pattern in the longdesc
161
- $flag_pattern = '/\[?--' . preg_quote( $spec_arg['name'], '/' ) . "\]\s*\n:\s*(.+?)(\n|$)/";
162
- if ( preg_match( $flag_pattern, $longdesc, $matches ) ) {
163
- $description = trim( $matches[1] );
164
- }
165
- }
166
-
167
- return $description;
168
- }
169
-
170
134
  /**
171
135
  * Interactively prompt the user for input
172
136
  * based on defined synopsis and passed arguments.
@@ -183,9 +147,6 @@ class Subcommand extends CompositeCommand {
183
147
  return [ $args, $assoc_args ];
184
148
  }
185
149
 
186
- // Create a docparser to get default values and descriptions
187
- $docparser = $this->create_mock_docparser();
188
-
189
150
  // To skip the already provided positional arguments, we need to count
190
151
  // how many we had already received.
191
152
  $arg_index = 0;
@@ -213,17 +174,11 @@ class Subcommand extends CompositeCommand {
213
174
 
214
175
  $spec = array_values( $spec );
215
176
 
216
- /**
217
- * @var string|true $prompt_args
218
- */
219
177
  $prompt_args = WP_CLI::get_config( 'prompt' );
220
178
  if ( true !== $prompt_args ) {
221
179
  $prompt_args = explode( ',', $prompt_args );
222
180
  }
223
181
 
224
- // Reuse the existing DocParser to retrieve argument descriptions.
225
- $docparser = $this->docparser;
226
-
227
182
  // 'positional' arguments are positional (aka zero-indexed)
228
183
  // so $args needs to be reset before prompting for new arguments
229
184
  $args = [];
@@ -242,6 +197,7 @@ class Subcommand extends CompositeCommand {
242
197
  }
243
198
 
244
199
  $current_prompt = ( $key + 1 ) . '/' . count( $spec ) . ' ';
200
+ $default = $spec_arg['optional'] ? '' : false;
245
201
 
246
202
  // 'generic' permits arbitrary key=value (e.g. [--<field>=<value>] )
247
203
  if ( 'generic' === $spec_arg['type'] ) {
@@ -256,7 +212,7 @@ class Subcommand extends CompositeCommand {
256
212
  $key_prompt = str_repeat( ' ', strlen( $current_prompt ) ) . $key_token;
257
213
  }
258
214
 
259
- $key = $this->prompt( $key_prompt );
215
+ $key = $this->prompt( $key_prompt, $default );
260
216
  if ( false === $key ) {
261
217
  return [ $args, $assoc_args ];
262
218
  }
@@ -265,7 +221,7 @@ class Subcommand extends CompositeCommand {
265
221
  $key_prompt_count = strlen( $key_prompt ) - strlen( $value_token ) - 1;
266
222
  $value_prompt = str_repeat( ' ', $key_prompt_count ) . '=' . $value_token;
267
223
 
268
- $value = $this->prompt( $value_prompt );
224
+ $value = $this->prompt( $value_prompt, $default );
269
225
  if ( false === $value ) {
270
226
  return [ $args, $assoc_args ];
271
227
  }
@@ -279,41 +235,17 @@ class Subcommand extends CompositeCommand {
279
235
  } while ( $repeat );
280
236
 
281
237
  } else {
282
- $prompt = $current_prompt . $spec_arg['token'];
283
- $default_val = null;
284
-
285
- // Add description if available
286
- $longdesc = $this->get_longdesc();
287
- $description = $this->get_arg_description( $spec_arg, $docparser, $longdesc );
288
-
289
- if ( ! empty( $description ) ) {
290
- $prompt .= ' (' . $description . ')';
291
- }
292
-
293
- // Get default value for the argument (not for flags)
238
+ $prompt = $current_prompt . $spec_arg['token'];
294
239
  if ( 'flag' === $spec_arg['type'] ) {
295
240
  $prompt .= ' (Y/n)';
296
- } elseif ( 'positional' === $spec_arg['type'] || 'assoc' === $spec_arg['type'] ) {
297
- $spec_args = ( 'positional' === $spec_arg['type'] )
298
- ? $docparser->get_arg_args( $spec_arg['name'] )
299
- : $docparser->get_param_args( $spec_arg['name'] );
300
- if ( null !== $spec_args && isset( $spec_args['default'] ) ) {
301
- $default_val = $spec_args['default'];
302
- $prompt .= ' [' . $default_val . ']';
303
- }
304
241
  }
305
242
 
306
- $response = $this->prompt( $prompt );
243
+ $response = $this->prompt( $prompt, $default );
307
244
  if ( false === $response ) {
308
245
  return [ $args, $assoc_args ];
309
246
  }
310
247
 
311
- // If response is empty and there's a default (not a flag), use the default
312
- if ( '' === $response && null !== $default_val ) {
313
- $response = $default_val;
314
- }
315
-
316
- if ( '' !== $response ) {
248
+ if ( $response ) {
317
249
  switch ( $spec_arg['type'] ) {
318
250
  case 'positional':
319
251
  if ( $spec_arg['repeating'] ) {
@@ -339,85 +271,6 @@ class Subcommand extends CompositeCommand {
339
271
  return [ $args, $assoc_args ];
340
272
  }
341
273
 
342
- /**
343
- * Create a DocParser instance from the command's description.
344
- *
345
- * This creates a mock DocParser from the command's short and long descriptions,
346
- * used internally for getting argument metadata.
347
- *
348
- * @return DocParser
349
- */
350
- private function create_mock_docparser() {
351
- $mock_doc = [ $this->get_shortdesc(), '' ];
352
- $mock_doc = array_merge( $mock_doc, explode( "\n", $this->get_longdesc() ) );
353
- $mock_doc = '/**' . PHP_EOL . '* ' . implode( PHP_EOL . '* ', $mock_doc ) . PHP_EOL . '*/';
354
- return new DocParser( $mock_doc );
355
- }
356
-
357
- /**
358
- * Resolve argument aliases to their canonical names.
359
- *
360
- * Takes an associative array of arguments and replaces any aliases
361
- * with their canonical parameter names. This allows commands to define
362
- * shorter versions of arguments (e.g., -w for --with-dependencies).
363
- *
364
- * For repeating parameters, alias values are merged with any canonical
365
- * values already provided rather than being discarded.
366
- *
367
- * @param array $assoc_args Arguments passed to command.
368
- * @param array $aliases Map of alias => canonical_name.
369
- * @param array $repeating_params Map of canonical_name => true for repeating params.
370
- * @return array Arguments with aliases resolved to canonical names.
371
- */
372
- private function resolve_arg_aliases( $assoc_args, $aliases, $repeating_params = [] ) {
373
- if ( empty( $aliases ) ) {
374
- return $assoc_args;
375
- }
376
-
377
- // First pass: copy all non-alias entries to $resolved_args.
378
- $resolved_args = [];
379
- foreach ( $assoc_args as $key => $value ) {
380
- if ( ! isset( $aliases[ $key ] ) ) {
381
- $resolved_args[ $key ] = $value;
382
- }
383
- }
384
-
385
- // Second pass: resolve aliases.
386
- foreach ( $assoc_args as $key => $value ) {
387
- if ( ! isset( $aliases[ $key ] ) ) {
388
- continue;
389
- }
390
-
391
- $canonical_key = $aliases[ $key ];
392
- WP_CLI::debug( "Alias resolved: --{$key} => --{$canonical_key}", 'bootstrap' );
393
-
394
- if ( ! array_key_exists( $canonical_key, $resolved_args ) ) {
395
- // Canonical name not yet present; use alias value.
396
- $resolved_args[ $canonical_key ] = $value;
397
- } elseif ( ! empty( $repeating_params[ $canonical_key ] ) ) {
398
- // Canonical name present and parameter is repeating; merge values.
399
- $existing = $resolved_args[ $canonical_key ];
400
- if ( ! is_array( $existing ) ) {
401
- $existing = [ $existing ];
402
- }
403
- $alias_values = is_array( $value ) ? $value : [ $value ];
404
- $resolved_args[ $canonical_key ] = array_merge( $existing, $alias_values );
405
- } else {
406
- // Canonical name present and not repeating; canonical wins.
407
- WP_CLI::debug(
408
- sprintf(
409
- 'Ignoring alias --%s because --%s was already provided.',
410
- $key,
411
- $canonical_key
412
- ),
413
- 'bootstrap'
414
- );
415
- }
416
- }
417
-
418
- return $resolved_args;
419
- }
420
-
421
274
  /**
422
275
  * Validate the supplied arguments to the command.
423
276
  * Throws warnings or errors if arguments are missing
@@ -466,7 +319,10 @@ class Subcommand extends CompositeCommand {
466
319
  'fatal' => [],
467
320
  'warning' => [],
468
321
  ];
469
- $docparser = $this->create_mock_docparser();
322
+ $mock_doc = [ $this->get_shortdesc(), '' ];
323
+ $mock_doc = array_merge( $mock_doc, explode( "\n", $this->get_longdesc() ) );
324
+ $mock_doc = '/**' . PHP_EOL . '* ' . implode( PHP_EOL . '* ', $mock_doc ) . PHP_EOL . '*/';
325
+ $docparser = new DocParser( $mock_doc );
470
326
  foreach ( $synopsis_spec as $spec ) {
471
327
  if ( 'positional' === $spec['type'] ) {
472
328
  $spec_args = $docparser->get_arg_args( $spec['name'] );
@@ -491,41 +347,16 @@ class Subcommand extends CompositeCommand {
491
347
  ++$i;
492
348
  } elseif ( 'assoc' === $spec['type'] ) {
493
349
  $spec_args = $docparser->get_param_args( $spec['name'] );
494
-
495
- // Handle repeating parameter (e.g., [--status=<status>...])
496
- if ( isset( $assoc_args[ $spec['name'] ] ) && is_array( $assoc_args[ $spec['name'] ] ) ) {
497
- // If repeating is not set, use only the last value
498
- if ( empty( $spec['repeating'] ) ) {
499
- $values = $assoc_args[ $spec['name'] ];
500
- $values_count = count( $values );
501
- if ( $values_count > 0 ) {
502
- $assoc_args[ $spec['name'] ] = $values[ $values_count - 1 ];
503
- }
504
- }
505
- }
506
-
507
350
  if ( ! isset( $assoc_args[ $spec['name'] ] ) && ! isset( $extra_args[ $spec['name'] ] ) ) {
508
351
  if ( isset( $spec_args['default'] ) ) {
509
352
  $assoc_args[ $spec['name'] ] = $spec_args['default'];
510
353
  }
511
354
  }
512
355
  if ( isset( $assoc_args[ $spec['name'] ] ) && isset( $spec_args['options'] ) ) {
513
- /**
514
- * @var string|string[] $value
515
- */
516
356
  $value = $assoc_args[ $spec['name'] ];
517
357
  $options = $spec_args['options'];
518
-
519
- // Handle validation for multiple values
520
- if ( is_array( $value ) ) {
521
- foreach ( $value as $single_value ) {
522
- // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict -- This is a loose comparison by design.
523
- if ( ! in_array( $single_value, $options ) ) {
524
- $errors['fatal'][ $spec['name'] ] = "Invalid value '{$single_value}' specified for '{$spec['name']}'";
525
- break;
526
- }
527
- }
528
- } elseif ( ! in_array( $value, $options ) ) { // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict -- This is a loose comparison by design.
358
+ // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict -- This is a loose comparison by design.
359
+ if ( ! in_array( $value, $options ) ) {
529
360
  // Try whether it might be a comma-separated list of multiple values.
530
361
  $values = array_map( 'trim', explode( ',', $value ) );
531
362
  $count = count( $values );
@@ -549,9 +380,8 @@ class Subcommand extends CompositeCommand {
549
380
  }
550
381
  }
551
382
 
552
- $config = \WP_CLI::get_config();
553
383
  list( $returned_errors, $to_unset ) = $validator->validate_assoc(
554
- array_merge( $config, $extra_args, $assoc_args )
384
+ array_merge( \WP_CLI::get_config(), $extra_args, $assoc_args )
555
385
  );
556
386
  foreach ( [ 'fatal', 'warning' ] as $error_type ) {
557
387
  $errors[ $error_type ] = array_merge( $errors[ $error_type ], $returned_errors[ $error_type ] );
@@ -591,34 +421,6 @@ class Subcommand extends CompositeCommand {
591
421
  return [ $to_unset, $args, $assoc_args, $extra_args ];
592
422
  }
593
423
 
594
- /**
595
- * Get the list of sensitive argument names from the synopsis.
596
- * These arguments will have their values masked in log output.
597
- *
598
- * @return array<string> Array of argument names that are marked as sensitive
599
- */
600
- private function get_sensitive_args() {
601
- $synopsis = $this->get_synopsis();
602
- if ( ! $synopsis ) {
603
- return [];
604
- }
605
-
606
- $synopsis_spec = SynopsisParser::parse( $synopsis );
607
- $docparser = $this->create_mock_docparser();
608
- $sensitive_args = [];
609
-
610
- foreach ( $synopsis_spec as $spec ) {
611
- if ( 'assoc' === $spec['type'] ) {
612
- $spec_args = $docparser->get_param_args( $spec['name'] );
613
- if ( isset( $spec_args['sensitive'] ) && $spec_args['sensitive'] ) {
614
- $sensitive_args[] = $spec['name'];
615
- }
616
- }
617
- }
618
-
619
- return $sensitive_args;
620
- }
621
-
622
424
  /**
623
425
  * Invoke the subcommand with the supplied arguments.
624
426
  * Given a --prompt argument, interactively request input
@@ -630,70 +432,6 @@ class Subcommand extends CompositeCommand {
630
432
  public function invoke( $args, $assoc_args, $extra_args ) {
631
433
  static $prompted_once = false;
632
434
 
633
- // Build alias map from the parsed synopsis and resolve to canonical names.
634
- $aliases = [];
635
- $repeating_params = [];
636
- $synopsis_spec = SynopsisParser::parse( $this->get_synopsis() );
637
-
638
- // Build a set of assoc/flag canonical names (local + global) for conflict detection.
639
- // Positional parameter names are excluded because an alias matching a positional
640
- // name would not cause any real ambiguity (--alias vs bare positional).
641
- $assoc_flag_names = [];
642
- foreach ( $synopsis_spec as $param ) {
643
- if ( in_array( $param['type'], [ 'assoc', 'flag' ], true ) ) {
644
- $assoc_flag_names[] = $param['name'];
645
- }
646
- if ( 'assoc' === $param['type'] && ! empty( $param['repeating'] ) ) {
647
- $repeating_params[ $param['name'] ] = true;
648
- }
649
- }
650
- foreach ( SynopsisParser::parse( $this->get_global_params() ) as $param ) {
651
- if ( in_array( $param['type'], [ 'assoc', 'flag' ], true ) ) {
652
- $assoc_flag_names[] = $param['name'];
653
- }
654
- }
655
- $assoc_flag_names = array_unique( $assoc_flag_names );
656
-
657
- foreach ( $synopsis_spec as $param ) {
658
- if ( empty( $param['aliases'] ) ) {
659
- continue;
660
- }
661
-
662
- foreach ( $param['aliases'] as $alias ) {
663
- // Detect duplicate aliases (same alias used for different params).
664
- if ( isset( $aliases[ $alias ] ) && $aliases[ $alias ] !== $param['name'] ) {
665
- WP_CLI::warning(
666
- sprintf(
667
- "Alias '%s' for parameter '%s' conflicts with existing alias for parameter '%s'. Skipping.",
668
- $alias,
669
- $param['name'],
670
- $aliases[ $alias ]
671
- )
672
- );
673
- continue;
674
- }
675
-
676
- // Detect aliases that conflict with an assoc/flag canonical parameter name.
677
- if ( in_array( $alias, $assoc_flag_names, true ) && $alias !== $param['name'] ) {
678
- WP_CLI::warning(
679
- sprintf(
680
- "Alias '%s' for parameter '%s' conflicts with an existing parameter name. Skipping.",
681
- $alias,
682
- $param['name']
683
- )
684
- );
685
- continue;
686
- }
687
-
688
- $aliases[ $alias ] = $param['name'];
689
- }
690
- }
691
- if ( ! empty( $aliases ) ) {
692
- WP_CLI::debug( 'Resolving argument aliases: ' . implode( ', ', array_keys( $aliases ) ), 'bootstrap' );
693
- }
694
- $assoc_args = $this->resolve_arg_aliases( $assoc_args, $aliases, $repeating_params );
695
- $extra_args = $this->resolve_arg_aliases( $extra_args, $aliases, $repeating_params );
696
-
697
435
  if ( 'help' !== $this->name ) {
698
436
  if ( \WP_CLI::get_config( 'prompt' ) && ! $prompted_once ) {
699
437
  list( $_args, $assoc_args ) = $this->prompt_args( $args, $assoc_args );
@@ -732,15 +470,12 @@ class Subcommand extends CompositeCommand {
732
470
  if ( $prompted_once ) {
733
471
  // Unset empty args.
734
472
  $actual_args = $assoc_args;
735
- foreach ( $actual_args as $key => $value ) {
736
- if ( empty( $value ) ) {
473
+ foreach ( $actual_args as $key ) {
474
+ if ( empty( $actual_args[ $key ] ) ) {
737
475
  unset( $actual_args[ $key ] );
738
476
  }
739
477
  }
740
478
 
741
- // Get list of sensitive arguments to mask in output
742
- $sensitive_args = $this->get_sensitive_args();
743
-
744
479
  WP_CLI::log(
745
480
  sprintf(
746
481
  'wp %s %s',
@@ -750,7 +485,7 @@ class Subcommand extends CompositeCommand {
750
485
  ' ',
751
486
  [
752
487
  ltrim( Utils\args_to_str( $args ), ' ' ),
753
- ltrim( Utils\assoc_args_to_str( $actual_args, $sensitive_args ), ' ' ),
488
+ ltrim( Utils\assoc_args_to_str( $actual_args ), ' ' ),
754
489
  ]
755
490
  ),
756
491
  ' '
@@ -33,9 +33,9 @@ class DocParser {
33
33
  * @return string
34
34
  */
35
35
  private static function remove_decorations( $comment ) {
36
- $comment = (string) preg_replace( '|^/\*\*[\r\n]+|', '', $comment );
37
- $comment = (string) preg_replace( '|\n[\t ]*\*/$|', '', $comment );
38
- $comment = (string) preg_replace( '|^[\t ]*\* ?|m', '', $comment );
36
+ $comment = preg_replace( '|^/\*\*[\r\n]+|', '', $comment );
37
+ $comment = preg_replace( '|\n[\t ]*\*/$|', '', $comment );
38
+ $comment = preg_replace( '|^[\t ]*\* ?|m', '', $comment );
39
39
 
40
40
  return $comment;
41
41
  }
@@ -92,18 +92,6 @@ class DocParser {
92
92
  return '';
93
93
  }
94
94
 
95
- /**
96
- * Check if a given tag exists (e.g. "@skipglobalargcheck")
97
- *
98
- * Useful for checking the presence of valueless tags in PHPdoc.
99
- *
100
- * @param string $name Name for the tag, without '@'
101
- * @return bool True if the tag exists, false otherwise.
102
- */
103
- public function has_tag( $name ) {
104
- return (bool) preg_match( '/^\s*\*?\s*@' . preg_quote( $name, '/' ) . '\b/m', $this->doc_comment );
105
- }
106
-
107
95
  /**
108
96
  * Get the command's synopsis.
109
97
  *
@@ -136,7 +124,7 @@ class DocParser {
136
124
  * Get the arguments for a given argument.
137
125
  *
138
126
  * @param string $name Argument's doc name.
139
- * @return array|null
127
+ * @return mixed|null
140
128
  */
141
129
  public function get_arg_args( $name ) {
142
130
  return $this->get_arg_or_param_args( "/^\[?<{$name}>.*/" );
@@ -161,7 +149,7 @@ class DocParser {
161
149
  * Get the arguments for a given parameter.
162
150
  *
163
151
  * @param string $key Parameter's key.
164
- * @return array|null
152
+ * @return mixed|null
165
153
  */
166
154
  public function get_param_args( $key ) {
167
155
  return $this->get_arg_or_param_args( "/^\[?--{$key}=.*/" );
@@ -5,22 +5,19 @@ namespace WP_CLI\Exception;
5
5
  use OutOfBoundsException;
6
6
  use WP_CLI\Traverser\RecursiveDataStructureTraverser;
7
7
 
8
- /**
9
- * @template T
10
- */
11
8
  class NonExistentKeyException extends OutOfBoundsException {
12
- /** @var RecursiveDataStructureTraverser<T> */
9
+ /** @var RecursiveDataStructureTraverser */
13
10
  protected $traverser;
14
11
 
15
12
  /**
16
- * @param RecursiveDataStructureTraverser<T> $traverser
13
+ * @param RecursiveDataStructureTraverser $traverser
17
14
  */
18
15
  public function set_traverser( $traverser ) {
19
16
  $this->traverser = $traverser;
20
17
  }
21
18
 
22
19
  /**
23
- * @return RecursiveDataStructureTraverser<T>
20
+ * @return RecursiveDataStructureTraverser
24
21
  */
25
22
  public function get_traverser() {
26
23
  return $this->traverser;
@@ -58,7 +58,7 @@ class Extractor {
58
58
  $res = $zip->open( $zipfile );
59
59
 
60
60
  if ( true === $res ) {
61
- $name = Path::basename( $zipfile );
61
+ $name = Utils\basename( $zipfile );
62
62
  $tempdir = Utils\get_temp_dir()
63
63
  . uniqid( 'wp-cli-extract-zipfile-', true )
64
64
  . "-{$name}";
@@ -98,7 +98,7 @@ class Extractor {
98
98
  if ( class_exists( 'PharData' ) ) {
99
99
  try {
100
100
  $phar = new PharData( $tarball );
101
- $name = Path::basename( $tarball );
101
+ $name = Utils\basename( $tarball );
102
102
  $tempdir = Utils\get_temp_dir()
103
103
  . uniqid( 'wp-cli-extract-tarball-', true )
104
104
  . "-{$name}";
@@ -121,15 +121,16 @@ class Extractor {
121
121
  }
122
122
  }
123
123
 
124
- $tarball_absolute = realpath( $tarball );
125
- if ( ! $tarball_absolute ) {
126
- throw new Exception( "Invalid tarball '{$tarball}'." );
124
+ // Ensure relative paths cannot be misinterpreted as hostnames.
125
+ // Prepending `./` will force tar to interpret it as a filesystem path.
126
+ if ( self::path_is_relative( $tarball ) ) {
127
+ $tarball = "./{$tarball}";
127
128
  }
128
- $tarball = $tarball_absolute;
129
129
 
130
- if ( ! is_readable( $tarball )
130
+ if ( ! file_exists( $tarball )
131
+ || ! is_readable( $tarball )
131
132
  || filesize( $tarball ) <= 0 ) {
132
- throw new Exception( "Invalid tarball '{$tarball}'." );
133
+ throw new Exception( "Invalid zip file '{$tarball}'." );
133
134
  }
134
135
 
135
136
  // Note: directory must exist for tar --directory to work.
@@ -178,12 +179,9 @@ class Extractor {
178
179
  mkdir( $dest, 0777, true );
179
180
  }
180
181
 
181
- /**
182
- * @var \SplFileInfo $item
183
- */
184
182
  foreach ( $iterator as $item ) {
185
183
 
186
- $dest_path = $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathname();
184
+ $dest_path = $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName();
187
185
 
188
186
  if ( $item->isDir() ) {
189
187
  if ( ! is_dir( $dest_path ) ) {
@@ -195,7 +193,7 @@ class Extractor {
195
193
  copy( $item, $dest_path );
196
194
  } else {
197
195
  $error = 1;
198
- WP_CLI::warning( "Unable to copy '" . $iterator->getSubPathname() . "' to current directory." );
196
+ WP_CLI::warning( "Unable to copy '" . $iterator->getSubPathName() . "' to current directory." );
199
197
  }
200
198
  }
201
199
 
@@ -219,27 +217,14 @@ class Extractor {
219
217
  RecursiveIteratorIterator::CHILD_FIRST
220
218
  );
221
219
 
222
- $base_dir = realpath( $dir );
223
- if ( false === $base_dir ) {
224
- return;
225
- }
226
- $base_dir = rtrim( $base_dir, DIRECTORY_SEPARATOR ) . DIRECTORY_SEPARATOR;
227
-
228
- /**
229
- * @var \SplFileInfo $fileinfo
230
- */
231
220
  foreach ( $files as $fileinfo ) {
232
- $todo = $fileinfo->isDir() ? 'rmdir' : 'unlink';
233
- $path = $fileinfo->getPathname();
234
- $real_path = $fileinfo->getRealPath();
235
-
236
- if ( ! $real_path || 0 !== strpos( $real_path, $base_dir ) ) {
221
+ $todo = $fileinfo->isDir() ? 'rmdir' : 'unlink';
222
+ $path = $fileinfo->getRealPath();
223
+ if ( 0 !== strpos( $path, $fileinfo->getRealPath() ) ) {
237
224
  WP_CLI::warning(
238
225
  "Temporary file or folder to be removed was found outside of temporary folder, aborting removal: '{$path}'"
239
226
  );
240
- continue;
241
227
  }
242
-
243
228
  $todo( $path );
244
229
  }
245
230
  rmdir( $dir );
@@ -345,7 +330,7 @@ class Extractor {
345
330
  sprintf(
346
331
  "Failed to create directory '%s': %s.",
347
332
  $dir,
348
- $error ? $error['message'] : 'Unknown error'
333
+ $error['message']
349
334
  )
350
335
  );
351
336
  return false;
@@ -354,4 +339,43 @@ class Extractor {
354
339
 
355
340
  return true;
356
341
  }
342
+
343
+ /**
344
+ * Check whether a path is relative-
345
+ *
346
+ * @param string $path Path to check.
347
+ * @return bool Whether the path is relative.
348
+ */
349
+ private static function path_is_relative( $path ) {
350
+ if ( '' === $path ) {
351
+ return true;
352
+ }
353
+
354
+ // Strip scheme.
355
+ $scheme_position = strpos( $path, '://' );
356
+ if ( false !== $scheme_position ) {
357
+ $path = substr( $path, $scheme_position + 3 );
358
+ }
359
+
360
+ // UNIX root "/" or "\" (Windows style).
361
+ if ( '/' === $path[0] || '\\' === $path[0] ) {
362
+ return false;
363
+ }
364
+
365
+ // Windows root.
366
+ if ( strlen( $path ) > 1 && ctype_alpha( $path[0] ) && ':' === $path[1] ) {
367
+
368
+ // Special case: only drive letter, like "C:".
369
+ if ( 2 === strlen( $path ) ) {
370
+ return false;
371
+ }
372
+
373
+ // Regular Windows path starting with drive letter, like "C:/ or "C:\".
374
+ if ( '/' === $path[2] || '\\' === $path[2] ) {
375
+ return false;
376
+ }
377
+ }
378
+
379
+ return true;
380
+ }
357
381
  }