dependabot-composer 0.107.13 → 0.107.14

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 (901) hide show
  1. checksums.yaml +4 -4
  2. data/helpers/vendor/autoload.php +7 -0
  3. data/helpers/vendor/bin/composer +1 -0
  4. data/helpers/vendor/bin/jsonlint +1 -0
  5. data/helpers/vendor/bin/validate-json +1 -0
  6. data/helpers/vendor/composer/ClassLoader.php +445 -0
  7. data/helpers/vendor/composer/LICENSE +21 -0
  8. data/helpers/vendor/composer/autoload_classmap.php +9 -0
  9. data/helpers/vendor/composer/autoload_files.php +11 -0
  10. data/helpers/vendor/composer/autoload_namespaces.php +9 -0
  11. data/helpers/vendor/composer/autoload_psr4.php +26 -0
  12. data/helpers/vendor/composer/autoload_real.php +70 -0
  13. data/helpers/vendor/composer/autoload_static.php +128 -0
  14. data/helpers/vendor/composer/ca-bundle/LICENSE +19 -0
  15. data/helpers/vendor/composer/ca-bundle/README.md +85 -0
  16. data/helpers/vendor/composer/ca-bundle/composer.json +54 -0
  17. data/helpers/vendor/composer/ca-bundle/res/cacert.pem +3401 -0
  18. data/helpers/vendor/composer/ca-bundle/src/CaBundle.php +308 -0
  19. data/helpers/vendor/composer/composer/.gitattributes +12 -0
  20. data/helpers/vendor/composer/composer/.github/CONTRIBUTING.md +59 -0
  21. data/helpers/vendor/composer/composer/.github/ISSUE_TEMPLATE.md +25 -0
  22. data/helpers/vendor/composer/composer/.gitignore +11 -0
  23. data/helpers/vendor/composer/composer/.php_cs +58 -0
  24. data/helpers/vendor/composer/composer/.travis.yml +76 -0
  25. data/helpers/vendor/composer/composer/CHANGELOG.md +808 -0
  26. data/helpers/vendor/composer/composer/LICENSE +19 -0
  27. data/helpers/vendor/composer/composer/PORTING_INFO +39 -0
  28. data/helpers/vendor/composer/composer/README.md +62 -0
  29. data/helpers/vendor/composer/composer/appveyor.yml +33 -0
  30. data/helpers/vendor/composer/composer/bin/compile +31 -0
  31. data/helpers/vendor/composer/composer/bin/composer +62 -0
  32. data/helpers/vendor/composer/composer/composer.json +81 -0
  33. data/helpers/vendor/composer/composer/composer.lock +1800 -0
  34. data/helpers/vendor/composer/composer/doc/00-intro.md +156 -0
  35. data/helpers/vendor/composer/composer/doc/01-basic-usage.md +266 -0
  36. data/helpers/vendor/composer/composer/doc/02-libraries.md +153 -0
  37. data/helpers/vendor/composer/composer/doc/03-cli.md +931 -0
  38. data/helpers/vendor/composer/composer/doc/04-schema.md +924 -0
  39. data/helpers/vendor/composer/composer/doc/05-repositories.md +713 -0
  40. data/helpers/vendor/composer/composer/doc/06-config.md +277 -0
  41. data/helpers/vendor/composer/composer/doc/07-community.md +35 -0
  42. data/helpers/vendor/composer/composer/doc/articles/aliases.md +105 -0
  43. data/helpers/vendor/composer/composer/doc/articles/autoloader-optimization.md +111 -0
  44. data/helpers/vendor/composer/composer/doc/articles/custom-installers.md +204 -0
  45. data/helpers/vendor/composer/composer/doc/articles/handling-private-packages-with-satis.md +343 -0
  46. data/helpers/vendor/composer/composer/doc/articles/http-basic-authentication.md +59 -0
  47. data/helpers/vendor/composer/composer/doc/articles/plugins.md +285 -0
  48. data/helpers/vendor/composer/composer/doc/articles/scripts.md +304 -0
  49. data/helpers/vendor/composer/composer/doc/articles/troubleshooting.md +309 -0
  50. data/helpers/vendor/composer/composer/doc/articles/vendor-binaries.md +110 -0
  51. data/helpers/vendor/composer/composer/doc/articles/versions.md +230 -0
  52. data/helpers/vendor/composer/composer/doc/dev/DefaultPolicy.md +55 -0
  53. data/helpers/vendor/composer/composer/doc/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.md +50 -0
  54. data/helpers/vendor/composer/composer/doc/faqs/how-to-install-composer-programmatically.md +42 -0
  55. data/helpers/vendor/composer/composer/doc/faqs/how-to-install-untrusted-packages-safely.md +19 -0
  56. data/helpers/vendor/composer/composer/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md +32 -0
  57. data/helpers/vendor/composer/composer/doc/faqs/which-version-numbering-system-does-composer-itself-use.md +4 -0
  58. data/helpers/vendor/composer/composer/doc/faqs/why-are-unbound-version-constraints-a-bad-idea.md +21 -0
  59. data/helpers/vendor/composer/composer/doc/faqs/why-are-version-constraints-combining-comparisons-and-wildcards-a-bad-idea.md +21 -0
  60. data/helpers/vendor/composer/composer/doc/faqs/why-can't-composer-load-repositories-recursively.md +35 -0
  61. data/helpers/vendor/composer/composer/doc/fixtures/fixtures.md +22 -0
  62. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-plain/packages.json +158 -0
  63. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/bar/baz$923363b3c22e73abb2e3fd891c8156dd4d0821a97fd3e428bc910833e3e46dbe.json +50 -0
  64. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/foo/bar$4baabb3303afa3e34a4d3af18fb138e5f3b79029c1f8d9ab5b477ea15776ba0a.json +77 -0
  65. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/gar/nix$5d210670cb46c8364c8e3fb449967b9bea558b971e5b082f330ae4f1d484c321.json +50 -0
  66. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/provider-active$1893a061e579543822389ecd12d791c612db0c05e22d90e9286e233cacd86ed8.json +16 -0
  67. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/qux/quux$c142d1a07ca354be46b613f59f1d601923a5a00ccc5fcce50a77ecdd461eb72d.json +22 -0
  68. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/packages.json +9 -0
  69. data/helpers/vendor/composer/composer/phpunit.xml.dist +35 -0
  70. data/helpers/vendor/composer/composer/res/composer-repository-schema.json +110 -0
  71. data/helpers/vendor/composer/composer/res/composer-schema.json +843 -0
  72. data/helpers/vendor/composer/composer/src/Composer/Autoload/AutoloadGenerator.php +1061 -0
  73. data/helpers/vendor/composer/composer/src/Composer/Autoload/ClassLoader.php +445 -0
  74. data/helpers/vendor/composer/composer/src/Composer/Autoload/ClassMapGenerator.php +222 -0
  75. data/helpers/vendor/composer/composer/src/Composer/Cache.php +251 -0
  76. data/helpers/vendor/composer/composer/src/Composer/Command/AboutCommand.php +46 -0
  77. data/helpers/vendor/composer/composer/src/Composer/Command/ArchiveCommand.php +166 -0
  78. data/helpers/vendor/composer/composer/src/Composer/Command/BaseCommand.php +181 -0
  79. data/helpers/vendor/composer/composer/src/Composer/Command/BaseDependencyCommand.php +255 -0
  80. data/helpers/vendor/composer/composer/src/Composer/Command/CheckPlatformReqsCommand.php +156 -0
  81. data/helpers/vendor/composer/composer/src/Composer/Command/ClearCacheCommand.php +74 -0
  82. data/helpers/vendor/composer/composer/src/Composer/Command/ConfigCommand.php +707 -0
  83. data/helpers/vendor/composer/composer/src/Composer/Command/CreateProjectCommand.php +385 -0
  84. data/helpers/vendor/composer/composer/src/Composer/Command/DependsCommand.php +57 -0
  85. data/helpers/vendor/composer/composer/src/Composer/Command/DiagnoseCommand.php +729 -0
  86. data/helpers/vendor/composer/composer/src/Composer/Command/DumpAutoloadCommand.php +88 -0
  87. data/helpers/vendor/composer/composer/src/Composer/Command/ExecCommand.php +97 -0
  88. data/helpers/vendor/composer/composer/src/Composer/Command/GlobalCommand.php +111 -0
  89. data/helpers/vendor/composer/composer/src/Composer/Command/HomeCommand.php +168 -0
  90. data/helpers/vendor/composer/composer/src/Composer/Command/InitCommand.php +808 -0
  91. data/helpers/vendor/composer/composer/src/Composer/Command/InstallCommand.php +124 -0
  92. data/helpers/vendor/composer/composer/src/Composer/Command/LicensesCommand.php +159 -0
  93. data/helpers/vendor/composer/composer/src/Composer/Command/OutdatedCommand.php +95 -0
  94. data/helpers/vendor/composer/composer/src/Composer/Command/ProhibitsCommand.php +57 -0
  95. data/helpers/vendor/composer/composer/src/Composer/Command/RemoveCommand.php +163 -0
  96. data/helpers/vendor/composer/composer/src/Composer/Command/RequireCommand.php +258 -0
  97. data/helpers/vendor/composer/composer/src/Composer/Command/RunScriptCommand.php +141 -0
  98. data/helpers/vendor/composer/composer/src/Composer/Command/ScriptAliasCommand.php +66 -0
  99. data/helpers/vendor/composer/composer/src/Composer/Command/SearchCommand.php +83 -0
  100. data/helpers/vendor/composer/composer/src/Composer/Command/SelfUpdateCommand.php +405 -0
  101. data/helpers/vendor/composer/composer/src/Composer/Command/ShowCommand.php +1015 -0
  102. data/helpers/vendor/composer/composer/src/Composer/Command/StatusCommand.php +214 -0
  103. data/helpers/vendor/composer/composer/src/Composer/Command/SuggestsCommand.php +152 -0
  104. data/helpers/vendor/composer/composer/src/Composer/Command/UpdateCommand.php +228 -0
  105. data/helpers/vendor/composer/composer/src/Composer/Command/ValidateCommand.php +172 -0
  106. data/helpers/vendor/composer/composer/src/Composer/Compiler.php +284 -0
  107. data/helpers/vendor/composer/composer/src/Composer/Composer.php +283 -0
  108. data/helpers/vendor/composer/composer/src/Composer/Config.php +461 -0
  109. data/helpers/vendor/composer/composer/src/Composer/Config/ConfigSourceInterface.php +91 -0
  110. data/helpers/vendor/composer/composer/src/Composer/Config/JsonConfigSource.php +267 -0
  111. data/helpers/vendor/composer/composer/src/Composer/Console/Application.php +481 -0
  112. data/helpers/vendor/composer/composer/src/Composer/Console/HtmlOutputFormatter.php +90 -0
  113. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Decisions.php +211 -0
  114. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/DefaultPolicy.php +285 -0
  115. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/GenericRule.php +91 -0
  116. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/InstallOperation.php +66 -0
  117. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/MarkAliasInstalledOperation.php +67 -0
  118. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/MarkAliasUninstalledOperation.php +67 -0
  119. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/OperationInterface.php +42 -0
  120. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/SolverOperation.php +50 -0
  121. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/UninstallOperation.php +66 -0
  122. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/UpdateOperation.php +80 -0
  123. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/PolicyInterface.php +27 -0
  124. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Pool.php +378 -0
  125. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Problem.php +253 -0
  126. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Request.php +78 -0
  127. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Rule.php +268 -0
  128. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Rule2Literals.php +113 -0
  129. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSet.php +176 -0
  130. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSetGenerator.php +372 -0
  131. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSetIterator.php +94 -0
  132. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchChain.php +52 -0
  133. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchGraph.php +144 -0
  134. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchNode.php +113 -0
  135. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Solver.php +874 -0
  136. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/SolverBugException.php +27 -0
  137. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/SolverProblemsException.php +88 -0
  138. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Transaction.php +244 -0
  139. data/helpers/vendor/composer/composer/src/Composer/Downloader/ArchiveDownloader.php +135 -0
  140. data/helpers/vendor/composer/composer/src/Composer/Downloader/ChangeReportInterface.php +32 -0
  141. data/helpers/vendor/composer/composer/src/Composer/Downloader/DownloadManager.php +325 -0
  142. data/helpers/vendor/composer/composer/src/Composer/Downloader/DownloaderInterface.php +64 -0
  143. data/helpers/vendor/composer/composer/src/Composer/Downloader/DvcsDownloaderInterface.php +32 -0
  144. data/helpers/vendor/composer/composer/src/Composer/Downloader/FileDownloader.php +322 -0
  145. data/helpers/vendor/composer/composer/src/Composer/Downloader/FilesystemException.php +26 -0
  146. data/helpers/vendor/composer/composer/src/Composer/Downloader/FossilDownloader.php +116 -0
  147. data/helpers/vendor/composer/composer/src/Composer/Downloader/GitDownloader.php +516 -0
  148. data/helpers/vendor/composer/composer/src/Composer/Downloader/GzipDownloader.php +84 -0
  149. data/helpers/vendor/composer/composer/src/Composer/Downloader/HgDownloader.php +100 -0
  150. data/helpers/vendor/composer/composer/src/Composer/Downloader/PathDownloader.php +202 -0
  151. data/helpers/vendor/composer/composer/src/Composer/Downloader/PearPackageExtractor.php +266 -0
  152. data/helpers/vendor/composer/composer/src/Composer/Downloader/PerforceDownloader.php +114 -0
  153. data/helpers/vendor/composer/composer/src/Composer/Downloader/PharDownloader.php +36 -0
  154. data/helpers/vendor/composer/composer/src/Composer/Downloader/RarDownloader.php +91 -0
  155. data/helpers/vendor/composer/composer/src/Composer/Downloader/SvnDownloader.php +225 -0
  156. data/helpers/vendor/composer/composer/src/Composer/Downloader/TarDownloader.php +31 -0
  157. data/helpers/vendor/composer/composer/src/Composer/Downloader/TransportException.php +53 -0
  158. data/helpers/vendor/composer/composer/src/Composer/Downloader/VcsCapableDownloaderInterface.php +32 -0
  159. data/helpers/vendor/composer/composer/src/Composer/Downloader/VcsDownloader.php +293 -0
  160. data/helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php +60 -0
  161. data/helpers/vendor/composer/composer/src/Composer/Downloader/ZipDownloader.php +230 -0
  162. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/Event.php +103 -0
  163. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php +536 -0
  164. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/EventSubscriberInterface.php +48 -0
  165. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/ScriptExecutionException.php +20 -0
  166. data/helpers/vendor/composer/composer/src/Composer/Exception/NoSslException.php +20 -0
  167. data/helpers/vendor/composer/composer/src/Composer/Factory.php +653 -0
  168. data/helpers/vendor/composer/composer/src/Composer/IO/BaseIO.php +255 -0
  169. data/helpers/vendor/composer/composer/src/Composer/IO/BufferIO.php +59 -0
  170. data/helpers/vendor/composer/composer/src/Composer/IO/ConsoleIO.php +322 -0
  171. data/helpers/vendor/composer/composer/src/Composer/IO/IOInterface.php +207 -0
  172. data/helpers/vendor/composer/composer/src/Composer/IO/NullIO.php +129 -0
  173. data/helpers/vendor/composer/composer/src/Composer/Installer.php +1798 -0
  174. data/helpers/vendor/composer/composer/src/Composer/Installer/BinaryInstaller.php +214 -0
  175. data/helpers/vendor/composer/composer/src/Composer/Installer/BinaryPresenceInterface.php +30 -0
  176. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallationManager.php +326 -0
  177. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerEvent.php +161 -0
  178. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerEvents.php +43 -0
  179. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerInterface.php +79 -0
  180. data/helpers/vendor/composer/composer/src/Composer/Installer/LibraryInstaller.php +232 -0
  181. data/helpers/vendor/composer/composer/src/Composer/Installer/MetapackageInstaller.php +100 -0
  182. data/helpers/vendor/composer/composer/src/Composer/Installer/NoopInstaller.php +88 -0
  183. data/helpers/vendor/composer/composer/src/Composer/Installer/PackageEvent.php +65 -0
  184. data/helpers/vendor/composer/composer/src/Composer/Installer/PackageEvents.php +75 -0
  185. data/helpers/vendor/composer/composer/src/Composer/Installer/PearBinaryInstaller.php +144 -0
  186. data/helpers/vendor/composer/composer/src/Composer/Installer/PearInstaller.php +84 -0
  187. data/helpers/vendor/composer/composer/src/Composer/Installer/PluginInstaller.php +84 -0
  188. data/helpers/vendor/composer/composer/src/Composer/Installer/ProjectInstaller.php +99 -0
  189. data/helpers/vendor/composer/composer/src/Composer/Installer/SuggestedPackagesReporter.php +151 -0
  190. data/helpers/vendor/composer/composer/src/Composer/Json/JsonFile.php +301 -0
  191. data/helpers/vendor/composer/composer/src/Composer/Json/JsonFormatter.php +134 -0
  192. data/helpers/vendor/composer/composer/src/Composer/Json/JsonManipulator.php +521 -0
  193. data/helpers/vendor/composer/composer/src/Composer/Json/JsonValidationException.php +34 -0
  194. data/helpers/vendor/composer/composer/src/Composer/Package/AliasPackage.php +404 -0
  195. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchivableFilesFilter.php +44 -0
  196. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchivableFilesFinder.php +105 -0
  197. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchiveManager.php +183 -0
  198. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchiverInterface.php +43 -0
  199. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/BaseExcludeFilter.php +148 -0
  200. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ComposerExcludeFilter.php +31 -0
  201. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/GitExcludeFilter.php +79 -0
  202. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/HgExcludeFilter.php +107 -0
  203. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/PharArchiver.php +97 -0
  204. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ZipArchiver.php +74 -0
  205. data/helpers/vendor/composer/composer/src/Composer/Package/BasePackage.php +251 -0
  206. data/helpers/vendor/composer/composer/src/Composer/Package/Comparer/Comparer.php +129 -0
  207. data/helpers/vendor/composer/composer/src/Composer/Package/CompletePackage.php +199 -0
  208. data/helpers/vendor/composer/composer/src/Composer/Package/CompletePackageInterface.php +95 -0
  209. data/helpers/vendor/composer/composer/src/Composer/Package/Dumper/ArrayDumper.php +151 -0
  210. data/helpers/vendor/composer/composer/src/Composer/Package/Link.php +128 -0
  211. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/EmptyConstraint.php +24 -0
  212. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/LinkConstraintInterface.php +24 -0
  213. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/MultiConstraint.php +24 -0
  214. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/SpecificConstraint.php +24 -0
  215. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/VersionConstraint.php +24 -0
  216. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/ArrayLoader.php +290 -0
  217. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/InvalidPackageException.php +46 -0
  218. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/JsonLoader.php +45 -0
  219. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/LoaderInterface.php +30 -0
  220. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/RootPackageLoader.php +264 -0
  221. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/ValidatingArrayLoader.php +493 -0
  222. data/helpers/vendor/composer/composer/src/Composer/Package/Locker.php +438 -0
  223. data/helpers/vendor/composer/composer/src/Composer/Package/Package.php +612 -0
  224. data/helpers/vendor/composer/composer/src/Composer/Package/PackageInterface.php +361 -0
  225. data/helpers/vendor/composer/composer/src/Composer/Package/RootAliasPackage.php +173 -0
  226. data/helpers/vendor/composer/composer/src/Composer/Package/RootPackage.php +136 -0
  227. data/helpers/vendor/composer/composer/src/Composer/Package/RootPackageInterface.php +142 -0
  228. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionGuesser.php +302 -0
  229. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionParser.php +81 -0
  230. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionSelector.php +176 -0
  231. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capability/Capability.php +23 -0
  232. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capability/CommandProvider.php +33 -0
  233. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capable.php +43 -0
  234. data/helpers/vendor/composer/composer/src/Composer/Plugin/CommandEvent.php +88 -0
  235. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginEvents.php +61 -0
  236. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginInterface.php +39 -0
  237. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginManager.php +403 -0
  238. data/helpers/vendor/composer/composer/src/Composer/Plugin/PreCommandRunEvent.php +68 -0
  239. data/helpers/vendor/composer/composer/src/Composer/Plugin/PreFileDownloadEvent.php +78 -0
  240. data/helpers/vendor/composer/composer/src/Composer/Question/StrictConfirmationQuestion.php +94 -0
  241. data/helpers/vendor/composer/composer/src/Composer/Repository/ArrayRepository.php +208 -0
  242. data/helpers/vendor/composer/composer/src/Composer/Repository/ArtifactRepository.php +167 -0
  243. data/helpers/vendor/composer/composer/src/Composer/Repository/BaseRepository.php +157 -0
  244. data/helpers/vendor/composer/composer/src/Composer/Repository/ComposerRepository.php +829 -0
  245. data/helpers/vendor/composer/composer/src/Composer/Repository/CompositeRepository.php +164 -0
  246. data/helpers/vendor/composer/composer/src/Composer/Repository/ConfigurableRepositoryInterface.php +23 -0
  247. data/helpers/vendor/composer/composer/src/Composer/Repository/FilesystemRepository.php +97 -0
  248. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledArrayRepository.php +24 -0
  249. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledFilesystemRepository.php +22 -0
  250. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledRepositoryInterface.php +24 -0
  251. data/helpers/vendor/composer/composer/src/Composer/Repository/InvalidRepositoryException.php +22 -0
  252. data/helpers/vendor/composer/composer/src/Composer/Repository/PackageRepository.php +61 -0
  253. data/helpers/vendor/composer/composer/src/Composer/Repository/PathRepository.php +190 -0
  254. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/BaseChannelReader.php +82 -0
  255. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelInfo.php +67 -0
  256. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelReader.php +101 -0
  257. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelRest10Reader.php +164 -0
  258. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelRest11Reader.php +139 -0
  259. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/DependencyConstraint.php +60 -0
  260. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/DependencyInfo.php +50 -0
  261. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/PackageDependencyParser.php +317 -0
  262. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/PackageInfo.php +94 -0
  263. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ReleaseInfo.php +50 -0
  264. data/helpers/vendor/composer/composer/src/Composer/Repository/PearRepository.php +198 -0
  265. data/helpers/vendor/composer/composer/src/Composer/Repository/PlatformRepository.php +342 -0
  266. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryFactory.php +169 -0
  267. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryInterface.php +74 -0
  268. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryManager.php +177 -0
  269. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositorySecurityException.php +22 -0
  270. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/BitbucketDriver.php +445 -0
  271. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/FossilDriver.php +238 -0
  272. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitBitbucketDriver.php +91 -0
  273. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitDriver.php +222 -0
  274. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitHubDriver.php +472 -0
  275. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitLabDriver.php +511 -0
  276. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/HgBitbucketDriver.php +91 -0
  277. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/HgDriver.php +230 -0
  278. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/PerforceDriver.php +181 -0
  279. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/SvnDriver.php +397 -0
  280. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/VcsDriver.php +175 -0
  281. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/VcsDriverInterface.php +117 -0
  282. data/helpers/vendor/composer/composer/src/Composer/Repository/VcsRepository.php +407 -0
  283. data/helpers/vendor/composer/composer/src/Composer/Repository/VersionCacheInterface.php +23 -0
  284. data/helpers/vendor/composer/composer/src/Composer/Repository/WritableArrayRepository.php +66 -0
  285. data/helpers/vendor/composer/composer/src/Composer/Repository/WritableRepositoryInterface.php +54 -0
  286. data/helpers/vendor/composer/composer/src/Composer/Script/CommandEvent.php +22 -0
  287. data/helpers/vendor/composer/composer/src/Composer/Script/Event.php +89 -0
  288. data/helpers/vendor/composer/composer/src/Composer/Script/PackageEvent.php +24 -0
  289. data/helpers/vendor/composer/composer/src/Composer/Script/ScriptEvents.php +193 -0
  290. data/helpers/vendor/composer/composer/src/Composer/SelfUpdate/Keys.php +36 -0
  291. data/helpers/vendor/composer/composer/src/Composer/SelfUpdate/Versions.php +75 -0
  292. data/helpers/vendor/composer/composer/src/Composer/Util/AuthHelper.php +63 -0
  293. data/helpers/vendor/composer/composer/src/Composer/Util/Bitbucket.php +245 -0
  294. data/helpers/vendor/composer/composer/src/Composer/Util/ComposerMirror.php +57 -0
  295. data/helpers/vendor/composer/composer/src/Composer/Util/ConfigValidator.php +191 -0
  296. data/helpers/vendor/composer/composer/src/Composer/Util/ErrorHandler.php +79 -0
  297. data/helpers/vendor/composer/composer/src/Composer/Util/Filesystem.php +715 -0
  298. data/helpers/vendor/composer/composer/src/Composer/Util/Git.php +374 -0
  299. data/helpers/vendor/composer/composer/src/Composer/Util/GitHub.php +180 -0
  300. data/helpers/vendor/composer/composer/src/Composer/Util/GitLab.php +163 -0
  301. data/helpers/vendor/composer/composer/src/Composer/Util/Hg.php +94 -0
  302. data/helpers/vendor/composer/composer/src/Composer/Util/IniHelper.php +64 -0
  303. data/helpers/vendor/composer/composer/src/Composer/Util/NoProxyPattern.php +147 -0
  304. data/helpers/vendor/composer/composer/src/Composer/Util/Perforce.php +581 -0
  305. data/helpers/vendor/composer/composer/src/Composer/Util/Platform.php +92 -0
  306. data/helpers/vendor/composer/composer/src/Composer/Util/ProcessExecutor.php +192 -0
  307. data/helpers/vendor/composer/composer/src/Composer/Util/RemoteFilesystem.php +1109 -0
  308. data/helpers/vendor/composer/composer/src/Composer/Util/Silencer.php +78 -0
  309. data/helpers/vendor/composer/composer/src/Composer/Util/SpdxLicense.php +24 -0
  310. data/helpers/vendor/composer/composer/src/Composer/Util/StreamContextFactory.php +177 -0
  311. data/helpers/vendor/composer/composer/src/Composer/Util/Svn.php +381 -0
  312. data/helpers/vendor/composer/composer/src/Composer/Util/TlsHelper.php +204 -0
  313. data/helpers/vendor/composer/composer/src/Composer/Util/Url.php +55 -0
  314. data/helpers/vendor/composer/composer/src/Composer/XdebugHandler.php +31 -0
  315. data/helpers/vendor/composer/composer/src/bootstrap.php +24 -0
  316. data/helpers/vendor/composer/installed.json +947 -0
  317. data/helpers/vendor/composer/semver/CHANGELOG.md +72 -0
  318. data/helpers/vendor/composer/semver/LICENSE +19 -0
  319. data/helpers/vendor/composer/semver/README.md +70 -0
  320. data/helpers/vendor/composer/semver/composer.json +58 -0
  321. data/helpers/vendor/composer/semver/src/Comparator.php +111 -0
  322. data/helpers/vendor/composer/semver/src/Constraint/AbstractConstraint.php +63 -0
  323. data/helpers/vendor/composer/semver/src/Constraint/Constraint.php +219 -0
  324. data/helpers/vendor/composer/semver/src/Constraint/ConstraintInterface.php +32 -0
  325. data/helpers/vendor/composer/semver/src/Constraint/EmptyConstraint.php +59 -0
  326. data/helpers/vendor/composer/semver/src/Constraint/MultiConstraint.php +120 -0
  327. data/helpers/vendor/composer/semver/src/Semver.php +127 -0
  328. data/helpers/vendor/composer/semver/src/VersionParser.php +540 -0
  329. data/helpers/vendor/composer/spdx-licenses/.php_cs.dist +59 -0
  330. data/helpers/vendor/composer/spdx-licenses/CHANGELOG.md +89 -0
  331. data/helpers/vendor/composer/spdx-licenses/LICENSE +19 -0
  332. data/helpers/vendor/composer/spdx-licenses/README.md +69 -0
  333. data/helpers/vendor/composer/spdx-licenses/composer.json +56 -0
  334. data/helpers/vendor/composer/spdx-licenses/res/spdx-exceptions.json +101 -0
  335. data/helpers/vendor/composer/spdx-licenses/res/spdx-licenses.json +1932 -0
  336. data/helpers/vendor/composer/spdx-licenses/src/SpdxLicenses.php +343 -0
  337. data/helpers/vendor/composer/xdebug-handler/CHANGELOG.md +55 -0
  338. data/helpers/vendor/composer/xdebug-handler/LICENSE +21 -0
  339. data/helpers/vendor/composer/xdebug-handler/README.md +288 -0
  340. data/helpers/vendor/composer/xdebug-handler/composer.json +40 -0
  341. data/helpers/vendor/composer/xdebug-handler/src/PhpConfig.php +73 -0
  342. data/helpers/vendor/composer/xdebug-handler/src/Process.php +160 -0
  343. data/helpers/vendor/composer/xdebug-handler/src/Status.php +163 -0
  344. data/helpers/vendor/composer/xdebug-handler/src/XdebugHandler.php +565 -0
  345. data/helpers/vendor/justinrainbow/json-schema/.gitattributes +5 -0
  346. data/helpers/vendor/justinrainbow/json-schema/.php_cs.dist +30 -0
  347. data/helpers/vendor/justinrainbow/json-schema/LICENSE +21 -0
  348. data/helpers/vendor/justinrainbow/json-schema/README.md +206 -0
  349. data/helpers/vendor/justinrainbow/json-schema/bin/validate-json +251 -0
  350. data/helpers/vendor/justinrainbow/json-schema/composer.json +76 -0
  351. data/helpers/vendor/justinrainbow/json-schema/demo/README.md +14 -0
  352. data/helpers/vendor/justinrainbow/json-schema/demo/data.json +3 -0
  353. data/helpers/vendor/justinrainbow/json-schema/demo/demo.php +18 -0
  354. data/helpers/vendor/justinrainbow/json-schema/demo/schema.json +3 -0
  355. data/helpers/vendor/justinrainbow/json-schema/dist/schema/json-schema-draft-03.json +174 -0
  356. data/helpers/vendor/justinrainbow/json-schema/dist/schema/json-schema-draft-04.json +150 -0
  357. data/helpers/vendor/justinrainbow/json-schema/phpunit.xml.dist +26 -0
  358. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/BaseConstraint.php +148 -0
  359. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/CollectionConstraint.php +121 -0
  360. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Constraint.php +213 -0
  361. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/ConstraintInterface.php +65 -0
  362. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php +54 -0
  363. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Factory.php +220 -0
  364. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/FormatConstraint.php +214 -0
  365. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/NumberConstraint.php +81 -0
  366. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/ObjectConstraint.php +192 -0
  367. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/SchemaConstraint.php +94 -0
  368. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/StringConstraint.php +60 -0
  369. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/LooseTypeCheck.php +68 -0
  370. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/StrictTypeCheck.php +40 -0
  371. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/TypeCheckInterface.php +18 -0
  372. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeConstraint.php +261 -0
  373. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/UndefinedConstraint.php +413 -0
  374. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Entity/JsonPointer.php +161 -0
  375. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ExceptionInterface.php +7 -0
  376. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidArgumentException.php +17 -0
  377. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidConfigException.php +17 -0
  378. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSchemaException.php +17 -0
  379. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSchemaMediaTypeException.php +17 -0
  380. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSourceUriException.php +17 -0
  381. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/JsonDecodingException.php +40 -0
  382. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ResourceNotFoundException.php +17 -0
  383. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/RuntimeException.php +17 -0
  384. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/UnresolvableJsonPointerException.php +19 -0
  385. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/UriResolverException.php +17 -0
  386. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ValidationException.php +14 -0
  387. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Iterator/ObjectIterator.php +149 -0
  388. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Rfc3339.php +30 -0
  389. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/SchemaStorage.php +169 -0
  390. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/SchemaStorageInterface.php +41 -0
  391. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/AbstractRetriever.php +34 -0
  392. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/Curl.php +83 -0
  393. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/FileGetContents.php +93 -0
  394. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/PredefinedArray.php +56 -0
  395. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/UriRetrieverInterface.php +36 -0
  396. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/UriResolver.php +175 -0
  397. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/UriRetriever.php +349 -0
  398. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/UriResolverInterface.php +26 -0
  399. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/UriRetrieverInterface.php +26 -0
  400. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Validator.php +90 -0
  401. data/helpers/vendor/psr/log/.gitignore +1 -0
  402. data/helpers/vendor/psr/log/LICENSE +19 -0
  403. data/helpers/vendor/psr/log/Psr/Log/AbstractLogger.php +128 -0
  404. data/helpers/vendor/psr/log/Psr/Log/InvalidArgumentException.php +7 -0
  405. data/helpers/vendor/psr/log/Psr/Log/LogLevel.php +18 -0
  406. data/helpers/vendor/psr/log/Psr/Log/LoggerAwareInterface.php +18 -0
  407. data/helpers/vendor/psr/log/Psr/Log/LoggerAwareTrait.php +26 -0
  408. data/helpers/vendor/psr/log/Psr/Log/LoggerInterface.php +123 -0
  409. data/helpers/vendor/psr/log/Psr/Log/LoggerTrait.php +140 -0
  410. data/helpers/vendor/psr/log/Psr/Log/NullLogger.php +28 -0
  411. data/helpers/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php +144 -0
  412. data/helpers/vendor/psr/log/Psr/Log/Test/TestLogger.php +146 -0
  413. data/helpers/vendor/psr/log/README.md +52 -0
  414. data/helpers/vendor/psr/log/composer.json +26 -0
  415. data/helpers/vendor/seld/jsonlint/.gitignore +3 -0
  416. data/helpers/vendor/seld/jsonlint/.travis.yml +25 -0
  417. data/helpers/vendor/seld/jsonlint/CHANGELOG.md +66 -0
  418. data/helpers/vendor/seld/jsonlint/LICENSE +19 -0
  419. data/helpers/vendor/seld/jsonlint/README.md +89 -0
  420. data/helpers/vendor/seld/jsonlint/bin/jsonlint +117 -0
  421. data/helpers/vendor/seld/jsonlint/composer.json +24 -0
  422. data/helpers/vendor/seld/jsonlint/phpunit.xml.dist +25 -0
  423. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/DuplicateKeyException.php +26 -0
  424. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/JsonParser.php +502 -0
  425. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/Lexer.php +217 -0
  426. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/ParsingException.php +28 -0
  427. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/Undefined.php +16 -0
  428. data/helpers/vendor/seld/jsonlint/tests/JsonParserTest.php +230 -0
  429. data/helpers/vendor/seld/jsonlint/tests/bom.json +6 -0
  430. data/helpers/vendor/seld/jsonlint/tests/bootstrap.php +13 -0
  431. data/helpers/vendor/seld/phar-utils/.gitignore +1 -0
  432. data/helpers/vendor/seld/phar-utils/LICENSE +19 -0
  433. data/helpers/vendor/seld/phar-utils/README.md +39 -0
  434. data/helpers/vendor/seld/phar-utils/composer.json +26 -0
  435. data/helpers/vendor/seld/phar-utils/composer.lock +19 -0
  436. data/helpers/vendor/seld/phar-utils/src/Timestamps.php +192 -0
  437. data/helpers/vendor/symfony/console/.gitignore +3 -0
  438. data/helpers/vendor/symfony/console/Application.php +1181 -0
  439. data/helpers/vendor/symfony/console/CHANGELOG.md +140 -0
  440. data/helpers/vendor/symfony/console/Command/Command.php +654 -0
  441. data/helpers/vendor/symfony/console/Command/HelpCommand.php +81 -0
  442. data/helpers/vendor/symfony/console/Command/ListCommand.php +90 -0
  443. data/helpers/vendor/symfony/console/Command/LockableTrait.php +71 -0
  444. data/helpers/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php +37 -0
  445. data/helpers/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php +55 -0
  446. data/helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php +62 -0
  447. data/helpers/vendor/symfony/console/ConsoleEvents.php +47 -0
  448. data/helpers/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +98 -0
  449. data/helpers/vendor/symfony/console/Descriptor/ApplicationDescription.php +144 -0
  450. data/helpers/vendor/symfony/console/Descriptor/Descriptor.php +107 -0
  451. data/helpers/vendor/symfony/console/Descriptor/DescriptorInterface.php +31 -0
  452. data/helpers/vendor/symfony/console/Descriptor/JsonDescriptor.php +168 -0
  453. data/helpers/vendor/symfony/console/Descriptor/MarkdownDescriptor.php +182 -0
  454. data/helpers/vendor/symfony/console/Descriptor/TextDescriptor.php +342 -0
  455. data/helpers/vendor/symfony/console/Descriptor/XmlDescriptor.php +245 -0
  456. data/helpers/vendor/symfony/console/Event/ConsoleCommandEvent.php +60 -0
  457. data/helpers/vendor/symfony/console/Event/ConsoleErrorEvent.php +58 -0
  458. data/helpers/vendor/symfony/console/Event/ConsoleEvent.php +67 -0
  459. data/helpers/vendor/symfony/console/Event/ConsoleTerminateEvent.php +53 -0
  460. data/helpers/vendor/symfony/console/EventListener/ErrorListener.php +91 -0
  461. data/helpers/vendor/symfony/console/Exception/CommandNotFoundException.php +43 -0
  462. data/helpers/vendor/symfony/console/Exception/ExceptionInterface.php +21 -0
  463. data/helpers/vendor/symfony/console/Exception/InvalidArgumentException.php +19 -0
  464. data/helpers/vendor/symfony/console/Exception/InvalidOptionException.php +21 -0
  465. data/helpers/vendor/symfony/console/Exception/LogicException.php +19 -0
  466. data/helpers/vendor/symfony/console/Exception/NamespaceNotFoundException.php +21 -0
  467. data/helpers/vendor/symfony/console/Exception/RuntimeException.php +19 -0
  468. data/helpers/vendor/symfony/console/Formatter/OutputFormatter.php +282 -0
  469. data/helpers/vendor/symfony/console/Formatter/OutputFormatterInterface.php +71 -0
  470. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyle.php +203 -0
  471. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +62 -0
  472. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +110 -0
  473. data/helpers/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php +25 -0
  474. data/helpers/vendor/symfony/console/Helper/DebugFormatterHelper.php +127 -0
  475. data/helpers/vendor/symfony/console/Helper/DescriptorHelper.php +94 -0
  476. data/helpers/vendor/symfony/console/Helper/FormatterHelper.php +106 -0
  477. data/helpers/vendor/symfony/console/Helper/Helper.php +138 -0
  478. data/helpers/vendor/symfony/console/Helper/HelperInterface.php +39 -0
  479. data/helpers/vendor/symfony/console/Helper/HelperSet.php +108 -0
  480. data/helpers/vendor/symfony/console/Helper/InputAwareHelper.php +33 -0
  481. data/helpers/vendor/symfony/console/Helper/ProcessHelper.php +156 -0
  482. data/helpers/vendor/symfony/console/Helper/ProgressBar.php +527 -0
  483. data/helpers/vendor/symfony/console/Helper/ProgressIndicator.php +269 -0
  484. data/helpers/vendor/symfony/console/Helper/QuestionHelper.php +447 -0
  485. data/helpers/vendor/symfony/console/Helper/SymfonyQuestionHelper.php +96 -0
  486. data/helpers/vendor/symfony/console/Helper/Table.php +813 -0
  487. data/helpers/vendor/symfony/console/Helper/TableCell.php +68 -0
  488. data/helpers/vendor/symfony/console/Helper/TableRows.php +32 -0
  489. data/helpers/vendor/symfony/console/Helper/TableSeparator.php +25 -0
  490. data/helpers/vendor/symfony/console/Helper/TableStyle.php +458 -0
  491. data/helpers/vendor/symfony/console/Input/ArgvInput.php +365 -0
  492. data/helpers/vendor/symfony/console/Input/ArrayInput.php +206 -0
  493. data/helpers/vendor/symfony/console/Input/Input.php +203 -0
  494. data/helpers/vendor/symfony/console/Input/InputArgument.php +129 -0
  495. data/helpers/vendor/symfony/console/Input/InputAwareInterface.php +26 -0
  496. data/helpers/vendor/symfony/console/Input/InputDefinition.php +404 -0
  497. data/helpers/vendor/symfony/console/Input/InputInterface.php +163 -0
  498. data/helpers/vendor/symfony/console/Input/InputOption.php +208 -0
  499. data/helpers/vendor/symfony/console/Input/StreamableInputInterface.php +37 -0
  500. data/helpers/vendor/symfony/console/Input/StringInput.php +72 -0
  501. data/helpers/vendor/symfony/console/LICENSE +19 -0
  502. data/helpers/vendor/symfony/console/Logger/ConsoleLogger.php +124 -0
  503. data/helpers/vendor/symfony/console/Output/BufferedOutput.php +45 -0
  504. data/helpers/vendor/symfony/console/Output/ConsoleOutput.php +161 -0
  505. data/helpers/vendor/symfony/console/Output/ConsoleOutputInterface.php +32 -0
  506. data/helpers/vendor/symfony/console/Output/ConsoleSectionOutput.php +141 -0
  507. data/helpers/vendor/symfony/console/Output/NullOutput.php +123 -0
  508. data/helpers/vendor/symfony/console/Output/Output.php +177 -0
  509. data/helpers/vendor/symfony/console/Output/OutputInterface.php +114 -0
  510. data/helpers/vendor/symfony/console/Output/StreamOutput.php +124 -0
  511. data/helpers/vendor/symfony/console/Question/ChoiceQuestion.php +184 -0
  512. data/helpers/vendor/symfony/console/Question/ConfirmationQuestion.php +59 -0
  513. data/helpers/vendor/symfony/console/Question/Question.php +246 -0
  514. data/helpers/vendor/symfony/console/README.md +20 -0
  515. data/helpers/vendor/symfony/console/Resources/bin/hiddeninput.exe +0 -0
  516. data/helpers/vendor/symfony/console/Style/OutputStyle.php +155 -0
  517. data/helpers/vendor/symfony/console/Style/StyleInterface.php +154 -0
  518. data/helpers/vendor/symfony/console/Style/SymfonyStyle.php +438 -0
  519. data/helpers/vendor/symfony/console/Terminal.php +137 -0
  520. data/helpers/vendor/symfony/console/Tester/ApplicationTester.php +77 -0
  521. data/helpers/vendor/symfony/console/Tester/CommandTester.php +78 -0
  522. data/helpers/vendor/symfony/console/Tester/TesterTrait.php +177 -0
  523. data/helpers/vendor/symfony/console/Tests/ApplicationTest.php +1814 -0
  524. data/helpers/vendor/symfony/console/Tests/Command/CommandTest.php +436 -0
  525. data/helpers/vendor/symfony/console/Tests/Command/HelpCommandTest.php +71 -0
  526. data/helpers/vendor/symfony/console/Tests/Command/ListCommandTest.php +113 -0
  527. data/helpers/vendor/symfony/console/Tests/Command/LockableTraitTest.php +67 -0
  528. data/helpers/vendor/symfony/console/Tests/CommandLoader/ContainerCommandLoaderTest.php +61 -0
  529. data/helpers/vendor/symfony/console/Tests/CommandLoader/FactoryCommandLoaderTest.php +60 -0
  530. data/helpers/vendor/symfony/console/Tests/DependencyInjection/AddConsoleCommandPassTest.php +258 -0
  531. data/helpers/vendor/symfony/console/Tests/Descriptor/AbstractDescriptorTest.php +107 -0
  532. data/helpers/vendor/symfony/console/Tests/Descriptor/JsonDescriptorTest.php +35 -0
  533. data/helpers/vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php +45 -0
  534. data/helpers/vendor/symfony/console/Tests/Descriptor/ObjectsProvider.php +82 -0
  535. data/helpers/vendor/symfony/console/Tests/Descriptor/TextDescriptorTest.php +53 -0
  536. data/helpers/vendor/symfony/console/Tests/Descriptor/XmlDescriptorTest.php +27 -0
  537. data/helpers/vendor/symfony/console/Tests/EventListener/ErrorListenerTest.php +156 -0
  538. data/helpers/vendor/symfony/console/Tests/Fixtures/BarBucCommand.php +11 -0
  539. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplication1.php +18 -0
  540. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplication2.php +26 -0
  541. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplicationMbString.php +24 -0
  542. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand1.php +27 -0
  543. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand2.php +32 -0
  544. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand3.php +27 -0
  545. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand4.php +25 -0
  546. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommandMbString.php +32 -0
  547. data/helpers/vendor/symfony/console/Tests/Fixtures/DummyOutput.php +36 -0
  548. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo1Command.php +26 -0
  549. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo2Command.php +21 -0
  550. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo3Command.php +29 -0
  551. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo4Command.php +11 -0
  552. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo5Command.php +10 -0
  553. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo6Command.php +11 -0
  554. data/helpers/vendor/symfony/console/Tests/Fixtures/FooCommand.php +33 -0
  555. data/helpers/vendor/symfony/console/Tests/Fixtures/FooLock2Command.php +28 -0
  556. data/helpers/vendor/symfony/console/Tests/Fixtures/FooLockCommand.php +27 -0
  557. data/helpers/vendor/symfony/console/Tests/Fixtures/FooOptCommand.php +36 -0
  558. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSameCaseLowercaseCommand.php +11 -0
  559. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSameCaseUppercaseCommand.php +11 -0
  560. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced1Command.php +26 -0
  561. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced2Command.php +26 -0
  562. data/helpers/vendor/symfony/console/Tests/Fixtures/FooWithoutAliasCommand.php +21 -0
  563. data/helpers/vendor/symfony/console/Tests/Fixtures/FoobarCommand.php +25 -0
  564. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_0.php +11 -0
  565. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_1.php +13 -0
  566. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_10.php +17 -0
  567. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_11.php +12 -0
  568. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_12.php +13 -0
  569. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_13.php +14 -0
  570. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_14.php +17 -0
  571. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_15.php +14 -0
  572. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_16.php +15 -0
  573. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_17.php +13 -0
  574. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_2.php +16 -0
  575. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_3.php +12 -0
  576. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4.php +34 -0
  577. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4_with_iterators.php +34 -0
  578. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_5.php +37 -0
  579. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_6.php +16 -0
  580. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_7.php +15 -0
  581. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_8.php +26 -0
  582. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_9.php +11 -0
  583. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/interactive_command_1.php +19 -0
  584. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/interactive_output_1.txt +7 -0
  585. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_0.txt +3 -0
  586. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_1.txt +9 -0
  587. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_10.txt +7 -0
  588. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_11.txt +4 -0
  589. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_12.txt +6 -0
  590. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_13.txt +7 -0
  591. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_14.txt +6 -0
  592. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_15.txt +7 -0
  593. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_16.txt +8 -0
  594. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_17.txt +7 -0
  595. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_2.txt +13 -0
  596. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_3.txt +7 -0
  597. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4.txt +32 -0
  598. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4_with_iterators.txt +32 -0
  599. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_5.txt +18 -0
  600. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_6.txt +6 -0
  601. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_7.txt +5 -0
  602. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_8.txt +9 -0
  603. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_9.txt +5 -0
  604. data/helpers/vendor/symfony/console/Tests/Fixtures/TestCommand.php +28 -0
  605. data/helpers/vendor/symfony/console/Tests/Fixtures/TestTiti.php +21 -0
  606. data/helpers/vendor/symfony/console/Tests/Fixtures/TestToto.php +22 -0
  607. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.json +156 -0
  608. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.md +172 -0
  609. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.txt +17 -0
  610. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.xml +104 -0
  611. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.json +509 -0
  612. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.md +431 -0
  613. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.txt +21 -0
  614. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.xml +254 -0
  615. data/helpers/vendor/symfony/console/Tests/Fixtures/application_filtered_namespace.txt +16 -0
  616. data/helpers/vendor/symfony/console/Tests/Fixtures/application_gethelp.txt +1 -0
  617. data/helpers/vendor/symfony/console/Tests/Fixtures/application_mbstring.md +269 -0
  618. data/helpers/vendor/symfony/console/Tests/Fixtures/application_mbstring.txt +19 -0
  619. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception1.txt +5 -0
  620. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception2.txt +7 -0
  621. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception3.txt +18 -0
  622. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception3decorated.txt +18 -0
  623. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception4.txt +6 -0
  624. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1.txt +8 -0
  625. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1decorated.txt +8 -0
  626. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth2.txt +9 -0
  627. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_escapeslines.txt +9 -0
  628. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_linebreaks.txt +11 -0
  629. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run1.txt +17 -0
  630. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run2.txt +29 -0
  631. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run3.txt +29 -0
  632. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run4.txt +1 -0
  633. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.json +15 -0
  634. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.md +12 -0
  635. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.txt +10 -0
  636. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.xml +12 -0
  637. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.json +33 -0
  638. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.md +29 -0
  639. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.txt +16 -0
  640. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.xml +21 -0
  641. data/helpers/vendor/symfony/console/Tests/Fixtures/command_mbstring.md +29 -0
  642. data/helpers/vendor/symfony/console/Tests/Fixtures/command_mbstring.txt +16 -0
  643. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.json +7 -0
  644. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.md +5 -0
  645. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.txt +1 -0
  646. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.xml +5 -0
  647. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.json +7 -0
  648. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.md +7 -0
  649. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.txt +1 -0
  650. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.xml +5 -0
  651. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.json +7 -0
  652. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.md +7 -0
  653. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.txt +1 -0
  654. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.xml +7 -0
  655. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.json +7 -0
  656. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.md +8 -0
  657. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.txt +2 -0
  658. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.xml +6 -0
  659. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.json +7 -0
  660. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.md +7 -0
  661. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.txt +1 -0
  662. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.xml +7 -0
  663. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.json +7 -0
  664. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.md +7 -0
  665. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.txt +1 -0
  666. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.xml +7 -0
  667. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.json +4 -0
  668. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.md +0 -0
  669. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.txt +0 -0
  670. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.xml +5 -0
  671. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.json +12 -0
  672. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.md +7 -0
  673. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.txt +2 -0
  674. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.xml +10 -0
  675. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.json +14 -0
  676. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.md +8 -0
  677. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.txt +2 -0
  678. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.xml +9 -0
  679. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.json +22 -0
  680. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.md +16 -0
  681. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.txt +5 -0
  682. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.xml +14 -0
  683. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.json +9 -0
  684. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.md +6 -0
  685. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.txt +1 -0
  686. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.xml +4 -0
  687. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.json +9 -0
  688. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.md +8 -0
  689. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.txt +1 -0
  690. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.xml +7 -0
  691. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.json +9 -0
  692. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.md +8 -0
  693. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.txt +1 -0
  694. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.xml +5 -0
  695. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.json +9 -0
  696. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.md +8 -0
  697. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.txt +1 -0
  698. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.xml +5 -0
  699. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.json +9 -0
  700. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.md +9 -0
  701. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.txt +2 -0
  702. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.xml +6 -0
  703. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.json +9 -0
  704. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.md +8 -0
  705. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.txt +1 -0
  706. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.xml +5 -0
  707. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.json +9 -0
  708. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.md +8 -0
  709. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.txt +1 -0
  710. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.xml +7 -0
  711. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.json +9 -0
  712. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.md +8 -0
  713. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.txt +1 -0
  714. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.xml +7 -0
  715. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.json +12 -0
  716. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.md +8 -0
  717. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.txt +1 -0
  718. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.xml +8 -0
  719. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleStackTest.php +71 -0
  720. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleTest.php +100 -0
  721. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterTest.php +355 -0
  722. data/helpers/vendor/symfony/console/Tests/Helper/AbstractQuestionHelperTest.php +34 -0
  723. data/helpers/vendor/symfony/console/Tests/Helper/FormatterHelperTest.php +129 -0
  724. data/helpers/vendor/symfony/console/Tests/Helper/HelperSetTest.php +127 -0
  725. data/helpers/vendor/symfony/console/Tests/Helper/HelperTest.php +55 -0
  726. data/helpers/vendor/symfony/console/Tests/Helper/ProcessHelperTest.php +133 -0
  727. data/helpers/vendor/symfony/console/Tests/Helper/ProgressBarTest.php +912 -0
  728. data/helpers/vendor/symfony/console/Tests/Helper/ProgressIndicatorTest.php +183 -0
  729. data/helpers/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php +715 -0
  730. data/helpers/vendor/symfony/console/Tests/Helper/SymfonyQuestionHelperTest.php +168 -0
  731. data/helpers/vendor/symfony/console/Tests/Helper/TableStyleTest.php +28 -0
  732. data/helpers/vendor/symfony/console/Tests/Helper/TableTest.php +1199 -0
  733. data/helpers/vendor/symfony/console/Tests/Input/ArgvInputTest.php +466 -0
  734. data/helpers/vendor/symfony/console/Tests/Input/ArrayInputTest.php +177 -0
  735. data/helpers/vendor/symfony/console/Tests/Input/InputArgumentTest.php +103 -0
  736. data/helpers/vendor/symfony/console/Tests/Input/InputDefinitionTest.php +407 -0
  737. data/helpers/vendor/symfony/console/Tests/Input/InputOptionTest.php +196 -0
  738. data/helpers/vendor/symfony/console/Tests/Input/InputTest.php +149 -0
  739. data/helpers/vendor/symfony/console/Tests/Input/StringInputTest.php +87 -0
  740. data/helpers/vendor/symfony/console/Tests/Logger/ConsoleLoggerTest.php +215 -0
  741. data/helpers/vendor/symfony/console/Tests/Output/ConsoleOutputTest.php +42 -0
  742. data/helpers/vendor/symfony/console/Tests/Output/ConsoleSectionOutputTest.php +163 -0
  743. data/helpers/vendor/symfony/console/Tests/Output/NullOutputTest.php +88 -0
  744. data/helpers/vendor/symfony/console/Tests/Output/OutputTest.php +189 -0
  745. data/helpers/vendor/symfony/console/Tests/Output/StreamOutputTest.php +61 -0
  746. data/helpers/vendor/symfony/console/Tests/Question/ConfirmationQuestionTest.php +62 -0
  747. data/helpers/vendor/symfony/console/Tests/Style/SymfonyStyleTest.php +118 -0
  748. data/helpers/vendor/symfony/console/Tests/TerminalTest.php +59 -0
  749. data/helpers/vendor/symfony/console/Tests/Tester/ApplicationTesterTest.php +113 -0
  750. data/helpers/vendor/symfony/console/Tests/Tester/CommandTesterTest.php +235 -0
  751. data/helpers/vendor/symfony/console/composer.json +56 -0
  752. data/helpers/vendor/symfony/console/phpunit.xml.dist +41 -0
  753. data/helpers/vendor/symfony/contracts/.gitignore +3 -0
  754. data/helpers/vendor/symfony/contracts/CHANGELOG.md +12 -0
  755. data/helpers/vendor/symfony/contracts/Cache/CacheInterface.php +57 -0
  756. data/helpers/vendor/symfony/contracts/Cache/CacheTrait.php +71 -0
  757. data/helpers/vendor/symfony/contracts/Cache/CallbackInterface.php +30 -0
  758. data/helpers/vendor/symfony/contracts/Cache/ItemInterface.php +60 -0
  759. data/helpers/vendor/symfony/contracts/Cache/TagAwareCacheInterface.php +38 -0
  760. data/helpers/vendor/symfony/contracts/LICENSE +19 -0
  761. data/helpers/vendor/symfony/contracts/README.md +70 -0
  762. data/helpers/vendor/symfony/contracts/Service/ResetInterface.php +30 -0
  763. data/helpers/vendor/symfony/contracts/Service/ServiceLocatorTrait.php +97 -0
  764. data/helpers/vendor/symfony/contracts/Service/ServiceSubscriberInterface.php +53 -0
  765. data/helpers/vendor/symfony/contracts/Service/ServiceSubscriberTrait.php +61 -0
  766. data/helpers/vendor/symfony/contracts/Tests/Cache/CacheTraitTest.php +165 -0
  767. data/helpers/vendor/symfony/contracts/Tests/Service/ServiceLocatorTest.php +94 -0
  768. data/helpers/vendor/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php +65 -0
  769. data/helpers/vendor/symfony/contracts/Tests/Translation/TranslatorTest.php +353 -0
  770. data/helpers/vendor/symfony/contracts/Translation/LocaleAwareInterface.php +31 -0
  771. data/helpers/vendor/symfony/contracts/Translation/TranslatorInterface.php +65 -0
  772. data/helpers/vendor/symfony/contracts/Translation/TranslatorTrait.php +255 -0
  773. data/helpers/vendor/symfony/contracts/composer.json +44 -0
  774. data/helpers/vendor/symfony/contracts/phpunit.xml.dist +31 -0
  775. data/helpers/vendor/symfony/filesystem/.gitignore +3 -0
  776. data/helpers/vendor/symfony/filesystem/CHANGELOG.md +59 -0
  777. data/helpers/vendor/symfony/filesystem/Exception/ExceptionInterface.php +21 -0
  778. data/helpers/vendor/symfony/filesystem/Exception/FileNotFoundException.php +34 -0
  779. data/helpers/vendor/symfony/filesystem/Exception/IOException.php +39 -0
  780. data/helpers/vendor/symfony/filesystem/Exception/IOExceptionInterface.php +27 -0
  781. data/helpers/vendor/symfony/filesystem/Exception/InvalidArgumentException.php +19 -0
  782. data/helpers/vendor/symfony/filesystem/Filesystem.php +767 -0
  783. data/helpers/vendor/symfony/filesystem/LICENSE +19 -0
  784. data/helpers/vendor/symfony/filesystem/README.md +13 -0
  785. data/helpers/vendor/symfony/filesystem/Tests/ExceptionTest.php +47 -0
  786. data/helpers/vendor/symfony/filesystem/Tests/FilesystemTest.php +1686 -0
  787. data/helpers/vendor/symfony/filesystem/Tests/FilesystemTestCase.php +166 -0
  788. data/helpers/vendor/symfony/filesystem/Tests/Fixtures/MockStream/MockStream.php +46 -0
  789. data/helpers/vendor/symfony/filesystem/composer.json +34 -0
  790. data/helpers/vendor/symfony/filesystem/phpunit.xml.dist +30 -0
  791. data/helpers/vendor/symfony/finder/.gitignore +3 -0
  792. data/helpers/vendor/symfony/finder/CHANGELOG.md +69 -0
  793. data/helpers/vendor/symfony/finder/Comparator/Comparator.php +98 -0
  794. data/helpers/vendor/symfony/finder/Comparator/DateComparator.php +51 -0
  795. data/helpers/vendor/symfony/finder/Comparator/NumberComparator.php +79 -0
  796. data/helpers/vendor/symfony/finder/Exception/AccessDeniedException.php +19 -0
  797. data/helpers/vendor/symfony/finder/Finder.php +783 -0
  798. data/helpers/vendor/symfony/finder/Glob.php +116 -0
  799. data/helpers/vendor/symfony/finder/Iterator/CustomFilterIterator.php +61 -0
  800. data/helpers/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php +58 -0
  801. data/helpers/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php +45 -0
  802. data/helpers/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +84 -0
  803. data/helpers/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php +53 -0
  804. data/helpers/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php +58 -0
  805. data/helpers/vendor/symfony/finder/Iterator/FilenameFilterIterator.php +47 -0
  806. data/helpers/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +112 -0
  807. data/helpers/vendor/symfony/finder/Iterator/PathFilterIterator.php +56 -0
  808. data/helpers/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +140 -0
  809. data/helpers/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php +57 -0
  810. data/helpers/vendor/symfony/finder/Iterator/SortableIterator.php +99 -0
  811. data/helpers/vendor/symfony/finder/LICENSE +19 -0
  812. data/helpers/vendor/symfony/finder/README.md +14 -0
  813. data/helpers/vendor/symfony/finder/SplFileInfo.php +78 -0
  814. data/helpers/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php +65 -0
  815. data/helpers/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php +64 -0
  816. data/helpers/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php +108 -0
  817. data/helpers/vendor/symfony/finder/Tests/FinderTest.php +1384 -0
  818. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/a +0 -0
  819. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/b/c.neon +0 -0
  820. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/b/d.neon +0 -0
  821. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat +0 -0
  822. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat +0 -0
  823. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/a.dat +0 -0
  824. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy +0 -0
  825. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy +0 -0
  826. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy +0 -0
  827. data/helpers/vendor/symfony/finder/Tests/Fixtures/dolor.txt +2 -0
  828. data/helpers/vendor/symfony/finder/Tests/Fixtures/ipsum.txt +2 -0
  829. data/helpers/vendor/symfony/finder/Tests/Fixtures/lorem.txt +2 -0
  830. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/.dot +1 -0
  831. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/a +0 -0
  832. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon +0 -0
  833. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon +0 -0
  834. data/helpers/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat +0 -0
  835. data/helpers/vendor/symfony/finder/Tests/Fixtures/with space/foo.txt b/data/helpers/vendor/symfony/finder/Tests/Fixtures/with → space/foo.txt +0 -0
  836. data/helpers/vendor/symfony/finder/Tests/GlobTest.php +95 -0
  837. data/helpers/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php +46 -0
  838. data/helpers/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php +92 -0
  839. data/helpers/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php +103 -0
  840. data/helpers/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php +107 -0
  841. data/helpers/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php +82 -0
  842. data/helpers/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php +86 -0
  843. data/helpers/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php +54 -0
  844. data/helpers/vendor/symfony/finder/Tests/Iterator/Iterator.php +55 -0
  845. data/helpers/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php +100 -0
  846. data/helpers/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php +21 -0
  847. data/helpers/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php +132 -0
  848. data/helpers/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php +71 -0
  849. data/helpers/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php +82 -0
  850. data/helpers/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php +128 -0
  851. data/helpers/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php +59 -0
  852. data/helpers/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php +70 -0
  853. data/helpers/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php +262 -0
  854. data/helpers/vendor/symfony/finder/composer.json +33 -0
  855. data/helpers/vendor/symfony/finder/phpunit.xml.dist +30 -0
  856. data/helpers/vendor/symfony/polyfill-ctype/Ctype.php +227 -0
  857. data/helpers/vendor/symfony/polyfill-ctype/LICENSE +19 -0
  858. data/helpers/vendor/symfony/polyfill-ctype/README.md +12 -0
  859. data/helpers/vendor/symfony/polyfill-ctype/bootstrap.php +26 -0
  860. data/helpers/vendor/symfony/polyfill-ctype/composer.json +34 -0
  861. data/helpers/vendor/symfony/polyfill-mbstring/LICENSE +19 -0
  862. data/helpers/vendor/symfony/polyfill-mbstring/Mbstring.php +800 -0
  863. data/helpers/vendor/symfony/polyfill-mbstring/README.md +13 -0
  864. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1096 -0
  865. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -0
  866. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1104 -0
  867. data/helpers/vendor/symfony/polyfill-mbstring/bootstrap.php +58 -0
  868. data/helpers/vendor/symfony/polyfill-mbstring/composer.json +34 -0
  869. data/helpers/vendor/symfony/process/.gitignore +3 -0
  870. data/helpers/vendor/symfony/process/CHANGELOG.md +90 -0
  871. data/helpers/vendor/symfony/process/Exception/ExceptionInterface.php +21 -0
  872. data/helpers/vendor/symfony/process/Exception/InvalidArgumentException.php +21 -0
  873. data/helpers/vendor/symfony/process/Exception/LogicException.php +21 -0
  874. data/helpers/vendor/symfony/process/Exception/ProcessFailedException.php +54 -0
  875. data/helpers/vendor/symfony/process/Exception/ProcessSignaledException.php +41 -0
  876. data/helpers/vendor/symfony/process/Exception/ProcessTimedOutException.php +69 -0
  877. data/helpers/vendor/symfony/process/Exception/RuntimeException.php +21 -0
  878. data/helpers/vendor/symfony/process/ExecutableFinder.php +88 -0
  879. data/helpers/vendor/symfony/process/InputStream.php +90 -0
  880. data/helpers/vendor/symfony/process/LICENSE +19 -0
  881. data/helpers/vendor/symfony/process/PhpExecutableFinder.php +101 -0
  882. data/helpers/vendor/symfony/process/PhpProcess.php +75 -0
  883. data/helpers/vendor/symfony/process/Pipes/AbstractPipes.php +178 -0
  884. data/helpers/vendor/symfony/process/Pipes/PipesInterface.php +67 -0
  885. data/helpers/vendor/symfony/process/Pipes/UnixPipes.php +153 -0
  886. data/helpers/vendor/symfony/process/Pipes/WindowsPipes.php +191 -0
  887. data/helpers/vendor/symfony/process/Process.php +1652 -0
  888. data/helpers/vendor/symfony/process/ProcessUtils.php +69 -0
  889. data/helpers/vendor/symfony/process/README.md +13 -0
  890. data/helpers/vendor/symfony/process/Tests/ExecutableFinderTest.php +178 -0
  891. data/helpers/vendor/symfony/process/Tests/KillableProcessWithOutput.php +25 -0
  892. data/helpers/vendor/symfony/process/Tests/NonStopableProcess.php +47 -0
  893. data/helpers/vendor/symfony/process/Tests/PhpExecutableFinderTest.php +49 -0
  894. data/helpers/vendor/symfony/process/Tests/PhpProcessTest.php +63 -0
  895. data/helpers/vendor/symfony/process/Tests/PipeStdinInStdoutStdErrStreamSelect.php +72 -0
  896. data/helpers/vendor/symfony/process/Tests/ProcessFailedExceptionTest.php +137 -0
  897. data/helpers/vendor/symfony/process/Tests/ProcessTest.php +1537 -0
  898. data/helpers/vendor/symfony/process/Tests/SignalListener.php +21 -0
  899. data/helpers/vendor/symfony/process/composer.json +33 -0
  900. data/helpers/vendor/symfony/process/phpunit.xml.dist +30 -0
  901. metadata +902 -3
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "staabm/xhprof.io",
3
+ "autoload": {
4
+ "classmap": ["xhprof/classes"]
5
+ }
6
+ }
@@ -0,0 +1,13 @@
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the JSON Lint package.
5
+ *
6
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ $loader = require __DIR__.'/../vendor/autoload.php';
13
+ $loader->add('Seld\JsonLint\Test', __DIR__);
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2015 Jordi Boggiano
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is furnished
8
+ to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
@@ -0,0 +1,39 @@
1
+ PHAR Utils
2
+ ==========
3
+
4
+ PHAR file format utilities, for when PHP phars you up.
5
+
6
+ Installation
7
+ ------------
8
+
9
+ `composer require seld/phar-utils`
10
+
11
+ API
12
+ ---
13
+
14
+ ### `Seld\PharUtils\Timestamps`
15
+
16
+ - `__construct($pharFile)`
17
+
18
+ > Load a phar file in memory.
19
+
20
+ - `updateTimestamps($timestamp = null)`
21
+
22
+ > Updates each file's unix timestamps in the PHAR so the PHAR signature
23
+ > can be produced in a reproducible manner.
24
+
25
+ - `save($path, $signatureAlgo = '')`
26
+
27
+ > Saves the updated phar file with an updated signature.
28
+ > Algo must be one of `Phar::MD5`, `Phar::SHA1`, `Phar::SHA256`
29
+ > or `Phar::SHA512`
30
+
31
+ Requirements
32
+ ------------
33
+
34
+ PHP 5.3 and above
35
+
36
+ License
37
+ -------
38
+
39
+ PHAR Utils is licensed under the MIT License - see the LICENSE file for details
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "seld/phar-utils",
3
+ "description": "PHAR file format utilities, for when PHP phars you up",
4
+ "type": "library",
5
+ "keywords": ["phra"],
6
+ "license": "MIT",
7
+ "require": {
8
+ "php": ">=5.3"
9
+ },
10
+ "authors": [
11
+ {
12
+ "name": "Jordi Boggiano",
13
+ "email": "j.boggiano@seld.be"
14
+ }
15
+ ],
16
+ "autoload": {
17
+ "psr-4": {
18
+ "Seld\\PharUtils\\": "src/"
19
+ }
20
+ },
21
+ "extra": {
22
+ "branch-alias": {
23
+ "dev-master": "1.x-dev"
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "_readme": [
3
+ "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
+ "This file is @generated automatically"
6
+ ],
7
+ "hash": "e5afe72073d9266712c8e1ddc1648513",
8
+ "packages": [],
9
+ "packages-dev": [],
10
+ "aliases": [],
11
+ "minimum-stability": "stable",
12
+ "stability-flags": [],
13
+ "prefer-stable": false,
14
+ "prefer-lowest": false,
15
+ "platform": {
16
+ "php": ">=5.3"
17
+ },
18
+ "platform-dev": []
19
+ }
@@ -0,0 +1,192 @@
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of PHAR Utils.
5
+ *
6
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Seld\PharUtils;
13
+
14
+ class Timestamps
15
+ {
16
+ private $contents;
17
+
18
+ /**
19
+ * @param string $file path to the phar file to use
20
+ */
21
+ public function __construct($file)
22
+ {
23
+ $this->contents = file_get_contents($file);
24
+ }
25
+
26
+ /**
27
+ * Updates each file's unix timestamps in the PHAR
28
+ *
29
+ * The PHAR signature can then be produced in a reproducible manner.
30
+ *
31
+ * @param int|DateTime|string $timestamp Date string or DateTime or unix timestamp to use
32
+ */
33
+ public function updateTimestamps($timestamp = null)
34
+ {
35
+ if ($timestamp instanceof \DateTime) {
36
+ $timestamp = $timestamp->getTimestamp();
37
+ } elseif (is_string($timestamp)) {
38
+ $timestamp = strtotime($timestamp);
39
+ } elseif (!is_int($timestamp)) {
40
+ $timestamp = strtotime('1984-12-24T00:00:00Z');
41
+ }
42
+
43
+ // detect manifest offset / end of stub
44
+ if (!preg_match('{__HALT_COMPILER\(\);(?: +\?>)?\r?\n}', $this->contents, $match, PREG_OFFSET_CAPTURE)) {
45
+ throw new \RuntimeException('Could not detect the stub\'s end in the phar');
46
+ }
47
+
48
+ // set starting position and skip past manifest length
49
+ $pos = $match[0][1] + strlen($match[0][0]);
50
+ $stubEnd = $pos + $this->readUint($pos, 4);
51
+ $pos += 4;
52
+
53
+ $numFiles = $this->readUint($pos, 4);
54
+ $pos += 4;
55
+
56
+ // skip API version (YOLO)
57
+ $pos += 2;
58
+
59
+ // skip PHAR flags
60
+ $pos += 4;
61
+
62
+ $aliasLength = $this->readUint($pos, 4);
63
+ $pos += 4 + $aliasLength;
64
+
65
+ $metadataLength = $this->readUint($pos, 4);
66
+ $pos += 4 + $metadataLength;
67
+
68
+ while ($pos < $stubEnd) {
69
+ $filenameLength = $this->readUint($pos, 4);
70
+ $pos += 4 + $filenameLength;
71
+
72
+ // skip filesize
73
+ $pos += 4;
74
+
75
+ // update timestamp to a fixed value
76
+ $this->contents = substr_replace($this->contents, pack('L', $timestamp), $pos, 4);
77
+
78
+ // skip timestamp, compressed file size, crc32 checksum and file flags
79
+ $pos += 4*4;
80
+
81
+ $metadataLength = $this->readUint($pos, 4);
82
+ $pos += 4 + $metadataLength;
83
+
84
+ $numFiles--;
85
+ }
86
+
87
+ if ($numFiles !== 0) {
88
+ throw new \LogicException('All files were not processed, something must have gone wrong');
89
+ }
90
+ }
91
+
92
+ /**
93
+ * Saves the updated phar file, optionally with an updated signature.
94
+ *
95
+ * @param string $path
96
+ * @param int $signatureAlgo One of Phar::MD5, Phar::SHA1, Phar::SHA256 or Phar::SHA512
97
+ * @return bool
98
+ */
99
+ public function save($path, $signatureAlgo)
100
+ {
101
+ $pos = $this->determineSignatureBegin();
102
+
103
+ $algos = array(
104
+ \Phar::MD5 => 'md5',
105
+ \Phar::SHA1 => 'sha1',
106
+ \Phar::SHA256 => 'sha256',
107
+ \Phar::SHA512 => 'sha512',
108
+ );
109
+
110
+ if (!isset($algos[$signatureAlgo])) {
111
+ throw new \UnexpectedValueException('Invalid hash algorithm given: '.$signatureAlgo.' expected one of Phar::MD5, Phar::SHA1, Phar::SHA256 or Phar::SHA512');
112
+ }
113
+ $algo = $algos[$signatureAlgo];
114
+
115
+ // re-sign phar
116
+ // signature
117
+ $signature = hash($algo, substr($this->contents, 0, $pos), true)
118
+ // sig type
119
+ . pack('L', $signatureAlgo)
120
+ // ohai Greg & Marcus
121
+ . 'GBMB';
122
+
123
+ $this->contents = substr($this->contents, 0, $pos) . $signature;
124
+
125
+ return file_put_contents($path, $this->contents);
126
+ }
127
+
128
+ private function readUint($pos, $bytes)
129
+ {
130
+ $res = unpack("L", substr($this->contents, $pos, $bytes));
131
+
132
+ return $res[1];
133
+ }
134
+
135
+ /**
136
+ * Determine the beginning of the signature.
137
+ *
138
+ * @return int
139
+ */
140
+ private function determineSignatureBegin()
141
+ {
142
+ // detect signature position
143
+ if (!preg_match('{__HALT_COMPILER\(\);(?: +\?>)?\r?\n}', $this->contents, $match, PREG_OFFSET_CAPTURE)) {
144
+ throw new \RuntimeException('Could not detect the stub\'s end in the phar');
145
+ }
146
+
147
+ // set starting position and skip past manifest length
148
+ $pos = $match[0][1] + strlen($match[0][0]);
149
+ $stubEnd = $pos + $this->readUint($pos, 4);
150
+
151
+ $pos += 4;
152
+ $numFiles = $this->readUint($pos, 4);
153
+
154
+ $pos += 4;
155
+
156
+ // skip API version (YOLO)
157
+ $pos += 2;
158
+
159
+ // skip PHAR flags
160
+ $pos += 4;
161
+
162
+ $aliasLength = $this->readUint($pos, 4);
163
+ $pos += 4 + $aliasLength;
164
+
165
+ $metadataLength = $this->readUint($pos, 4);
166
+ $pos += 4 + $metadataLength;
167
+
168
+ $compressedSizes = 0;
169
+ while ($pos < $stubEnd) {
170
+ $filenameLength = $this->readUint($pos, 4);
171
+ $pos += 4 + $filenameLength;
172
+
173
+ // skip filesize and timestamp
174
+ $pos += 2*4;
175
+
176
+ $compressedSizes += $this->readUint($pos, 4);
177
+ // skip compressed file size, crc32 checksum and file flags
178
+ $pos += 3*4;
179
+
180
+ $metadataLength = $this->readUint($pos, 4);
181
+ $pos += 4 + $metadataLength;
182
+
183
+ $numFiles--;
184
+ }
185
+
186
+ if ($numFiles !== 0) {
187
+ throw new \LogicException('All files were not processed, something must have gone wrong');
188
+ }
189
+
190
+ return $pos + $compressedSizes;
191
+ }
192
+ }
@@ -0,0 +1,3 @@
1
+ vendor/
2
+ composer.lock
3
+ phpunit.xml
@@ -0,0 +1,1181 @@
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of the Symfony package.
5
+ *
6
+ * (c) Fabien Potencier <fabien@symfony.com>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Symfony\Component\Console;
13
+
14
+ use Symfony\Component\Console\Command\Command;
15
+ use Symfony\Component\Console\Command\HelpCommand;
16
+ use Symfony\Component\Console\Command\ListCommand;
17
+ use Symfony\Component\Console\CommandLoader\CommandLoaderInterface;
18
+ use Symfony\Component\Console\Event\ConsoleCommandEvent;
19
+ use Symfony\Component\Console\Event\ConsoleErrorEvent;
20
+ use Symfony\Component\Console\Event\ConsoleTerminateEvent;
21
+ use Symfony\Component\Console\Exception\CommandNotFoundException;
22
+ use Symfony\Component\Console\Exception\ExceptionInterface;
23
+ use Symfony\Component\Console\Exception\LogicException;
24
+ use Symfony\Component\Console\Exception\NamespaceNotFoundException;
25
+ use Symfony\Component\Console\Formatter\OutputFormatter;
26
+ use Symfony\Component\Console\Helper\DebugFormatterHelper;
27
+ use Symfony\Component\Console\Helper\FormatterHelper;
28
+ use Symfony\Component\Console\Helper\Helper;
29
+ use Symfony\Component\Console\Helper\HelperSet;
30
+ use Symfony\Component\Console\Helper\ProcessHelper;
31
+ use Symfony\Component\Console\Helper\QuestionHelper;
32
+ use Symfony\Component\Console\Input\ArgvInput;
33
+ use Symfony\Component\Console\Input\ArrayInput;
34
+ use Symfony\Component\Console\Input\InputArgument;
35
+ use Symfony\Component\Console\Input\InputAwareInterface;
36
+ use Symfony\Component\Console\Input\InputDefinition;
37
+ use Symfony\Component\Console\Input\InputInterface;
38
+ use Symfony\Component\Console\Input\InputOption;
39
+ use Symfony\Component\Console\Input\StreamableInputInterface;
40
+ use Symfony\Component\Console\Output\ConsoleOutput;
41
+ use Symfony\Component\Console\Output\ConsoleOutputInterface;
42
+ use Symfony\Component\Console\Output\OutputInterface;
43
+ use Symfony\Component\Console\Style\SymfonyStyle;
44
+ use Symfony\Component\Debug\ErrorHandler;
45
+ use Symfony\Component\Debug\Exception\FatalThrowableError;
46
+ use Symfony\Component\EventDispatcher\EventDispatcherInterface;
47
+
48
+ /**
49
+ * An Application is the container for a collection of commands.
50
+ *
51
+ * It is the main entry point of a Console application.
52
+ *
53
+ * This class is optimized for a standard CLI environment.
54
+ *
55
+ * Usage:
56
+ *
57
+ * $app = new Application('myapp', '1.0 (stable)');
58
+ * $app->add(new SimpleCommand());
59
+ * $app->run();
60
+ *
61
+ * @author Fabien Potencier <fabien@symfony.com>
62
+ */
63
+ class Application
64
+ {
65
+ private $commands = [];
66
+ private $wantHelps = false;
67
+ private $runningCommand;
68
+ private $name;
69
+ private $version;
70
+ private $commandLoader;
71
+ private $catchExceptions = true;
72
+ private $autoExit = true;
73
+ private $definition;
74
+ private $helperSet;
75
+ private $dispatcher;
76
+ private $terminal;
77
+ private $defaultCommand;
78
+ private $singleCommand = false;
79
+ private $initialized;
80
+
81
+ /**
82
+ * @param string $name The name of the application
83
+ * @param string $version The version of the application
84
+ */
85
+ public function __construct(string $name = 'UNKNOWN', string $version = 'UNKNOWN')
86
+ {
87
+ $this->name = $name;
88
+ $this->version = $version;
89
+ $this->terminal = new Terminal();
90
+ $this->defaultCommand = 'list';
91
+ }
92
+
93
+ public function setDispatcher(EventDispatcherInterface $dispatcher)
94
+ {
95
+ $this->dispatcher = $dispatcher;
96
+ }
97
+
98
+ public function setCommandLoader(CommandLoaderInterface $commandLoader)
99
+ {
100
+ $this->commandLoader = $commandLoader;
101
+ }
102
+
103
+ /**
104
+ * Runs the current application.
105
+ *
106
+ * @return int 0 if everything went fine, or an error code
107
+ *
108
+ * @throws \Exception When running fails. Bypass this when {@link setCatchExceptions()}.
109
+ */
110
+ public function run(InputInterface $input = null, OutputInterface $output = null)
111
+ {
112
+ putenv('LINES='.$this->terminal->getHeight());
113
+ putenv('COLUMNS='.$this->terminal->getWidth());
114
+
115
+ if (null === $input) {
116
+ $input = new ArgvInput();
117
+ }
118
+
119
+ if (null === $output) {
120
+ $output = new ConsoleOutput();
121
+ }
122
+
123
+ $renderException = function ($e) use ($output) {
124
+ if (!$e instanceof \Exception) {
125
+ $e = class_exists(FatalThrowableError::class) ? new FatalThrowableError($e) : new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine());
126
+ }
127
+ if ($output instanceof ConsoleOutputInterface) {
128
+ $this->renderException($e, $output->getErrorOutput());
129
+ } else {
130
+ $this->renderException($e, $output);
131
+ }
132
+ };
133
+ if ($phpHandler = set_exception_handler($renderException)) {
134
+ restore_exception_handler();
135
+ if (!\is_array($phpHandler) || !$phpHandler[0] instanceof ErrorHandler) {
136
+ $debugHandler = true;
137
+ } elseif ($debugHandler = $phpHandler[0]->setExceptionHandler($renderException)) {
138
+ $phpHandler[0]->setExceptionHandler($debugHandler);
139
+ }
140
+ }
141
+
142
+ $this->configureIO($input, $output);
143
+
144
+ try {
145
+ $exitCode = $this->doRun($input, $output);
146
+ } catch (\Exception $e) {
147
+ if (!$this->catchExceptions) {
148
+ throw $e;
149
+ }
150
+
151
+ $renderException($e);
152
+
153
+ $exitCode = $e->getCode();
154
+ if (is_numeric($exitCode)) {
155
+ $exitCode = (int) $exitCode;
156
+ if (0 === $exitCode) {
157
+ $exitCode = 1;
158
+ }
159
+ } else {
160
+ $exitCode = 1;
161
+ }
162
+ } finally {
163
+ // if the exception handler changed, keep it
164
+ // otherwise, unregister $renderException
165
+ if (!$phpHandler) {
166
+ if (set_exception_handler($renderException) === $renderException) {
167
+ restore_exception_handler();
168
+ }
169
+ restore_exception_handler();
170
+ } elseif (!$debugHandler) {
171
+ $finalHandler = $phpHandler[0]->setExceptionHandler(null);
172
+ if ($finalHandler !== $renderException) {
173
+ $phpHandler[0]->setExceptionHandler($finalHandler);
174
+ }
175
+ }
176
+ }
177
+
178
+ if ($this->autoExit) {
179
+ if ($exitCode > 255) {
180
+ $exitCode = 255;
181
+ }
182
+
183
+ exit($exitCode);
184
+ }
185
+
186
+ return $exitCode;
187
+ }
188
+
189
+ /**
190
+ * Runs the current application.
191
+ *
192
+ * @return int 0 if everything went fine, or an error code
193
+ */
194
+ public function doRun(InputInterface $input, OutputInterface $output)
195
+ {
196
+ if (true === $input->hasParameterOption(['--version', '-V'], true)) {
197
+ $output->writeln($this->getLongVersion());
198
+
199
+ return 0;
200
+ }
201
+
202
+ try {
203
+ // Makes ArgvInput::getFirstArgument() able to distinguish an option from an argument.
204
+ $input->bind($this->getDefinition());
205
+ } catch (ExceptionInterface $e) {
206
+ // Errors must be ignored, full binding/validation happens later when the command is known.
207
+ }
208
+
209
+ $name = $this->getCommandName($input);
210
+ if (true === $input->hasParameterOption(['--help', '-h'], true)) {
211
+ if (!$name) {
212
+ $name = 'help';
213
+ $input = new ArrayInput(['command_name' => $this->defaultCommand]);
214
+ } else {
215
+ $this->wantHelps = true;
216
+ }
217
+ }
218
+
219
+ if (!$name) {
220
+ $name = $this->defaultCommand;
221
+ $definition = $this->getDefinition();
222
+ $definition->setArguments(array_merge(
223
+ $definition->getArguments(),
224
+ [
225
+ 'command' => new InputArgument('command', InputArgument::OPTIONAL, $definition->getArgument('command')->getDescription(), $name),
226
+ ]
227
+ ));
228
+ }
229
+
230
+ try {
231
+ $this->runningCommand = null;
232
+ // the command name MUST be the first element of the input
233
+ $command = $this->find($name);
234
+ } catch (\Throwable $e) {
235
+ if (!($e instanceof CommandNotFoundException && !$e instanceof NamespaceNotFoundException) || 1 !== \count($alternatives = $e->getAlternatives()) || !$input->isInteractive()) {
236
+ if (null !== $this->dispatcher) {
237
+ $event = new ConsoleErrorEvent($input, $output, $e);
238
+ $this->dispatcher->dispatch(ConsoleEvents::ERROR, $event);
239
+
240
+ if (0 === $event->getExitCode()) {
241
+ return 0;
242
+ }
243
+
244
+ $e = $event->getError();
245
+ }
246
+
247
+ throw $e;
248
+ }
249
+
250
+ $alternative = $alternatives[0];
251
+
252
+ $style = new SymfonyStyle($input, $output);
253
+ $style->block(sprintf("\nCommand \"%s\" is not defined.\n", $name), null, 'error');
254
+ if (!$style->confirm(sprintf('Do you want to run "%s" instead? ', $alternative), false)) {
255
+ if (null !== $this->dispatcher) {
256
+ $event = new ConsoleErrorEvent($input, $output, $e);
257
+ $this->dispatcher->dispatch(ConsoleEvents::ERROR, $event);
258
+
259
+ return $event->getExitCode();
260
+ }
261
+
262
+ return 1;
263
+ }
264
+
265
+ $command = $this->find($alternative);
266
+ }
267
+
268
+ $this->runningCommand = $command;
269
+ $exitCode = $this->doRunCommand($command, $input, $output);
270
+ $this->runningCommand = null;
271
+
272
+ return $exitCode;
273
+ }
274
+
275
+ public function setHelperSet(HelperSet $helperSet)
276
+ {
277
+ $this->helperSet = $helperSet;
278
+ }
279
+
280
+ /**
281
+ * Get the helper set associated with the command.
282
+ *
283
+ * @return HelperSet The HelperSet instance associated with this command
284
+ */
285
+ public function getHelperSet()
286
+ {
287
+ if (!$this->helperSet) {
288
+ $this->helperSet = $this->getDefaultHelperSet();
289
+ }
290
+
291
+ return $this->helperSet;
292
+ }
293
+
294
+ public function setDefinition(InputDefinition $definition)
295
+ {
296
+ $this->definition = $definition;
297
+ }
298
+
299
+ /**
300
+ * Gets the InputDefinition related to this Application.
301
+ *
302
+ * @return InputDefinition The InputDefinition instance
303
+ */
304
+ public function getDefinition()
305
+ {
306
+ if (!$this->definition) {
307
+ $this->definition = $this->getDefaultInputDefinition();
308
+ }
309
+
310
+ if ($this->singleCommand) {
311
+ $inputDefinition = $this->definition;
312
+ $inputDefinition->setArguments();
313
+
314
+ return $inputDefinition;
315
+ }
316
+
317
+ return $this->definition;
318
+ }
319
+
320
+ /**
321
+ * Gets the help message.
322
+ *
323
+ * @return string A help message
324
+ */
325
+ public function getHelp()
326
+ {
327
+ return $this->getLongVersion();
328
+ }
329
+
330
+ /**
331
+ * Gets whether to catch exceptions or not during commands execution.
332
+ *
333
+ * @return bool Whether to catch exceptions or not during commands execution
334
+ */
335
+ public function areExceptionsCaught()
336
+ {
337
+ return $this->catchExceptions;
338
+ }
339
+
340
+ /**
341
+ * Sets whether to catch exceptions or not during commands execution.
342
+ *
343
+ * @param bool $boolean Whether to catch exceptions or not during commands execution
344
+ */
345
+ public function setCatchExceptions($boolean)
346
+ {
347
+ $this->catchExceptions = (bool) $boolean;
348
+ }
349
+
350
+ /**
351
+ * Gets whether to automatically exit after a command execution or not.
352
+ *
353
+ * @return bool Whether to automatically exit after a command execution or not
354
+ */
355
+ public function isAutoExitEnabled()
356
+ {
357
+ return $this->autoExit;
358
+ }
359
+
360
+ /**
361
+ * Sets whether to automatically exit after a command execution or not.
362
+ *
363
+ * @param bool $boolean Whether to automatically exit after a command execution or not
364
+ */
365
+ public function setAutoExit($boolean)
366
+ {
367
+ $this->autoExit = (bool) $boolean;
368
+ }
369
+
370
+ /**
371
+ * Gets the name of the application.
372
+ *
373
+ * @return string The application name
374
+ */
375
+ public function getName()
376
+ {
377
+ return $this->name;
378
+ }
379
+
380
+ /**
381
+ * Sets the application name.
382
+ *
383
+ * @param string $name The application name
384
+ */
385
+ public function setName($name)
386
+ {
387
+ $this->name = $name;
388
+ }
389
+
390
+ /**
391
+ * Gets the application version.
392
+ *
393
+ * @return string The application version
394
+ */
395
+ public function getVersion()
396
+ {
397
+ return $this->version;
398
+ }
399
+
400
+ /**
401
+ * Sets the application version.
402
+ *
403
+ * @param string $version The application version
404
+ */
405
+ public function setVersion($version)
406
+ {
407
+ $this->version = $version;
408
+ }
409
+
410
+ /**
411
+ * Returns the long version of the application.
412
+ *
413
+ * @return string The long application version
414
+ */
415
+ public function getLongVersion()
416
+ {
417
+ if ('UNKNOWN' !== $this->getName()) {
418
+ if ('UNKNOWN' !== $this->getVersion()) {
419
+ return sprintf('%s <info>%s</info>', $this->getName(), $this->getVersion());
420
+ }
421
+
422
+ return $this->getName();
423
+ }
424
+
425
+ return 'Console Tool';
426
+ }
427
+
428
+ /**
429
+ * Registers a new command.
430
+ *
431
+ * @param string $name The command name
432
+ *
433
+ * @return Command The newly created command
434
+ */
435
+ public function register($name)
436
+ {
437
+ return $this->add(new Command($name));
438
+ }
439
+
440
+ /**
441
+ * Adds an array of command objects.
442
+ *
443
+ * If a Command is not enabled it will not be added.
444
+ *
445
+ * @param Command[] $commands An array of commands
446
+ */
447
+ public function addCommands(array $commands)
448
+ {
449
+ foreach ($commands as $command) {
450
+ $this->add($command);
451
+ }
452
+ }
453
+
454
+ /**
455
+ * Adds a command object.
456
+ *
457
+ * If a command with the same name already exists, it will be overridden.
458
+ * If the command is not enabled it will not be added.
459
+ *
460
+ * @return Command|null The registered command if enabled or null
461
+ */
462
+ public function add(Command $command)
463
+ {
464
+ $this->init();
465
+
466
+ $command->setApplication($this);
467
+
468
+ if (!$command->isEnabled()) {
469
+ $command->setApplication(null);
470
+
471
+ return;
472
+ }
473
+
474
+ if (null === $command->getDefinition()) {
475
+ throw new LogicException(sprintf('Command class "%s" is not correctly initialized. You probably forgot to call the parent constructor.', \get_class($command)));
476
+ }
477
+
478
+ if (!$command->getName()) {
479
+ throw new LogicException(sprintf('The command defined in "%s" cannot have an empty name.', \get_class($command)));
480
+ }
481
+
482
+ $this->commands[$command->getName()] = $command;
483
+
484
+ foreach ($command->getAliases() as $alias) {
485
+ $this->commands[$alias] = $command;
486
+ }
487
+
488
+ return $command;
489
+ }
490
+
491
+ /**
492
+ * Returns a registered command by name or alias.
493
+ *
494
+ * @param string $name The command name or alias
495
+ *
496
+ * @return Command A Command object
497
+ *
498
+ * @throws CommandNotFoundException When given command name does not exist
499
+ */
500
+ public function get($name)
501
+ {
502
+ $this->init();
503
+
504
+ if (!$this->has($name)) {
505
+ throw new CommandNotFoundException(sprintf('The command "%s" does not exist.', $name));
506
+ }
507
+
508
+ $command = $this->commands[$name];
509
+
510
+ if ($this->wantHelps) {
511
+ $this->wantHelps = false;
512
+
513
+ $helpCommand = $this->get('help');
514
+ $helpCommand->setCommand($command);
515
+
516
+ return $helpCommand;
517
+ }
518
+
519
+ return $command;
520
+ }
521
+
522
+ /**
523
+ * Returns true if the command exists, false otherwise.
524
+ *
525
+ * @param string $name The command name or alias
526
+ *
527
+ * @return bool true if the command exists, false otherwise
528
+ */
529
+ public function has($name)
530
+ {
531
+ $this->init();
532
+
533
+ return isset($this->commands[$name]) || ($this->commandLoader && $this->commandLoader->has($name) && $this->add($this->commandLoader->get($name)));
534
+ }
535
+
536
+ /**
537
+ * Returns an array of all unique namespaces used by currently registered commands.
538
+ *
539
+ * It does not return the global namespace which always exists.
540
+ *
541
+ * @return string[] An array of namespaces
542
+ */
543
+ public function getNamespaces()
544
+ {
545
+ $namespaces = [];
546
+ foreach ($this->all() as $command) {
547
+ $namespaces = array_merge($namespaces, $this->extractAllNamespaces($command->getName()));
548
+
549
+ foreach ($command->getAliases() as $alias) {
550
+ $namespaces = array_merge($namespaces, $this->extractAllNamespaces($alias));
551
+ }
552
+ }
553
+
554
+ return array_values(array_unique(array_filter($namespaces)));
555
+ }
556
+
557
+ /**
558
+ * Finds a registered namespace by a name or an abbreviation.
559
+ *
560
+ * @param string $namespace A namespace or abbreviation to search for
561
+ *
562
+ * @return string A registered namespace
563
+ *
564
+ * @throws NamespaceNotFoundException When namespace is incorrect or ambiguous
565
+ */
566
+ public function findNamespace($namespace)
567
+ {
568
+ $allNamespaces = $this->getNamespaces();
569
+ $expr = preg_replace_callback('{([^:]+|)}', function ($matches) { return preg_quote($matches[1]).'[^:]*'; }, $namespace);
570
+ $namespaces = preg_grep('{^'.$expr.'}', $allNamespaces);
571
+
572
+ if (empty($namespaces)) {
573
+ $message = sprintf('There are no commands defined in the "%s" namespace.', $namespace);
574
+
575
+ if ($alternatives = $this->findAlternatives($namespace, $allNamespaces)) {
576
+ if (1 == \count($alternatives)) {
577
+ $message .= "\n\nDid you mean this?\n ";
578
+ } else {
579
+ $message .= "\n\nDid you mean one of these?\n ";
580
+ }
581
+
582
+ $message .= implode("\n ", $alternatives);
583
+ }
584
+
585
+ throw new NamespaceNotFoundException($message, $alternatives);
586
+ }
587
+
588
+ $exact = \in_array($namespace, $namespaces, true);
589
+ if (\count($namespaces) > 1 && !$exact) {
590
+ throw new NamespaceNotFoundException(sprintf("The namespace \"%s\" is ambiguous.\nDid you mean one of these?\n%s", $namespace, $this->getAbbreviationSuggestions(array_values($namespaces))), array_values($namespaces));
591
+ }
592
+
593
+ return $exact ? $namespace : reset($namespaces);
594
+ }
595
+
596
+ /**
597
+ * Finds a command by name or alias.
598
+ *
599
+ * Contrary to get, this command tries to find the best
600
+ * match if you give it an abbreviation of a name or alias.
601
+ *
602
+ * @param string $name A command name or a command alias
603
+ *
604
+ * @return Command A Command instance
605
+ *
606
+ * @throws CommandNotFoundException When command name is incorrect or ambiguous
607
+ */
608
+ public function find($name)
609
+ {
610
+ $this->init();
611
+
612
+ $aliases = [];
613
+ $allCommands = $this->commandLoader ? array_merge($this->commandLoader->getNames(), array_keys($this->commands)) : array_keys($this->commands);
614
+ $expr = preg_replace_callback('{([^:]+|)}', function ($matches) { return preg_quote($matches[1]).'[^:]*'; }, $name);
615
+ $commands = preg_grep('{^'.$expr.'}', $allCommands);
616
+
617
+ if (empty($commands)) {
618
+ $commands = preg_grep('{^'.$expr.'}i', $allCommands);
619
+ }
620
+
621
+ // if no commands matched or we just matched namespaces
622
+ if (empty($commands) || \count(preg_grep('{^'.$expr.'$}i', $commands)) < 1) {
623
+ if (false !== $pos = strrpos($name, ':')) {
624
+ // check if a namespace exists and contains commands
625
+ $this->findNamespace(substr($name, 0, $pos));
626
+ }
627
+
628
+ $message = sprintf('Command "%s" is not defined.', $name);
629
+
630
+ if ($alternatives = $this->findAlternatives($name, $allCommands)) {
631
+ if (1 == \count($alternatives)) {
632
+ $message .= "\n\nDid you mean this?\n ";
633
+ } else {
634
+ $message .= "\n\nDid you mean one of these?\n ";
635
+ }
636
+ $message .= implode("\n ", $alternatives);
637
+ }
638
+
639
+ throw new CommandNotFoundException($message, $alternatives);
640
+ }
641
+
642
+ // filter out aliases for commands which are already on the list
643
+ if (\count($commands) > 1) {
644
+ $commandList = $this->commandLoader ? array_merge(array_flip($this->commandLoader->getNames()), $this->commands) : $this->commands;
645
+ $commands = array_unique(array_filter($commands, function ($nameOrAlias) use ($commandList, $commands, &$aliases) {
646
+ $commandName = $commandList[$nameOrAlias] instanceof Command ? $commandList[$nameOrAlias]->getName() : $nameOrAlias;
647
+ $aliases[$nameOrAlias] = $commandName;
648
+
649
+ return $commandName === $nameOrAlias || !\in_array($commandName, $commands);
650
+ }));
651
+ }
652
+
653
+ $exact = \in_array($name, $commands, true) || isset($aliases[$name]);
654
+ if (\count($commands) > 1 && !$exact) {
655
+ $usableWidth = $this->terminal->getWidth() - 10;
656
+ $abbrevs = array_values($commands);
657
+ $maxLen = 0;
658
+ foreach ($abbrevs as $abbrev) {
659
+ $maxLen = max(Helper::strlen($abbrev), $maxLen);
660
+ }
661
+ $abbrevs = array_map(function ($cmd) use ($commandList, $usableWidth, $maxLen) {
662
+ if (!$commandList[$cmd] instanceof Command) {
663
+ return $cmd;
664
+ }
665
+ $abbrev = str_pad($cmd, $maxLen, ' ').' '.$commandList[$cmd]->getDescription();
666
+
667
+ return Helper::strlen($abbrev) > $usableWidth ? Helper::substr($abbrev, 0, $usableWidth - 3).'...' : $abbrev;
668
+ }, array_values($commands));
669
+ $suggestions = $this->getAbbreviationSuggestions($abbrevs);
670
+
671
+ throw new CommandNotFoundException(sprintf("Command \"%s\" is ambiguous.\nDid you mean one of these?\n%s", $name, $suggestions), array_values($commands));
672
+ }
673
+
674
+ return $this->get($exact ? $name : reset($commands));
675
+ }
676
+
677
+ /**
678
+ * Gets the commands (registered in the given namespace if provided).
679
+ *
680
+ * The array keys are the full names and the values the command instances.
681
+ *
682
+ * @param string $namespace A namespace name
683
+ *
684
+ * @return Command[] An array of Command instances
685
+ */
686
+ public function all($namespace = null)
687
+ {
688
+ $this->init();
689
+
690
+ if (null === $namespace) {
691
+ if (!$this->commandLoader) {
692
+ return $this->commands;
693
+ }
694
+
695
+ $commands = $this->commands;
696
+ foreach ($this->commandLoader->getNames() as $name) {
697
+ if (!isset($commands[$name]) && $this->has($name)) {
698
+ $commands[$name] = $this->get($name);
699
+ }
700
+ }
701
+
702
+ return $commands;
703
+ }
704
+
705
+ $commands = [];
706
+ foreach ($this->commands as $name => $command) {
707
+ if ($namespace === $this->extractNamespace($name, substr_count($namespace, ':') + 1)) {
708
+ $commands[$name] = $command;
709
+ }
710
+ }
711
+
712
+ if ($this->commandLoader) {
713
+ foreach ($this->commandLoader->getNames() as $name) {
714
+ if (!isset($commands[$name]) && $namespace === $this->extractNamespace($name, substr_count($namespace, ':') + 1) && $this->has($name)) {
715
+ $commands[$name] = $this->get($name);
716
+ }
717
+ }
718
+ }
719
+
720
+ return $commands;
721
+ }
722
+
723
+ /**
724
+ * Returns an array of possible abbreviations given a set of names.
725
+ *
726
+ * @param array $names An array of names
727
+ *
728
+ * @return array An array of abbreviations
729
+ */
730
+ public static function getAbbreviations($names)
731
+ {
732
+ $abbrevs = [];
733
+ foreach ($names as $name) {
734
+ for ($len = \strlen($name); $len > 0; --$len) {
735
+ $abbrev = substr($name, 0, $len);
736
+ $abbrevs[$abbrev][] = $name;
737
+ }
738
+ }
739
+
740
+ return $abbrevs;
741
+ }
742
+
743
+ /**
744
+ * Renders a caught exception.
745
+ */
746
+ public function renderException(\Exception $e, OutputInterface $output)
747
+ {
748
+ $output->writeln('', OutputInterface::VERBOSITY_QUIET);
749
+
750
+ $this->doRenderException($e, $output);
751
+
752
+ if (null !== $this->runningCommand) {
753
+ $output->writeln(sprintf('<info>%s</info>', sprintf($this->runningCommand->getSynopsis(), $this->getName())), OutputInterface::VERBOSITY_QUIET);
754
+ $output->writeln('', OutputInterface::VERBOSITY_QUIET);
755
+ }
756
+ }
757
+
758
+ protected function doRenderException(\Exception $e, OutputInterface $output)
759
+ {
760
+ do {
761
+ $message = trim($e->getMessage());
762
+ if ('' === $message || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
763
+ $class = \get_class($e);
764
+ $class = 'c' === $class[0] && 0 === strpos($class, "class@anonymous\0") ? get_parent_class($class).'@anonymous' : $class;
765
+ $title = sprintf(' [%s%s] ', $class, 0 !== ($code = $e->getCode()) ? ' ('.$code.')' : '');
766
+ $len = Helper::strlen($title);
767
+ } else {
768
+ $len = 0;
769
+ }
770
+
771
+ if (false !== strpos($message, "class@anonymous\0")) {
772
+ $message = preg_replace_callback('/class@anonymous\x00.*?\.php0x?[0-9a-fA-F]++/', function ($m) {
773
+ return \class_exists($m[0], false) ? get_parent_class($m[0]).'@anonymous' : $m[0];
774
+ }, $message);
775
+ }
776
+
777
+ $width = $this->terminal->getWidth() ? $this->terminal->getWidth() - 1 : PHP_INT_MAX;
778
+ $lines = [];
779
+ foreach ('' !== $message ? preg_split('/\r?\n/', $message) : [] as $line) {
780
+ foreach ($this->splitStringByWidth($line, $width - 4) as $line) {
781
+ // pre-format lines to get the right string length
782
+ $lineLength = Helper::strlen($line) + 4;
783
+ $lines[] = [$line, $lineLength];
784
+
785
+ $len = max($lineLength, $len);
786
+ }
787
+ }
788
+
789
+ $messages = [];
790
+ if (!$e instanceof ExceptionInterface || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
791
+ $messages[] = sprintf('<comment>%s</comment>', OutputFormatter::escape(sprintf('In %s line %s:', basename($e->getFile()) ?: 'n/a', $e->getLine() ?: 'n/a')));
792
+ }
793
+ $messages[] = $emptyLine = sprintf('<error>%s</error>', str_repeat(' ', $len));
794
+ if ('' === $message || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
795
+ $messages[] = sprintf('<error>%s%s</error>', $title, str_repeat(' ', max(0, $len - Helper::strlen($title))));
796
+ }
797
+ foreach ($lines as $line) {
798
+ $messages[] = sprintf('<error> %s %s</error>', OutputFormatter::escape($line[0]), str_repeat(' ', $len - $line[1]));
799
+ }
800
+ $messages[] = $emptyLine;
801
+ $messages[] = '';
802
+
803
+ $output->writeln($messages, OutputInterface::VERBOSITY_QUIET);
804
+
805
+ if (OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
806
+ $output->writeln('<comment>Exception trace:</comment>', OutputInterface::VERBOSITY_QUIET);
807
+
808
+ // exception related properties
809
+ $trace = $e->getTrace();
810
+
811
+ array_unshift($trace, [
812
+ 'function' => '',
813
+ 'file' => $e->getFile() ?: 'n/a',
814
+ 'line' => $e->getLine() ?: 'n/a',
815
+ 'args' => [],
816
+ ]);
817
+
818
+ for ($i = 0, $count = \count($trace); $i < $count; ++$i) {
819
+ $class = isset($trace[$i]['class']) ? $trace[$i]['class'] : '';
820
+ $type = isset($trace[$i]['type']) ? $trace[$i]['type'] : '';
821
+ $function = $trace[$i]['function'];
822
+ $file = isset($trace[$i]['file']) ? $trace[$i]['file'] : 'n/a';
823
+ $line = isset($trace[$i]['line']) ? $trace[$i]['line'] : 'n/a';
824
+
825
+ $output->writeln(sprintf(' %s%s%s() at <info>%s:%s</info>', $class, $type, $function, $file, $line), OutputInterface::VERBOSITY_QUIET);
826
+ }
827
+
828
+ $output->writeln('', OutputInterface::VERBOSITY_QUIET);
829
+ }
830
+ } while ($e = $e->getPrevious());
831
+ }
832
+
833
+ /**
834
+ * Configures the input and output instances based on the user arguments and options.
835
+ */
836
+ protected function configureIO(InputInterface $input, OutputInterface $output)
837
+ {
838
+ if (true === $input->hasParameterOption(['--ansi'], true)) {
839
+ $output->setDecorated(true);
840
+ } elseif (true === $input->hasParameterOption(['--no-ansi'], true)) {
841
+ $output->setDecorated(false);
842
+ }
843
+
844
+ if (true === $input->hasParameterOption(['--no-interaction', '-n'], true)) {
845
+ $input->setInteractive(false);
846
+ } elseif (\function_exists('posix_isatty')) {
847
+ $inputStream = null;
848
+
849
+ if ($input instanceof StreamableInputInterface) {
850
+ $inputStream = $input->getStream();
851
+ }
852
+
853
+ if (!@posix_isatty($inputStream) && false === getenv('SHELL_INTERACTIVE')) {
854
+ $input->setInteractive(false);
855
+ }
856
+ }
857
+
858
+ switch ($shellVerbosity = (int) getenv('SHELL_VERBOSITY')) {
859
+ case -1: $output->setVerbosity(OutputInterface::VERBOSITY_QUIET); break;
860
+ case 1: $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); break;
861
+ case 2: $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE); break;
862
+ case 3: $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG); break;
863
+ default: $shellVerbosity = 0; break;
864
+ }
865
+
866
+ if (true === $input->hasParameterOption(['--quiet', '-q'], true)) {
867
+ $output->setVerbosity(OutputInterface::VERBOSITY_QUIET);
868
+ $shellVerbosity = -1;
869
+ } else {
870
+ if ($input->hasParameterOption('-vvv', true) || $input->hasParameterOption('--verbose=3', true) || 3 === $input->getParameterOption('--verbose', false, true)) {
871
+ $output->setVerbosity(OutputInterface::VERBOSITY_DEBUG);
872
+ $shellVerbosity = 3;
873
+ } elseif ($input->hasParameterOption('-vv', true) || $input->hasParameterOption('--verbose=2', true) || 2 === $input->getParameterOption('--verbose', false, true)) {
874
+ $output->setVerbosity(OutputInterface::VERBOSITY_VERY_VERBOSE);
875
+ $shellVerbosity = 2;
876
+ } elseif ($input->hasParameterOption('-v', true) || $input->hasParameterOption('--verbose=1', true) || $input->hasParameterOption('--verbose', true) || $input->getParameterOption('--verbose', false, true)) {
877
+ $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
878
+ $shellVerbosity = 1;
879
+ }
880
+ }
881
+
882
+ if (-1 === $shellVerbosity) {
883
+ $input->setInteractive(false);
884
+ }
885
+
886
+ putenv('SHELL_VERBOSITY='.$shellVerbosity);
887
+ $_ENV['SHELL_VERBOSITY'] = $shellVerbosity;
888
+ $_SERVER['SHELL_VERBOSITY'] = $shellVerbosity;
889
+ }
890
+
891
+ /**
892
+ * Runs the current command.
893
+ *
894
+ * If an event dispatcher has been attached to the application,
895
+ * events are also dispatched during the life-cycle of the command.
896
+ *
897
+ * @return int 0 if everything went fine, or an error code
898
+ */
899
+ protected function doRunCommand(Command $command, InputInterface $input, OutputInterface $output)
900
+ {
901
+ foreach ($command->getHelperSet() as $helper) {
902
+ if ($helper instanceof InputAwareInterface) {
903
+ $helper->setInput($input);
904
+ }
905
+ }
906
+
907
+ if (null === $this->dispatcher) {
908
+ return $command->run($input, $output);
909
+ }
910
+
911
+ // bind before the console.command event, so the listeners have access to input options/arguments
912
+ try {
913
+ $command->mergeApplicationDefinition();
914
+ $input->bind($command->getDefinition());
915
+ } catch (ExceptionInterface $e) {
916
+ // ignore invalid options/arguments for now, to allow the event listeners to customize the InputDefinition
917
+ }
918
+
919
+ $event = new ConsoleCommandEvent($command, $input, $output);
920
+ $e = null;
921
+
922
+ try {
923
+ $this->dispatcher->dispatch(ConsoleEvents::COMMAND, $event);
924
+
925
+ if ($event->commandShouldRun()) {
926
+ $exitCode = $command->run($input, $output);
927
+ } else {
928
+ $exitCode = ConsoleCommandEvent::RETURN_CODE_DISABLED;
929
+ }
930
+ } catch (\Throwable $e) {
931
+ $event = new ConsoleErrorEvent($input, $output, $e, $command);
932
+ $this->dispatcher->dispatch(ConsoleEvents::ERROR, $event);
933
+ $e = $event->getError();
934
+
935
+ if (0 === $exitCode = $event->getExitCode()) {
936
+ $e = null;
937
+ }
938
+ }
939
+
940
+ $event = new ConsoleTerminateEvent($command, $input, $output, $exitCode);
941
+ $this->dispatcher->dispatch(ConsoleEvents::TERMINATE, $event);
942
+
943
+ if (null !== $e) {
944
+ throw $e;
945
+ }
946
+
947
+ return $event->getExitCode();
948
+ }
949
+
950
+ /**
951
+ * Gets the name of the command based on input.
952
+ *
953
+ * @return string The command name
954
+ */
955
+ protected function getCommandName(InputInterface $input)
956
+ {
957
+ return $this->singleCommand ? $this->defaultCommand : $input->getFirstArgument();
958
+ }
959
+
960
+ /**
961
+ * Gets the default input definition.
962
+ *
963
+ * @return InputDefinition An InputDefinition instance
964
+ */
965
+ protected function getDefaultInputDefinition()
966
+ {
967
+ return new InputDefinition([
968
+ new InputArgument('command', InputArgument::REQUIRED, 'The command to execute'),
969
+
970
+ new InputOption('--help', '-h', InputOption::VALUE_NONE, 'Display this help message'),
971
+ new InputOption('--quiet', '-q', InputOption::VALUE_NONE, 'Do not output any message'),
972
+ new InputOption('--verbose', '-v|vv|vvv', InputOption::VALUE_NONE, 'Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug'),
973
+ new InputOption('--version', '-V', InputOption::VALUE_NONE, 'Display this application version'),
974
+ new InputOption('--ansi', '', InputOption::VALUE_NONE, 'Force ANSI output'),
975
+ new InputOption('--no-ansi', '', InputOption::VALUE_NONE, 'Disable ANSI output'),
976
+ new InputOption('--no-interaction', '-n', InputOption::VALUE_NONE, 'Do not ask any interactive question'),
977
+ ]);
978
+ }
979
+
980
+ /**
981
+ * Gets the default commands that should always be available.
982
+ *
983
+ * @return Command[] An array of default Command instances
984
+ */
985
+ protected function getDefaultCommands()
986
+ {
987
+ return [new HelpCommand(), new ListCommand()];
988
+ }
989
+
990
+ /**
991
+ * Gets the default helper set with the helpers that should always be available.
992
+ *
993
+ * @return HelperSet A HelperSet instance
994
+ */
995
+ protected function getDefaultHelperSet()
996
+ {
997
+ return new HelperSet([
998
+ new FormatterHelper(),
999
+ new DebugFormatterHelper(),
1000
+ new ProcessHelper(),
1001
+ new QuestionHelper(),
1002
+ ]);
1003
+ }
1004
+
1005
+ /**
1006
+ * Returns abbreviated suggestions in string format.
1007
+ *
1008
+ * @param array $abbrevs Abbreviated suggestions to convert
1009
+ *
1010
+ * @return string A formatted string of abbreviated suggestions
1011
+ */
1012
+ private function getAbbreviationSuggestions($abbrevs)
1013
+ {
1014
+ return ' '.implode("\n ", $abbrevs);
1015
+ }
1016
+
1017
+ /**
1018
+ * Returns the namespace part of the command name.
1019
+ *
1020
+ * This method is not part of public API and should not be used directly.
1021
+ *
1022
+ * @param string $name The full name of the command
1023
+ * @param string $limit The maximum number of parts of the namespace
1024
+ *
1025
+ * @return string The namespace of the command
1026
+ */
1027
+ public function extractNamespace($name, $limit = null)
1028
+ {
1029
+ $parts = explode(':', $name);
1030
+ array_pop($parts);
1031
+
1032
+ return implode(':', null === $limit ? $parts : \array_slice($parts, 0, $limit));
1033
+ }
1034
+
1035
+ /**
1036
+ * Finds alternative of $name among $collection,
1037
+ * if nothing is found in $collection, try in $abbrevs.
1038
+ *
1039
+ * @param string $name The string
1040
+ * @param iterable $collection The collection
1041
+ *
1042
+ * @return string[] A sorted array of similar string
1043
+ */
1044
+ private function findAlternatives($name, $collection)
1045
+ {
1046
+ $threshold = 1e3;
1047
+ $alternatives = [];
1048
+
1049
+ $collectionParts = [];
1050
+ foreach ($collection as $item) {
1051
+ $collectionParts[$item] = explode(':', $item);
1052
+ }
1053
+
1054
+ foreach (explode(':', $name) as $i => $subname) {
1055
+ foreach ($collectionParts as $collectionName => $parts) {
1056
+ $exists = isset($alternatives[$collectionName]);
1057
+ if (!isset($parts[$i]) && $exists) {
1058
+ $alternatives[$collectionName] += $threshold;
1059
+ continue;
1060
+ } elseif (!isset($parts[$i])) {
1061
+ continue;
1062
+ }
1063
+
1064
+ $lev = levenshtein($subname, $parts[$i]);
1065
+ if ($lev <= \strlen($subname) / 3 || '' !== $subname && false !== strpos($parts[$i], $subname)) {
1066
+ $alternatives[$collectionName] = $exists ? $alternatives[$collectionName] + $lev : $lev;
1067
+ } elseif ($exists) {
1068
+ $alternatives[$collectionName] += $threshold;
1069
+ }
1070
+ }
1071
+ }
1072
+
1073
+ foreach ($collection as $item) {
1074
+ $lev = levenshtein($name, $item);
1075
+ if ($lev <= \strlen($name) / 3 || false !== strpos($item, $name)) {
1076
+ $alternatives[$item] = isset($alternatives[$item]) ? $alternatives[$item] - $lev : $lev;
1077
+ }
1078
+ }
1079
+
1080
+ $alternatives = array_filter($alternatives, function ($lev) use ($threshold) { return $lev < 2 * $threshold; });
1081
+ ksort($alternatives, SORT_NATURAL | SORT_FLAG_CASE);
1082
+
1083
+ return array_keys($alternatives);
1084
+ }
1085
+
1086
+ /**
1087
+ * Sets the default Command name.
1088
+ *
1089
+ * @param string $commandName The Command name
1090
+ * @param bool $isSingleCommand Set to true if there is only one command in this application
1091
+ *
1092
+ * @return self
1093
+ */
1094
+ public function setDefaultCommand($commandName, $isSingleCommand = false)
1095
+ {
1096
+ $this->defaultCommand = $commandName;
1097
+
1098
+ if ($isSingleCommand) {
1099
+ // Ensure the command exist
1100
+ $this->find($commandName);
1101
+
1102
+ $this->singleCommand = true;
1103
+ }
1104
+
1105
+ return $this;
1106
+ }
1107
+
1108
+ /**
1109
+ * @internal
1110
+ */
1111
+ public function isSingleCommand()
1112
+ {
1113
+ return $this->singleCommand;
1114
+ }
1115
+
1116
+ private function splitStringByWidth($string, $width)
1117
+ {
1118
+ // str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly.
1119
+ // additionally, array_slice() is not enough as some character has doubled width.
1120
+ // we need a function to split string not by character count but by string width
1121
+ if (false === $encoding = mb_detect_encoding($string, null, true)) {
1122
+ return str_split($string, $width);
1123
+ }
1124
+
1125
+ $utf8String = mb_convert_encoding($string, 'utf8', $encoding);
1126
+ $lines = [];
1127
+ $line = '';
1128
+ foreach (preg_split('//u', $utf8String) as $char) {
1129
+ // test if $char could be appended to current line
1130
+ if (mb_strwidth($line.$char, 'utf8') <= $width) {
1131
+ $line .= $char;
1132
+ continue;
1133
+ }
1134
+ // if not, push current line to array and make new line
1135
+ $lines[] = str_pad($line, $width);
1136
+ $line = $char;
1137
+ }
1138
+
1139
+ $lines[] = \count($lines) ? str_pad($line, $width) : $line;
1140
+
1141
+ mb_convert_variables($encoding, 'utf8', $lines);
1142
+
1143
+ return $lines;
1144
+ }
1145
+
1146
+ /**
1147
+ * Returns all namespaces of the command name.
1148
+ *
1149
+ * @param string $name The full name of the command
1150
+ *
1151
+ * @return string[] The namespaces of the command
1152
+ */
1153
+ private function extractAllNamespaces($name)
1154
+ {
1155
+ // -1 as third argument is needed to skip the command short name when exploding
1156
+ $parts = explode(':', $name, -1);
1157
+ $namespaces = [];
1158
+
1159
+ foreach ($parts as $part) {
1160
+ if (\count($namespaces)) {
1161
+ $namespaces[] = end($namespaces).':'.$part;
1162
+ } else {
1163
+ $namespaces[] = $part;
1164
+ }
1165
+ }
1166
+
1167
+ return $namespaces;
1168
+ }
1169
+
1170
+ private function init()
1171
+ {
1172
+ if ($this->initialized) {
1173
+ return;
1174
+ }
1175
+ $this->initialized = true;
1176
+
1177
+ foreach ($this->getDefaultCommands() as $command) {
1178
+ $this->add($command);
1179
+ }
1180
+ }
1181
+ }