dependabot-composer 0.111.50 → 0.111.51

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 (903) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dependabot/composer/file_updater/lockfile_updater.rb +6 -0
  3. data/lib/dependabot/composer/update_checker/version_resolver.rb +6 -0
  4. metadata +4 -903
  5. data/helpers/vendor/autoload.php +0 -7
  6. data/helpers/vendor/bin/composer +0 -1
  7. data/helpers/vendor/bin/jsonlint +0 -1
  8. data/helpers/vendor/bin/validate-json +0 -1
  9. data/helpers/vendor/composer/ClassLoader.php +0 -445
  10. data/helpers/vendor/composer/LICENSE +0 -21
  11. data/helpers/vendor/composer/autoload_classmap.php +0 -9
  12. data/helpers/vendor/composer/autoload_files.php +0 -11
  13. data/helpers/vendor/composer/autoload_namespaces.php +0 -9
  14. data/helpers/vendor/composer/autoload_psr4.php +0 -26
  15. data/helpers/vendor/composer/autoload_real.php +0 -70
  16. data/helpers/vendor/composer/autoload_static.php +0 -128
  17. data/helpers/vendor/composer/ca-bundle/LICENSE +0 -19
  18. data/helpers/vendor/composer/ca-bundle/README.md +0 -85
  19. data/helpers/vendor/composer/ca-bundle/composer.json +0 -54
  20. data/helpers/vendor/composer/ca-bundle/res/cacert.pem +0 -3401
  21. data/helpers/vendor/composer/ca-bundle/src/CaBundle.php +0 -308
  22. data/helpers/vendor/composer/composer/.gitattributes +0 -12
  23. data/helpers/vendor/composer/composer/.github/CONTRIBUTING.md +0 -59
  24. data/helpers/vendor/composer/composer/.github/ISSUE_TEMPLATE.md +0 -25
  25. data/helpers/vendor/composer/composer/.gitignore +0 -11
  26. data/helpers/vendor/composer/composer/.php_cs +0 -58
  27. data/helpers/vendor/composer/composer/.travis.yml +0 -76
  28. data/helpers/vendor/composer/composer/CHANGELOG.md +0 -808
  29. data/helpers/vendor/composer/composer/LICENSE +0 -19
  30. data/helpers/vendor/composer/composer/PORTING_INFO +0 -39
  31. data/helpers/vendor/composer/composer/README.md +0 -62
  32. data/helpers/vendor/composer/composer/appveyor.yml +0 -33
  33. data/helpers/vendor/composer/composer/bin/compile +0 -31
  34. data/helpers/vendor/composer/composer/bin/composer +0 -62
  35. data/helpers/vendor/composer/composer/composer.json +0 -81
  36. data/helpers/vendor/composer/composer/composer.lock +0 -1800
  37. data/helpers/vendor/composer/composer/doc/00-intro.md +0 -156
  38. data/helpers/vendor/composer/composer/doc/01-basic-usage.md +0 -266
  39. data/helpers/vendor/composer/composer/doc/02-libraries.md +0 -153
  40. data/helpers/vendor/composer/composer/doc/03-cli.md +0 -931
  41. data/helpers/vendor/composer/composer/doc/04-schema.md +0 -924
  42. data/helpers/vendor/composer/composer/doc/05-repositories.md +0 -713
  43. data/helpers/vendor/composer/composer/doc/06-config.md +0 -277
  44. data/helpers/vendor/composer/composer/doc/07-community.md +0 -35
  45. data/helpers/vendor/composer/composer/doc/articles/aliases.md +0 -105
  46. data/helpers/vendor/composer/composer/doc/articles/autoloader-optimization.md +0 -111
  47. data/helpers/vendor/composer/composer/doc/articles/custom-installers.md +0 -204
  48. data/helpers/vendor/composer/composer/doc/articles/handling-private-packages-with-satis.md +0 -343
  49. data/helpers/vendor/composer/composer/doc/articles/http-basic-authentication.md +0 -59
  50. data/helpers/vendor/composer/composer/doc/articles/plugins.md +0 -285
  51. data/helpers/vendor/composer/composer/doc/articles/scripts.md +0 -304
  52. data/helpers/vendor/composer/composer/doc/articles/troubleshooting.md +0 -309
  53. data/helpers/vendor/composer/composer/doc/articles/vendor-binaries.md +0 -110
  54. data/helpers/vendor/composer/composer/doc/articles/versions.md +0 -230
  55. data/helpers/vendor/composer/composer/doc/dev/DefaultPolicy.md +0 -55
  56. data/helpers/vendor/composer/composer/doc/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.md +0 -50
  57. data/helpers/vendor/composer/composer/doc/faqs/how-to-install-composer-programmatically.md +0 -42
  58. data/helpers/vendor/composer/composer/doc/faqs/how-to-install-untrusted-packages-safely.md +0 -19
  59. data/helpers/vendor/composer/composer/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md +0 -32
  60. data/helpers/vendor/composer/composer/doc/faqs/which-version-numbering-system-does-composer-itself-use.md +0 -4
  61. data/helpers/vendor/composer/composer/doc/faqs/why-are-unbound-version-constraints-a-bad-idea.md +0 -21
  62. data/helpers/vendor/composer/composer/doc/faqs/why-are-version-constraints-combining-comparisons-and-wildcards-a-bad-idea.md +0 -21
  63. data/helpers/vendor/composer/composer/doc/faqs/why-can't-composer-load-repositories-recursively.md +0 -35
  64. data/helpers/vendor/composer/composer/doc/fixtures/fixtures.md +0 -22
  65. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-plain/packages.json +0 -158
  66. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/bar/baz$923363b3c22e73abb2e3fd891c8156dd4d0821a97fd3e428bc910833e3e46dbe.json +0 -50
  67. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/foo/bar$4baabb3303afa3e34a4d3af18fb138e5f3b79029c1f8d9ab5b477ea15776ba0a.json +0 -77
  68. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/gar/nix$5d210670cb46c8364c8e3fb449967b9bea558b971e5b082f330ae4f1d484c321.json +0 -50
  69. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/provider-active$1893a061e579543822389ecd12d791c612db0c05e22d90e9286e233cacd86ed8.json +0 -16
  70. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/qux/quux$c142d1a07ca354be46b613f59f1d601923a5a00ccc5fcce50a77ecdd461eb72d.json +0 -22
  71. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/packages.json +0 -9
  72. data/helpers/vendor/composer/composer/phpunit.xml.dist +0 -35
  73. data/helpers/vendor/composer/composer/res/composer-repository-schema.json +0 -110
  74. data/helpers/vendor/composer/composer/res/composer-schema.json +0 -843
  75. data/helpers/vendor/composer/composer/src/Composer/Autoload/AutoloadGenerator.php +0 -1061
  76. data/helpers/vendor/composer/composer/src/Composer/Autoload/ClassLoader.php +0 -445
  77. data/helpers/vendor/composer/composer/src/Composer/Autoload/ClassMapGenerator.php +0 -222
  78. data/helpers/vendor/composer/composer/src/Composer/Cache.php +0 -251
  79. data/helpers/vendor/composer/composer/src/Composer/Command/AboutCommand.php +0 -46
  80. data/helpers/vendor/composer/composer/src/Composer/Command/ArchiveCommand.php +0 -166
  81. data/helpers/vendor/composer/composer/src/Composer/Command/BaseCommand.php +0 -181
  82. data/helpers/vendor/composer/composer/src/Composer/Command/BaseDependencyCommand.php +0 -255
  83. data/helpers/vendor/composer/composer/src/Composer/Command/CheckPlatformReqsCommand.php +0 -156
  84. data/helpers/vendor/composer/composer/src/Composer/Command/ClearCacheCommand.php +0 -74
  85. data/helpers/vendor/composer/composer/src/Composer/Command/ConfigCommand.php +0 -707
  86. data/helpers/vendor/composer/composer/src/Composer/Command/CreateProjectCommand.php +0 -385
  87. data/helpers/vendor/composer/composer/src/Composer/Command/DependsCommand.php +0 -57
  88. data/helpers/vendor/composer/composer/src/Composer/Command/DiagnoseCommand.php +0 -729
  89. data/helpers/vendor/composer/composer/src/Composer/Command/DumpAutoloadCommand.php +0 -88
  90. data/helpers/vendor/composer/composer/src/Composer/Command/ExecCommand.php +0 -97
  91. data/helpers/vendor/composer/composer/src/Composer/Command/GlobalCommand.php +0 -111
  92. data/helpers/vendor/composer/composer/src/Composer/Command/HomeCommand.php +0 -168
  93. data/helpers/vendor/composer/composer/src/Composer/Command/InitCommand.php +0 -808
  94. data/helpers/vendor/composer/composer/src/Composer/Command/InstallCommand.php +0 -124
  95. data/helpers/vendor/composer/composer/src/Composer/Command/LicensesCommand.php +0 -159
  96. data/helpers/vendor/composer/composer/src/Composer/Command/OutdatedCommand.php +0 -95
  97. data/helpers/vendor/composer/composer/src/Composer/Command/ProhibitsCommand.php +0 -57
  98. data/helpers/vendor/composer/composer/src/Composer/Command/RemoveCommand.php +0 -163
  99. data/helpers/vendor/composer/composer/src/Composer/Command/RequireCommand.php +0 -258
  100. data/helpers/vendor/composer/composer/src/Composer/Command/RunScriptCommand.php +0 -141
  101. data/helpers/vendor/composer/composer/src/Composer/Command/ScriptAliasCommand.php +0 -66
  102. data/helpers/vendor/composer/composer/src/Composer/Command/SearchCommand.php +0 -83
  103. data/helpers/vendor/composer/composer/src/Composer/Command/SelfUpdateCommand.php +0 -405
  104. data/helpers/vendor/composer/composer/src/Composer/Command/ShowCommand.php +0 -1015
  105. data/helpers/vendor/composer/composer/src/Composer/Command/StatusCommand.php +0 -214
  106. data/helpers/vendor/composer/composer/src/Composer/Command/SuggestsCommand.php +0 -152
  107. data/helpers/vendor/composer/composer/src/Composer/Command/UpdateCommand.php +0 -228
  108. data/helpers/vendor/composer/composer/src/Composer/Command/ValidateCommand.php +0 -172
  109. data/helpers/vendor/composer/composer/src/Composer/Compiler.php +0 -284
  110. data/helpers/vendor/composer/composer/src/Composer/Composer.php +0 -283
  111. data/helpers/vendor/composer/composer/src/Composer/Config.php +0 -461
  112. data/helpers/vendor/composer/composer/src/Composer/Config/ConfigSourceInterface.php +0 -91
  113. data/helpers/vendor/composer/composer/src/Composer/Config/JsonConfigSource.php +0 -267
  114. data/helpers/vendor/composer/composer/src/Composer/Console/Application.php +0 -481
  115. data/helpers/vendor/composer/composer/src/Composer/Console/HtmlOutputFormatter.php +0 -90
  116. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Decisions.php +0 -211
  117. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/DefaultPolicy.php +0 -285
  118. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/GenericRule.php +0 -91
  119. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/InstallOperation.php +0 -66
  120. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/MarkAliasInstalledOperation.php +0 -67
  121. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/MarkAliasUninstalledOperation.php +0 -67
  122. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/OperationInterface.php +0 -42
  123. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/SolverOperation.php +0 -50
  124. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/UninstallOperation.php +0 -66
  125. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/UpdateOperation.php +0 -80
  126. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/PolicyInterface.php +0 -27
  127. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Pool.php +0 -378
  128. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Problem.php +0 -253
  129. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Request.php +0 -78
  130. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Rule.php +0 -268
  131. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Rule2Literals.php +0 -113
  132. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSet.php +0 -176
  133. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSetGenerator.php +0 -372
  134. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSetIterator.php +0 -94
  135. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchChain.php +0 -52
  136. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchGraph.php +0 -144
  137. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchNode.php +0 -113
  138. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Solver.php +0 -874
  139. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/SolverBugException.php +0 -27
  140. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/SolverProblemsException.php +0 -88
  141. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Transaction.php +0 -244
  142. data/helpers/vendor/composer/composer/src/Composer/Downloader/ArchiveDownloader.php +0 -135
  143. data/helpers/vendor/composer/composer/src/Composer/Downloader/ChangeReportInterface.php +0 -32
  144. data/helpers/vendor/composer/composer/src/Composer/Downloader/DownloadManager.php +0 -325
  145. data/helpers/vendor/composer/composer/src/Composer/Downloader/DownloaderInterface.php +0 -64
  146. data/helpers/vendor/composer/composer/src/Composer/Downloader/DvcsDownloaderInterface.php +0 -32
  147. data/helpers/vendor/composer/composer/src/Composer/Downloader/FileDownloader.php +0 -322
  148. data/helpers/vendor/composer/composer/src/Composer/Downloader/FilesystemException.php +0 -26
  149. data/helpers/vendor/composer/composer/src/Composer/Downloader/FossilDownloader.php +0 -116
  150. data/helpers/vendor/composer/composer/src/Composer/Downloader/GitDownloader.php +0 -516
  151. data/helpers/vendor/composer/composer/src/Composer/Downloader/GzipDownloader.php +0 -84
  152. data/helpers/vendor/composer/composer/src/Composer/Downloader/HgDownloader.php +0 -100
  153. data/helpers/vendor/composer/composer/src/Composer/Downloader/PathDownloader.php +0 -202
  154. data/helpers/vendor/composer/composer/src/Composer/Downloader/PearPackageExtractor.php +0 -266
  155. data/helpers/vendor/composer/composer/src/Composer/Downloader/PerforceDownloader.php +0 -114
  156. data/helpers/vendor/composer/composer/src/Composer/Downloader/PharDownloader.php +0 -36
  157. data/helpers/vendor/composer/composer/src/Composer/Downloader/RarDownloader.php +0 -91
  158. data/helpers/vendor/composer/composer/src/Composer/Downloader/SvnDownloader.php +0 -225
  159. data/helpers/vendor/composer/composer/src/Composer/Downloader/TarDownloader.php +0 -31
  160. data/helpers/vendor/composer/composer/src/Composer/Downloader/TransportException.php +0 -53
  161. data/helpers/vendor/composer/composer/src/Composer/Downloader/VcsCapableDownloaderInterface.php +0 -32
  162. data/helpers/vendor/composer/composer/src/Composer/Downloader/VcsDownloader.php +0 -293
  163. data/helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php +0 -60
  164. data/helpers/vendor/composer/composer/src/Composer/Downloader/ZipDownloader.php +0 -230
  165. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/Event.php +0 -103
  166. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php +0 -536
  167. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/EventSubscriberInterface.php +0 -48
  168. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/ScriptExecutionException.php +0 -20
  169. data/helpers/vendor/composer/composer/src/Composer/Exception/NoSslException.php +0 -20
  170. data/helpers/vendor/composer/composer/src/Composer/Factory.php +0 -653
  171. data/helpers/vendor/composer/composer/src/Composer/IO/BaseIO.php +0 -255
  172. data/helpers/vendor/composer/composer/src/Composer/IO/BufferIO.php +0 -59
  173. data/helpers/vendor/composer/composer/src/Composer/IO/ConsoleIO.php +0 -322
  174. data/helpers/vendor/composer/composer/src/Composer/IO/IOInterface.php +0 -207
  175. data/helpers/vendor/composer/composer/src/Composer/IO/NullIO.php +0 -129
  176. data/helpers/vendor/composer/composer/src/Composer/Installer.php +0 -1798
  177. data/helpers/vendor/composer/composer/src/Composer/Installer/BinaryInstaller.php +0 -214
  178. data/helpers/vendor/composer/composer/src/Composer/Installer/BinaryPresenceInterface.php +0 -30
  179. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallationManager.php +0 -326
  180. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerEvent.php +0 -161
  181. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerEvents.php +0 -43
  182. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerInterface.php +0 -79
  183. data/helpers/vendor/composer/composer/src/Composer/Installer/LibraryInstaller.php +0 -232
  184. data/helpers/vendor/composer/composer/src/Composer/Installer/MetapackageInstaller.php +0 -100
  185. data/helpers/vendor/composer/composer/src/Composer/Installer/NoopInstaller.php +0 -88
  186. data/helpers/vendor/composer/composer/src/Composer/Installer/PackageEvent.php +0 -65
  187. data/helpers/vendor/composer/composer/src/Composer/Installer/PackageEvents.php +0 -75
  188. data/helpers/vendor/composer/composer/src/Composer/Installer/PearBinaryInstaller.php +0 -144
  189. data/helpers/vendor/composer/composer/src/Composer/Installer/PearInstaller.php +0 -84
  190. data/helpers/vendor/composer/composer/src/Composer/Installer/PluginInstaller.php +0 -84
  191. data/helpers/vendor/composer/composer/src/Composer/Installer/ProjectInstaller.php +0 -99
  192. data/helpers/vendor/composer/composer/src/Composer/Installer/SuggestedPackagesReporter.php +0 -151
  193. data/helpers/vendor/composer/composer/src/Composer/Json/JsonFile.php +0 -301
  194. data/helpers/vendor/composer/composer/src/Composer/Json/JsonFormatter.php +0 -134
  195. data/helpers/vendor/composer/composer/src/Composer/Json/JsonManipulator.php +0 -521
  196. data/helpers/vendor/composer/composer/src/Composer/Json/JsonValidationException.php +0 -34
  197. data/helpers/vendor/composer/composer/src/Composer/Package/AliasPackage.php +0 -404
  198. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchivableFilesFilter.php +0 -44
  199. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchivableFilesFinder.php +0 -105
  200. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchiveManager.php +0 -183
  201. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchiverInterface.php +0 -43
  202. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/BaseExcludeFilter.php +0 -148
  203. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ComposerExcludeFilter.php +0 -31
  204. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/GitExcludeFilter.php +0 -79
  205. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/HgExcludeFilter.php +0 -107
  206. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/PharArchiver.php +0 -97
  207. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ZipArchiver.php +0 -74
  208. data/helpers/vendor/composer/composer/src/Composer/Package/BasePackage.php +0 -251
  209. data/helpers/vendor/composer/composer/src/Composer/Package/Comparer/Comparer.php +0 -129
  210. data/helpers/vendor/composer/composer/src/Composer/Package/CompletePackage.php +0 -199
  211. data/helpers/vendor/composer/composer/src/Composer/Package/CompletePackageInterface.php +0 -95
  212. data/helpers/vendor/composer/composer/src/Composer/Package/Dumper/ArrayDumper.php +0 -151
  213. data/helpers/vendor/composer/composer/src/Composer/Package/Link.php +0 -128
  214. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/EmptyConstraint.php +0 -24
  215. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/LinkConstraintInterface.php +0 -24
  216. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/MultiConstraint.php +0 -24
  217. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/SpecificConstraint.php +0 -24
  218. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/VersionConstraint.php +0 -24
  219. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/ArrayLoader.php +0 -290
  220. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/InvalidPackageException.php +0 -46
  221. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/JsonLoader.php +0 -45
  222. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/LoaderInterface.php +0 -30
  223. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/RootPackageLoader.php +0 -264
  224. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/ValidatingArrayLoader.php +0 -493
  225. data/helpers/vendor/composer/composer/src/Composer/Package/Locker.php +0 -438
  226. data/helpers/vendor/composer/composer/src/Composer/Package/Package.php +0 -612
  227. data/helpers/vendor/composer/composer/src/Composer/Package/PackageInterface.php +0 -361
  228. data/helpers/vendor/composer/composer/src/Composer/Package/RootAliasPackage.php +0 -173
  229. data/helpers/vendor/composer/composer/src/Composer/Package/RootPackage.php +0 -136
  230. data/helpers/vendor/composer/composer/src/Composer/Package/RootPackageInterface.php +0 -142
  231. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionGuesser.php +0 -302
  232. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionParser.php +0 -81
  233. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionSelector.php +0 -176
  234. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capability/Capability.php +0 -23
  235. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capability/CommandProvider.php +0 -33
  236. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capable.php +0 -43
  237. data/helpers/vendor/composer/composer/src/Composer/Plugin/CommandEvent.php +0 -88
  238. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginEvents.php +0 -61
  239. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginInterface.php +0 -39
  240. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginManager.php +0 -403
  241. data/helpers/vendor/composer/composer/src/Composer/Plugin/PreCommandRunEvent.php +0 -68
  242. data/helpers/vendor/composer/composer/src/Composer/Plugin/PreFileDownloadEvent.php +0 -78
  243. data/helpers/vendor/composer/composer/src/Composer/Question/StrictConfirmationQuestion.php +0 -94
  244. data/helpers/vendor/composer/composer/src/Composer/Repository/ArrayRepository.php +0 -208
  245. data/helpers/vendor/composer/composer/src/Composer/Repository/ArtifactRepository.php +0 -167
  246. data/helpers/vendor/composer/composer/src/Composer/Repository/BaseRepository.php +0 -157
  247. data/helpers/vendor/composer/composer/src/Composer/Repository/ComposerRepository.php +0 -829
  248. data/helpers/vendor/composer/composer/src/Composer/Repository/CompositeRepository.php +0 -164
  249. data/helpers/vendor/composer/composer/src/Composer/Repository/ConfigurableRepositoryInterface.php +0 -23
  250. data/helpers/vendor/composer/composer/src/Composer/Repository/FilesystemRepository.php +0 -97
  251. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledArrayRepository.php +0 -24
  252. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledFilesystemRepository.php +0 -22
  253. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledRepositoryInterface.php +0 -24
  254. data/helpers/vendor/composer/composer/src/Composer/Repository/InvalidRepositoryException.php +0 -22
  255. data/helpers/vendor/composer/composer/src/Composer/Repository/PackageRepository.php +0 -61
  256. data/helpers/vendor/composer/composer/src/Composer/Repository/PathRepository.php +0 -190
  257. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/BaseChannelReader.php +0 -82
  258. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelInfo.php +0 -67
  259. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelReader.php +0 -101
  260. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelRest10Reader.php +0 -164
  261. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelRest11Reader.php +0 -139
  262. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/DependencyConstraint.php +0 -60
  263. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/DependencyInfo.php +0 -50
  264. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/PackageDependencyParser.php +0 -317
  265. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/PackageInfo.php +0 -94
  266. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ReleaseInfo.php +0 -50
  267. data/helpers/vendor/composer/composer/src/Composer/Repository/PearRepository.php +0 -198
  268. data/helpers/vendor/composer/composer/src/Composer/Repository/PlatformRepository.php +0 -342
  269. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryFactory.php +0 -169
  270. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryInterface.php +0 -74
  271. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryManager.php +0 -177
  272. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositorySecurityException.php +0 -22
  273. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/BitbucketDriver.php +0 -445
  274. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/FossilDriver.php +0 -238
  275. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitBitbucketDriver.php +0 -91
  276. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitDriver.php +0 -222
  277. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitHubDriver.php +0 -472
  278. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitLabDriver.php +0 -511
  279. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/HgBitbucketDriver.php +0 -91
  280. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/HgDriver.php +0 -230
  281. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/PerforceDriver.php +0 -181
  282. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/SvnDriver.php +0 -397
  283. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/VcsDriver.php +0 -175
  284. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/VcsDriverInterface.php +0 -117
  285. data/helpers/vendor/composer/composer/src/Composer/Repository/VcsRepository.php +0 -407
  286. data/helpers/vendor/composer/composer/src/Composer/Repository/VersionCacheInterface.php +0 -23
  287. data/helpers/vendor/composer/composer/src/Composer/Repository/WritableArrayRepository.php +0 -66
  288. data/helpers/vendor/composer/composer/src/Composer/Repository/WritableRepositoryInterface.php +0 -54
  289. data/helpers/vendor/composer/composer/src/Composer/Script/CommandEvent.php +0 -22
  290. data/helpers/vendor/composer/composer/src/Composer/Script/Event.php +0 -89
  291. data/helpers/vendor/composer/composer/src/Composer/Script/PackageEvent.php +0 -24
  292. data/helpers/vendor/composer/composer/src/Composer/Script/ScriptEvents.php +0 -193
  293. data/helpers/vendor/composer/composer/src/Composer/SelfUpdate/Keys.php +0 -36
  294. data/helpers/vendor/composer/composer/src/Composer/SelfUpdate/Versions.php +0 -75
  295. data/helpers/vendor/composer/composer/src/Composer/Util/AuthHelper.php +0 -63
  296. data/helpers/vendor/composer/composer/src/Composer/Util/Bitbucket.php +0 -245
  297. data/helpers/vendor/composer/composer/src/Composer/Util/ComposerMirror.php +0 -57
  298. data/helpers/vendor/composer/composer/src/Composer/Util/ConfigValidator.php +0 -191
  299. data/helpers/vendor/composer/composer/src/Composer/Util/ErrorHandler.php +0 -79
  300. data/helpers/vendor/composer/composer/src/Composer/Util/Filesystem.php +0 -715
  301. data/helpers/vendor/composer/composer/src/Composer/Util/Git.php +0 -374
  302. data/helpers/vendor/composer/composer/src/Composer/Util/GitHub.php +0 -180
  303. data/helpers/vendor/composer/composer/src/Composer/Util/GitLab.php +0 -163
  304. data/helpers/vendor/composer/composer/src/Composer/Util/Hg.php +0 -94
  305. data/helpers/vendor/composer/composer/src/Composer/Util/IniHelper.php +0 -64
  306. data/helpers/vendor/composer/composer/src/Composer/Util/NoProxyPattern.php +0 -147
  307. data/helpers/vendor/composer/composer/src/Composer/Util/Perforce.php +0 -581
  308. data/helpers/vendor/composer/composer/src/Composer/Util/Platform.php +0 -92
  309. data/helpers/vendor/composer/composer/src/Composer/Util/ProcessExecutor.php +0 -192
  310. data/helpers/vendor/composer/composer/src/Composer/Util/RemoteFilesystem.php +0 -1109
  311. data/helpers/vendor/composer/composer/src/Composer/Util/Silencer.php +0 -78
  312. data/helpers/vendor/composer/composer/src/Composer/Util/SpdxLicense.php +0 -24
  313. data/helpers/vendor/composer/composer/src/Composer/Util/StreamContextFactory.php +0 -177
  314. data/helpers/vendor/composer/composer/src/Composer/Util/Svn.php +0 -381
  315. data/helpers/vendor/composer/composer/src/Composer/Util/TlsHelper.php +0 -204
  316. data/helpers/vendor/composer/composer/src/Composer/Util/Url.php +0 -55
  317. data/helpers/vendor/composer/composer/src/Composer/XdebugHandler.php +0 -31
  318. data/helpers/vendor/composer/composer/src/bootstrap.php +0 -24
  319. data/helpers/vendor/composer/installed.json +0 -947
  320. data/helpers/vendor/composer/semver/CHANGELOG.md +0 -72
  321. data/helpers/vendor/composer/semver/LICENSE +0 -19
  322. data/helpers/vendor/composer/semver/README.md +0 -70
  323. data/helpers/vendor/composer/semver/composer.json +0 -58
  324. data/helpers/vendor/composer/semver/src/Comparator.php +0 -111
  325. data/helpers/vendor/composer/semver/src/Constraint/AbstractConstraint.php +0 -63
  326. data/helpers/vendor/composer/semver/src/Constraint/Constraint.php +0 -219
  327. data/helpers/vendor/composer/semver/src/Constraint/ConstraintInterface.php +0 -32
  328. data/helpers/vendor/composer/semver/src/Constraint/EmptyConstraint.php +0 -59
  329. data/helpers/vendor/composer/semver/src/Constraint/MultiConstraint.php +0 -120
  330. data/helpers/vendor/composer/semver/src/Semver.php +0 -127
  331. data/helpers/vendor/composer/semver/src/VersionParser.php +0 -540
  332. data/helpers/vendor/composer/spdx-licenses/.php_cs.dist +0 -59
  333. data/helpers/vendor/composer/spdx-licenses/CHANGELOG.md +0 -89
  334. data/helpers/vendor/composer/spdx-licenses/LICENSE +0 -19
  335. data/helpers/vendor/composer/spdx-licenses/README.md +0 -69
  336. data/helpers/vendor/composer/spdx-licenses/composer.json +0 -56
  337. data/helpers/vendor/composer/spdx-licenses/res/spdx-exceptions.json +0 -101
  338. data/helpers/vendor/composer/spdx-licenses/res/spdx-licenses.json +0 -1932
  339. data/helpers/vendor/composer/spdx-licenses/src/SpdxLicenses.php +0 -343
  340. data/helpers/vendor/composer/xdebug-handler/CHANGELOG.md +0 -55
  341. data/helpers/vendor/composer/xdebug-handler/LICENSE +0 -21
  342. data/helpers/vendor/composer/xdebug-handler/README.md +0 -288
  343. data/helpers/vendor/composer/xdebug-handler/composer.json +0 -40
  344. data/helpers/vendor/composer/xdebug-handler/src/PhpConfig.php +0 -73
  345. data/helpers/vendor/composer/xdebug-handler/src/Process.php +0 -160
  346. data/helpers/vendor/composer/xdebug-handler/src/Status.php +0 -163
  347. data/helpers/vendor/composer/xdebug-handler/src/XdebugHandler.php +0 -565
  348. data/helpers/vendor/justinrainbow/json-schema/.gitattributes +0 -5
  349. data/helpers/vendor/justinrainbow/json-schema/.php_cs.dist +0 -30
  350. data/helpers/vendor/justinrainbow/json-schema/LICENSE +0 -21
  351. data/helpers/vendor/justinrainbow/json-schema/README.md +0 -206
  352. data/helpers/vendor/justinrainbow/json-schema/bin/validate-json +0 -251
  353. data/helpers/vendor/justinrainbow/json-schema/composer.json +0 -76
  354. data/helpers/vendor/justinrainbow/json-schema/demo/README.md +0 -14
  355. data/helpers/vendor/justinrainbow/json-schema/demo/data.json +0 -3
  356. data/helpers/vendor/justinrainbow/json-schema/demo/demo.php +0 -18
  357. data/helpers/vendor/justinrainbow/json-schema/demo/schema.json +0 -3
  358. data/helpers/vendor/justinrainbow/json-schema/dist/schema/json-schema-draft-03.json +0 -174
  359. data/helpers/vendor/justinrainbow/json-schema/dist/schema/json-schema-draft-04.json +0 -150
  360. data/helpers/vendor/justinrainbow/json-schema/phpunit.xml.dist +0 -26
  361. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/BaseConstraint.php +0 -148
  362. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/CollectionConstraint.php +0 -121
  363. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Constraint.php +0 -213
  364. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/ConstraintInterface.php +0 -65
  365. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php +0 -54
  366. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Factory.php +0 -220
  367. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/FormatConstraint.php +0 -214
  368. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/NumberConstraint.php +0 -81
  369. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/ObjectConstraint.php +0 -192
  370. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/SchemaConstraint.php +0 -94
  371. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/StringConstraint.php +0 -60
  372. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/LooseTypeCheck.php +0 -68
  373. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/StrictTypeCheck.php +0 -40
  374. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/TypeCheckInterface.php +0 -18
  375. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeConstraint.php +0 -261
  376. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/UndefinedConstraint.php +0 -413
  377. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Entity/JsonPointer.php +0 -161
  378. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ExceptionInterface.php +0 -7
  379. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidArgumentException.php +0 -17
  380. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidConfigException.php +0 -17
  381. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSchemaException.php +0 -17
  382. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSchemaMediaTypeException.php +0 -17
  383. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSourceUriException.php +0 -17
  384. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/JsonDecodingException.php +0 -40
  385. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ResourceNotFoundException.php +0 -17
  386. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/RuntimeException.php +0 -17
  387. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/UnresolvableJsonPointerException.php +0 -19
  388. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/UriResolverException.php +0 -17
  389. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ValidationException.php +0 -14
  390. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Iterator/ObjectIterator.php +0 -149
  391. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Rfc3339.php +0 -30
  392. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/SchemaStorage.php +0 -169
  393. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/SchemaStorageInterface.php +0 -41
  394. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/AbstractRetriever.php +0 -34
  395. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/Curl.php +0 -83
  396. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/FileGetContents.php +0 -93
  397. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/PredefinedArray.php +0 -56
  398. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/UriRetrieverInterface.php +0 -36
  399. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/UriResolver.php +0 -175
  400. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/UriRetriever.php +0 -349
  401. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/UriResolverInterface.php +0 -26
  402. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/UriRetrieverInterface.php +0 -26
  403. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Validator.php +0 -90
  404. data/helpers/vendor/psr/log/.gitignore +0 -1
  405. data/helpers/vendor/psr/log/LICENSE +0 -19
  406. data/helpers/vendor/psr/log/Psr/Log/AbstractLogger.php +0 -128
  407. data/helpers/vendor/psr/log/Psr/Log/InvalidArgumentException.php +0 -7
  408. data/helpers/vendor/psr/log/Psr/Log/LogLevel.php +0 -18
  409. data/helpers/vendor/psr/log/Psr/Log/LoggerAwareInterface.php +0 -18
  410. data/helpers/vendor/psr/log/Psr/Log/LoggerAwareTrait.php +0 -26
  411. data/helpers/vendor/psr/log/Psr/Log/LoggerInterface.php +0 -123
  412. data/helpers/vendor/psr/log/Psr/Log/LoggerTrait.php +0 -140
  413. data/helpers/vendor/psr/log/Psr/Log/NullLogger.php +0 -28
  414. data/helpers/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php +0 -144
  415. data/helpers/vendor/psr/log/Psr/Log/Test/TestLogger.php +0 -146
  416. data/helpers/vendor/psr/log/README.md +0 -52
  417. data/helpers/vendor/psr/log/composer.json +0 -26
  418. data/helpers/vendor/seld/jsonlint/.gitignore +0 -3
  419. data/helpers/vendor/seld/jsonlint/.travis.yml +0 -25
  420. data/helpers/vendor/seld/jsonlint/CHANGELOG.md +0 -66
  421. data/helpers/vendor/seld/jsonlint/LICENSE +0 -19
  422. data/helpers/vendor/seld/jsonlint/README.md +0 -89
  423. data/helpers/vendor/seld/jsonlint/bin/jsonlint +0 -117
  424. data/helpers/vendor/seld/jsonlint/composer.json +0 -24
  425. data/helpers/vendor/seld/jsonlint/phpunit.xml.dist +0 -25
  426. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/DuplicateKeyException.php +0 -26
  427. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/JsonParser.php +0 -502
  428. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/Lexer.php +0 -217
  429. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/ParsingException.php +0 -28
  430. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/Undefined.php +0 -16
  431. data/helpers/vendor/seld/jsonlint/tests/JsonParserTest.php +0 -230
  432. data/helpers/vendor/seld/jsonlint/tests/bom.json +0 -6
  433. data/helpers/vendor/seld/jsonlint/tests/bootstrap.php +0 -13
  434. data/helpers/vendor/seld/phar-utils/.gitignore +0 -1
  435. data/helpers/vendor/seld/phar-utils/LICENSE +0 -19
  436. data/helpers/vendor/seld/phar-utils/README.md +0 -39
  437. data/helpers/vendor/seld/phar-utils/composer.json +0 -26
  438. data/helpers/vendor/seld/phar-utils/composer.lock +0 -19
  439. data/helpers/vendor/seld/phar-utils/src/Timestamps.php +0 -192
  440. data/helpers/vendor/symfony/console/.gitignore +0 -3
  441. data/helpers/vendor/symfony/console/Application.php +0 -1181
  442. data/helpers/vendor/symfony/console/CHANGELOG.md +0 -140
  443. data/helpers/vendor/symfony/console/Command/Command.php +0 -654
  444. data/helpers/vendor/symfony/console/Command/HelpCommand.php +0 -81
  445. data/helpers/vendor/symfony/console/Command/ListCommand.php +0 -90
  446. data/helpers/vendor/symfony/console/Command/LockableTrait.php +0 -71
  447. data/helpers/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php +0 -37
  448. data/helpers/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php +0 -55
  449. data/helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php +0 -62
  450. data/helpers/vendor/symfony/console/ConsoleEvents.php +0 -47
  451. data/helpers/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +0 -98
  452. data/helpers/vendor/symfony/console/Descriptor/ApplicationDescription.php +0 -144
  453. data/helpers/vendor/symfony/console/Descriptor/Descriptor.php +0 -107
  454. data/helpers/vendor/symfony/console/Descriptor/DescriptorInterface.php +0 -31
  455. data/helpers/vendor/symfony/console/Descriptor/JsonDescriptor.php +0 -168
  456. data/helpers/vendor/symfony/console/Descriptor/MarkdownDescriptor.php +0 -182
  457. data/helpers/vendor/symfony/console/Descriptor/TextDescriptor.php +0 -342
  458. data/helpers/vendor/symfony/console/Descriptor/XmlDescriptor.php +0 -245
  459. data/helpers/vendor/symfony/console/Event/ConsoleCommandEvent.php +0 -60
  460. data/helpers/vendor/symfony/console/Event/ConsoleErrorEvent.php +0 -58
  461. data/helpers/vendor/symfony/console/Event/ConsoleEvent.php +0 -67
  462. data/helpers/vendor/symfony/console/Event/ConsoleTerminateEvent.php +0 -53
  463. data/helpers/vendor/symfony/console/EventListener/ErrorListener.php +0 -91
  464. data/helpers/vendor/symfony/console/Exception/CommandNotFoundException.php +0 -43
  465. data/helpers/vendor/symfony/console/Exception/ExceptionInterface.php +0 -21
  466. data/helpers/vendor/symfony/console/Exception/InvalidArgumentException.php +0 -19
  467. data/helpers/vendor/symfony/console/Exception/InvalidOptionException.php +0 -21
  468. data/helpers/vendor/symfony/console/Exception/LogicException.php +0 -19
  469. data/helpers/vendor/symfony/console/Exception/NamespaceNotFoundException.php +0 -21
  470. data/helpers/vendor/symfony/console/Exception/RuntimeException.php +0 -19
  471. data/helpers/vendor/symfony/console/Formatter/OutputFormatter.php +0 -282
  472. data/helpers/vendor/symfony/console/Formatter/OutputFormatterInterface.php +0 -71
  473. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyle.php +0 -203
  474. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +0 -62
  475. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +0 -110
  476. data/helpers/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php +0 -25
  477. data/helpers/vendor/symfony/console/Helper/DebugFormatterHelper.php +0 -127
  478. data/helpers/vendor/symfony/console/Helper/DescriptorHelper.php +0 -94
  479. data/helpers/vendor/symfony/console/Helper/FormatterHelper.php +0 -106
  480. data/helpers/vendor/symfony/console/Helper/Helper.php +0 -138
  481. data/helpers/vendor/symfony/console/Helper/HelperInterface.php +0 -39
  482. data/helpers/vendor/symfony/console/Helper/HelperSet.php +0 -108
  483. data/helpers/vendor/symfony/console/Helper/InputAwareHelper.php +0 -33
  484. data/helpers/vendor/symfony/console/Helper/ProcessHelper.php +0 -156
  485. data/helpers/vendor/symfony/console/Helper/ProgressBar.php +0 -527
  486. data/helpers/vendor/symfony/console/Helper/ProgressIndicator.php +0 -269
  487. data/helpers/vendor/symfony/console/Helper/QuestionHelper.php +0 -447
  488. data/helpers/vendor/symfony/console/Helper/SymfonyQuestionHelper.php +0 -96
  489. data/helpers/vendor/symfony/console/Helper/Table.php +0 -813
  490. data/helpers/vendor/symfony/console/Helper/TableCell.php +0 -68
  491. data/helpers/vendor/symfony/console/Helper/TableRows.php +0 -32
  492. data/helpers/vendor/symfony/console/Helper/TableSeparator.php +0 -25
  493. data/helpers/vendor/symfony/console/Helper/TableStyle.php +0 -458
  494. data/helpers/vendor/symfony/console/Input/ArgvInput.php +0 -365
  495. data/helpers/vendor/symfony/console/Input/ArrayInput.php +0 -206
  496. data/helpers/vendor/symfony/console/Input/Input.php +0 -203
  497. data/helpers/vendor/symfony/console/Input/InputArgument.php +0 -129
  498. data/helpers/vendor/symfony/console/Input/InputAwareInterface.php +0 -26
  499. data/helpers/vendor/symfony/console/Input/InputDefinition.php +0 -404
  500. data/helpers/vendor/symfony/console/Input/InputInterface.php +0 -163
  501. data/helpers/vendor/symfony/console/Input/InputOption.php +0 -208
  502. data/helpers/vendor/symfony/console/Input/StreamableInputInterface.php +0 -37
  503. data/helpers/vendor/symfony/console/Input/StringInput.php +0 -72
  504. data/helpers/vendor/symfony/console/LICENSE +0 -19
  505. data/helpers/vendor/symfony/console/Logger/ConsoleLogger.php +0 -124
  506. data/helpers/vendor/symfony/console/Output/BufferedOutput.php +0 -45
  507. data/helpers/vendor/symfony/console/Output/ConsoleOutput.php +0 -161
  508. data/helpers/vendor/symfony/console/Output/ConsoleOutputInterface.php +0 -32
  509. data/helpers/vendor/symfony/console/Output/ConsoleSectionOutput.php +0 -141
  510. data/helpers/vendor/symfony/console/Output/NullOutput.php +0 -123
  511. data/helpers/vendor/symfony/console/Output/Output.php +0 -177
  512. data/helpers/vendor/symfony/console/Output/OutputInterface.php +0 -114
  513. data/helpers/vendor/symfony/console/Output/StreamOutput.php +0 -124
  514. data/helpers/vendor/symfony/console/Question/ChoiceQuestion.php +0 -184
  515. data/helpers/vendor/symfony/console/Question/ConfirmationQuestion.php +0 -59
  516. data/helpers/vendor/symfony/console/Question/Question.php +0 -246
  517. data/helpers/vendor/symfony/console/README.md +0 -20
  518. data/helpers/vendor/symfony/console/Resources/bin/hiddeninput.exe +0 -0
  519. data/helpers/vendor/symfony/console/Style/OutputStyle.php +0 -155
  520. data/helpers/vendor/symfony/console/Style/StyleInterface.php +0 -154
  521. data/helpers/vendor/symfony/console/Style/SymfonyStyle.php +0 -438
  522. data/helpers/vendor/symfony/console/Terminal.php +0 -137
  523. data/helpers/vendor/symfony/console/Tester/ApplicationTester.php +0 -77
  524. data/helpers/vendor/symfony/console/Tester/CommandTester.php +0 -78
  525. data/helpers/vendor/symfony/console/Tester/TesterTrait.php +0 -177
  526. data/helpers/vendor/symfony/console/Tests/ApplicationTest.php +0 -1814
  527. data/helpers/vendor/symfony/console/Tests/Command/CommandTest.php +0 -436
  528. data/helpers/vendor/symfony/console/Tests/Command/HelpCommandTest.php +0 -71
  529. data/helpers/vendor/symfony/console/Tests/Command/ListCommandTest.php +0 -113
  530. data/helpers/vendor/symfony/console/Tests/Command/LockableTraitTest.php +0 -67
  531. data/helpers/vendor/symfony/console/Tests/CommandLoader/ContainerCommandLoaderTest.php +0 -61
  532. data/helpers/vendor/symfony/console/Tests/CommandLoader/FactoryCommandLoaderTest.php +0 -60
  533. data/helpers/vendor/symfony/console/Tests/DependencyInjection/AddConsoleCommandPassTest.php +0 -258
  534. data/helpers/vendor/symfony/console/Tests/Descriptor/AbstractDescriptorTest.php +0 -107
  535. data/helpers/vendor/symfony/console/Tests/Descriptor/JsonDescriptorTest.php +0 -35
  536. data/helpers/vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php +0 -45
  537. data/helpers/vendor/symfony/console/Tests/Descriptor/ObjectsProvider.php +0 -82
  538. data/helpers/vendor/symfony/console/Tests/Descriptor/TextDescriptorTest.php +0 -53
  539. data/helpers/vendor/symfony/console/Tests/Descriptor/XmlDescriptorTest.php +0 -27
  540. data/helpers/vendor/symfony/console/Tests/EventListener/ErrorListenerTest.php +0 -156
  541. data/helpers/vendor/symfony/console/Tests/Fixtures/BarBucCommand.php +0 -11
  542. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplication1.php +0 -18
  543. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplication2.php +0 -26
  544. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplicationMbString.php +0 -24
  545. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand1.php +0 -27
  546. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand2.php +0 -32
  547. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand3.php +0 -27
  548. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand4.php +0 -25
  549. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommandMbString.php +0 -32
  550. data/helpers/vendor/symfony/console/Tests/Fixtures/DummyOutput.php +0 -36
  551. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo1Command.php +0 -26
  552. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo2Command.php +0 -21
  553. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo3Command.php +0 -29
  554. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo4Command.php +0 -11
  555. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo5Command.php +0 -10
  556. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo6Command.php +0 -11
  557. data/helpers/vendor/symfony/console/Tests/Fixtures/FooCommand.php +0 -33
  558. data/helpers/vendor/symfony/console/Tests/Fixtures/FooLock2Command.php +0 -28
  559. data/helpers/vendor/symfony/console/Tests/Fixtures/FooLockCommand.php +0 -27
  560. data/helpers/vendor/symfony/console/Tests/Fixtures/FooOptCommand.php +0 -36
  561. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSameCaseLowercaseCommand.php +0 -11
  562. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSameCaseUppercaseCommand.php +0 -11
  563. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced1Command.php +0 -26
  564. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced2Command.php +0 -26
  565. data/helpers/vendor/symfony/console/Tests/Fixtures/FooWithoutAliasCommand.php +0 -21
  566. data/helpers/vendor/symfony/console/Tests/Fixtures/FoobarCommand.php +0 -25
  567. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_0.php +0 -11
  568. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_1.php +0 -13
  569. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_10.php +0 -17
  570. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_11.php +0 -12
  571. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_12.php +0 -13
  572. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_13.php +0 -14
  573. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_14.php +0 -17
  574. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_15.php +0 -14
  575. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_16.php +0 -15
  576. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_17.php +0 -13
  577. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_2.php +0 -16
  578. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_3.php +0 -12
  579. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4.php +0 -34
  580. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4_with_iterators.php +0 -34
  581. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_5.php +0 -37
  582. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_6.php +0 -16
  583. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_7.php +0 -15
  584. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_8.php +0 -26
  585. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_9.php +0 -11
  586. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/interactive_command_1.php +0 -19
  587. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/interactive_output_1.txt +0 -7
  588. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_0.txt +0 -3
  589. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_1.txt +0 -9
  590. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_10.txt +0 -7
  591. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_11.txt +0 -4
  592. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_12.txt +0 -6
  593. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_13.txt +0 -7
  594. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_14.txt +0 -6
  595. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_15.txt +0 -7
  596. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_16.txt +0 -8
  597. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_17.txt +0 -7
  598. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_2.txt +0 -13
  599. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_3.txt +0 -7
  600. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4.txt +0 -32
  601. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4_with_iterators.txt +0 -32
  602. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_5.txt +0 -18
  603. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_6.txt +0 -6
  604. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_7.txt +0 -5
  605. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_8.txt +0 -9
  606. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_9.txt +0 -5
  607. data/helpers/vendor/symfony/console/Tests/Fixtures/TestCommand.php +0 -28
  608. data/helpers/vendor/symfony/console/Tests/Fixtures/TestTiti.php +0 -21
  609. data/helpers/vendor/symfony/console/Tests/Fixtures/TestToto.php +0 -22
  610. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.json +0 -156
  611. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.md +0 -172
  612. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.txt +0 -17
  613. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.xml +0 -104
  614. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.json +0 -509
  615. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.md +0 -431
  616. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.txt +0 -21
  617. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.xml +0 -254
  618. data/helpers/vendor/symfony/console/Tests/Fixtures/application_filtered_namespace.txt +0 -16
  619. data/helpers/vendor/symfony/console/Tests/Fixtures/application_gethelp.txt +0 -1
  620. data/helpers/vendor/symfony/console/Tests/Fixtures/application_mbstring.md +0 -269
  621. data/helpers/vendor/symfony/console/Tests/Fixtures/application_mbstring.txt +0 -19
  622. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception1.txt +0 -5
  623. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception2.txt +0 -7
  624. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception3.txt +0 -18
  625. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception3decorated.txt +0 -18
  626. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception4.txt +0 -6
  627. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1.txt +0 -8
  628. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1decorated.txt +0 -8
  629. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth2.txt +0 -9
  630. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_escapeslines.txt +0 -9
  631. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_linebreaks.txt +0 -11
  632. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run1.txt +0 -17
  633. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run2.txt +0 -29
  634. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run3.txt +0 -29
  635. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run4.txt +0 -1
  636. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.json +0 -15
  637. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.md +0 -12
  638. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.txt +0 -10
  639. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.xml +0 -12
  640. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.json +0 -33
  641. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.md +0 -29
  642. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.txt +0 -16
  643. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.xml +0 -21
  644. data/helpers/vendor/symfony/console/Tests/Fixtures/command_mbstring.md +0 -29
  645. data/helpers/vendor/symfony/console/Tests/Fixtures/command_mbstring.txt +0 -16
  646. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.json +0 -7
  647. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.md +0 -5
  648. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.txt +0 -1
  649. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.xml +0 -5
  650. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.json +0 -7
  651. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.md +0 -7
  652. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.txt +0 -1
  653. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.xml +0 -5
  654. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.json +0 -7
  655. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.md +0 -7
  656. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.txt +0 -1
  657. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.xml +0 -7
  658. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.json +0 -7
  659. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.md +0 -8
  660. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.txt +0 -2
  661. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.xml +0 -6
  662. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.json +0 -7
  663. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.md +0 -7
  664. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.txt +0 -1
  665. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.xml +0 -7
  666. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.json +0 -7
  667. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.md +0 -7
  668. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.txt +0 -1
  669. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.xml +0 -7
  670. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.json +0 -4
  671. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.md +0 -0
  672. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.txt +0 -0
  673. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.xml +0 -5
  674. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.json +0 -12
  675. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.md +0 -7
  676. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.txt +0 -2
  677. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.xml +0 -10
  678. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.json +0 -14
  679. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.md +0 -8
  680. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.txt +0 -2
  681. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.xml +0 -9
  682. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.json +0 -22
  683. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.md +0 -16
  684. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.txt +0 -5
  685. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.xml +0 -14
  686. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.json +0 -9
  687. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.md +0 -6
  688. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.txt +0 -1
  689. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.xml +0 -4
  690. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.json +0 -9
  691. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.md +0 -8
  692. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.txt +0 -1
  693. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.xml +0 -7
  694. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.json +0 -9
  695. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.md +0 -8
  696. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.txt +0 -1
  697. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.xml +0 -5
  698. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.json +0 -9
  699. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.md +0 -8
  700. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.txt +0 -1
  701. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.xml +0 -5
  702. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.json +0 -9
  703. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.md +0 -9
  704. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.txt +0 -2
  705. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.xml +0 -6
  706. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.json +0 -9
  707. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.md +0 -8
  708. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.txt +0 -1
  709. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.xml +0 -5
  710. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.json +0 -9
  711. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.md +0 -8
  712. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.txt +0 -1
  713. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.xml +0 -7
  714. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.json +0 -9
  715. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.md +0 -8
  716. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.txt +0 -1
  717. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.xml +0 -7
  718. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.json +0 -12
  719. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.md +0 -8
  720. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.txt +0 -1
  721. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.xml +0 -8
  722. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleStackTest.php +0 -71
  723. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleTest.php +0 -100
  724. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterTest.php +0 -355
  725. data/helpers/vendor/symfony/console/Tests/Helper/AbstractQuestionHelperTest.php +0 -34
  726. data/helpers/vendor/symfony/console/Tests/Helper/FormatterHelperTest.php +0 -129
  727. data/helpers/vendor/symfony/console/Tests/Helper/HelperSetTest.php +0 -127
  728. data/helpers/vendor/symfony/console/Tests/Helper/HelperTest.php +0 -55
  729. data/helpers/vendor/symfony/console/Tests/Helper/ProcessHelperTest.php +0 -133
  730. data/helpers/vendor/symfony/console/Tests/Helper/ProgressBarTest.php +0 -912
  731. data/helpers/vendor/symfony/console/Tests/Helper/ProgressIndicatorTest.php +0 -183
  732. data/helpers/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php +0 -715
  733. data/helpers/vendor/symfony/console/Tests/Helper/SymfonyQuestionHelperTest.php +0 -168
  734. data/helpers/vendor/symfony/console/Tests/Helper/TableStyleTest.php +0 -28
  735. data/helpers/vendor/symfony/console/Tests/Helper/TableTest.php +0 -1199
  736. data/helpers/vendor/symfony/console/Tests/Input/ArgvInputTest.php +0 -466
  737. data/helpers/vendor/symfony/console/Tests/Input/ArrayInputTest.php +0 -177
  738. data/helpers/vendor/symfony/console/Tests/Input/InputArgumentTest.php +0 -103
  739. data/helpers/vendor/symfony/console/Tests/Input/InputDefinitionTest.php +0 -407
  740. data/helpers/vendor/symfony/console/Tests/Input/InputOptionTest.php +0 -196
  741. data/helpers/vendor/symfony/console/Tests/Input/InputTest.php +0 -149
  742. data/helpers/vendor/symfony/console/Tests/Input/StringInputTest.php +0 -87
  743. data/helpers/vendor/symfony/console/Tests/Logger/ConsoleLoggerTest.php +0 -215
  744. data/helpers/vendor/symfony/console/Tests/Output/ConsoleOutputTest.php +0 -42
  745. data/helpers/vendor/symfony/console/Tests/Output/ConsoleSectionOutputTest.php +0 -163
  746. data/helpers/vendor/symfony/console/Tests/Output/NullOutputTest.php +0 -88
  747. data/helpers/vendor/symfony/console/Tests/Output/OutputTest.php +0 -189
  748. data/helpers/vendor/symfony/console/Tests/Output/StreamOutputTest.php +0 -61
  749. data/helpers/vendor/symfony/console/Tests/Question/ConfirmationQuestionTest.php +0 -62
  750. data/helpers/vendor/symfony/console/Tests/Style/SymfonyStyleTest.php +0 -118
  751. data/helpers/vendor/symfony/console/Tests/TerminalTest.php +0 -59
  752. data/helpers/vendor/symfony/console/Tests/Tester/ApplicationTesterTest.php +0 -113
  753. data/helpers/vendor/symfony/console/Tests/Tester/CommandTesterTest.php +0 -235
  754. data/helpers/vendor/symfony/console/composer.json +0 -56
  755. data/helpers/vendor/symfony/console/phpunit.xml.dist +0 -41
  756. data/helpers/vendor/symfony/contracts/.gitignore +0 -3
  757. data/helpers/vendor/symfony/contracts/CHANGELOG.md +0 -12
  758. data/helpers/vendor/symfony/contracts/Cache/CacheInterface.php +0 -57
  759. data/helpers/vendor/symfony/contracts/Cache/CacheTrait.php +0 -71
  760. data/helpers/vendor/symfony/contracts/Cache/CallbackInterface.php +0 -30
  761. data/helpers/vendor/symfony/contracts/Cache/ItemInterface.php +0 -60
  762. data/helpers/vendor/symfony/contracts/Cache/TagAwareCacheInterface.php +0 -38
  763. data/helpers/vendor/symfony/contracts/LICENSE +0 -19
  764. data/helpers/vendor/symfony/contracts/README.md +0 -70
  765. data/helpers/vendor/symfony/contracts/Service/ResetInterface.php +0 -30
  766. data/helpers/vendor/symfony/contracts/Service/ServiceLocatorTrait.php +0 -97
  767. data/helpers/vendor/symfony/contracts/Service/ServiceSubscriberInterface.php +0 -53
  768. data/helpers/vendor/symfony/contracts/Service/ServiceSubscriberTrait.php +0 -61
  769. data/helpers/vendor/symfony/contracts/Tests/Cache/CacheTraitTest.php +0 -165
  770. data/helpers/vendor/symfony/contracts/Tests/Service/ServiceLocatorTest.php +0 -94
  771. data/helpers/vendor/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php +0 -65
  772. data/helpers/vendor/symfony/contracts/Tests/Translation/TranslatorTest.php +0 -353
  773. data/helpers/vendor/symfony/contracts/Translation/LocaleAwareInterface.php +0 -31
  774. data/helpers/vendor/symfony/contracts/Translation/TranslatorInterface.php +0 -65
  775. data/helpers/vendor/symfony/contracts/Translation/TranslatorTrait.php +0 -255
  776. data/helpers/vendor/symfony/contracts/composer.json +0 -44
  777. data/helpers/vendor/symfony/contracts/phpunit.xml.dist +0 -31
  778. data/helpers/vendor/symfony/filesystem/.gitignore +0 -3
  779. data/helpers/vendor/symfony/filesystem/CHANGELOG.md +0 -59
  780. data/helpers/vendor/symfony/filesystem/Exception/ExceptionInterface.php +0 -21
  781. data/helpers/vendor/symfony/filesystem/Exception/FileNotFoundException.php +0 -34
  782. data/helpers/vendor/symfony/filesystem/Exception/IOException.php +0 -39
  783. data/helpers/vendor/symfony/filesystem/Exception/IOExceptionInterface.php +0 -27
  784. data/helpers/vendor/symfony/filesystem/Exception/InvalidArgumentException.php +0 -19
  785. data/helpers/vendor/symfony/filesystem/Filesystem.php +0 -767
  786. data/helpers/vendor/symfony/filesystem/LICENSE +0 -19
  787. data/helpers/vendor/symfony/filesystem/README.md +0 -13
  788. data/helpers/vendor/symfony/filesystem/Tests/ExceptionTest.php +0 -47
  789. data/helpers/vendor/symfony/filesystem/Tests/FilesystemTest.php +0 -1686
  790. data/helpers/vendor/symfony/filesystem/Tests/FilesystemTestCase.php +0 -166
  791. data/helpers/vendor/symfony/filesystem/Tests/Fixtures/MockStream/MockStream.php +0 -46
  792. data/helpers/vendor/symfony/filesystem/composer.json +0 -34
  793. data/helpers/vendor/symfony/filesystem/phpunit.xml.dist +0 -30
  794. data/helpers/vendor/symfony/finder/.gitignore +0 -3
  795. data/helpers/vendor/symfony/finder/CHANGELOG.md +0 -69
  796. data/helpers/vendor/symfony/finder/Comparator/Comparator.php +0 -98
  797. data/helpers/vendor/symfony/finder/Comparator/DateComparator.php +0 -51
  798. data/helpers/vendor/symfony/finder/Comparator/NumberComparator.php +0 -79
  799. data/helpers/vendor/symfony/finder/Exception/AccessDeniedException.php +0 -19
  800. data/helpers/vendor/symfony/finder/Finder.php +0 -783
  801. data/helpers/vendor/symfony/finder/Glob.php +0 -116
  802. data/helpers/vendor/symfony/finder/Iterator/CustomFilterIterator.php +0 -61
  803. data/helpers/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php +0 -58
  804. data/helpers/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php +0 -45
  805. data/helpers/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +0 -84
  806. data/helpers/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php +0 -53
  807. data/helpers/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php +0 -58
  808. data/helpers/vendor/symfony/finder/Iterator/FilenameFilterIterator.php +0 -47
  809. data/helpers/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +0 -112
  810. data/helpers/vendor/symfony/finder/Iterator/PathFilterIterator.php +0 -56
  811. data/helpers/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +0 -140
  812. data/helpers/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php +0 -57
  813. data/helpers/vendor/symfony/finder/Iterator/SortableIterator.php +0 -99
  814. data/helpers/vendor/symfony/finder/LICENSE +0 -19
  815. data/helpers/vendor/symfony/finder/README.md +0 -14
  816. data/helpers/vendor/symfony/finder/SplFileInfo.php +0 -78
  817. data/helpers/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php +0 -65
  818. data/helpers/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php +0 -64
  819. data/helpers/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php +0 -108
  820. data/helpers/vendor/symfony/finder/Tests/FinderTest.php +0 -1384
  821. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/a +0 -0
  822. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/b/c.neon +0 -0
  823. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/b/d.neon +0 -0
  824. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat +0 -0
  825. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat +0 -0
  826. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/a.dat +0 -0
  827. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy +0 -0
  828. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy +0 -0
  829. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy +0 -0
  830. data/helpers/vendor/symfony/finder/Tests/Fixtures/dolor.txt +0 -2
  831. data/helpers/vendor/symfony/finder/Tests/Fixtures/ipsum.txt +0 -2
  832. data/helpers/vendor/symfony/finder/Tests/Fixtures/lorem.txt +0 -2
  833. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/.dot +0 -1
  834. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/a +0 -0
  835. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon +0 -0
  836. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon +0 -0
  837. data/helpers/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat +0 -0
  838. 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
  839. data/helpers/vendor/symfony/finder/Tests/GlobTest.php +0 -95
  840. data/helpers/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php +0 -46
  841. data/helpers/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php +0 -92
  842. data/helpers/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php +0 -103
  843. data/helpers/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php +0 -107
  844. data/helpers/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php +0 -82
  845. data/helpers/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php +0 -86
  846. data/helpers/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php +0 -54
  847. data/helpers/vendor/symfony/finder/Tests/Iterator/Iterator.php +0 -55
  848. data/helpers/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php +0 -100
  849. data/helpers/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php +0 -21
  850. data/helpers/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php +0 -132
  851. data/helpers/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php +0 -71
  852. data/helpers/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php +0 -82
  853. data/helpers/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php +0 -128
  854. data/helpers/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php +0 -59
  855. data/helpers/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php +0 -70
  856. data/helpers/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php +0 -262
  857. data/helpers/vendor/symfony/finder/composer.json +0 -33
  858. data/helpers/vendor/symfony/finder/phpunit.xml.dist +0 -30
  859. data/helpers/vendor/symfony/polyfill-ctype/Ctype.php +0 -227
  860. data/helpers/vendor/symfony/polyfill-ctype/LICENSE +0 -19
  861. data/helpers/vendor/symfony/polyfill-ctype/README.md +0 -12
  862. data/helpers/vendor/symfony/polyfill-ctype/bootstrap.php +0 -26
  863. data/helpers/vendor/symfony/polyfill-ctype/composer.json +0 -34
  864. data/helpers/vendor/symfony/polyfill-mbstring/LICENSE +0 -19
  865. data/helpers/vendor/symfony/polyfill-mbstring/Mbstring.php +0 -800
  866. data/helpers/vendor/symfony/polyfill-mbstring/README.md +0 -13
  867. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +0 -1096
  868. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +0 -5
  869. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +0 -1104
  870. data/helpers/vendor/symfony/polyfill-mbstring/bootstrap.php +0 -58
  871. data/helpers/vendor/symfony/polyfill-mbstring/composer.json +0 -34
  872. data/helpers/vendor/symfony/process/.gitignore +0 -3
  873. data/helpers/vendor/symfony/process/CHANGELOG.md +0 -90
  874. data/helpers/vendor/symfony/process/Exception/ExceptionInterface.php +0 -21
  875. data/helpers/vendor/symfony/process/Exception/InvalidArgumentException.php +0 -21
  876. data/helpers/vendor/symfony/process/Exception/LogicException.php +0 -21
  877. data/helpers/vendor/symfony/process/Exception/ProcessFailedException.php +0 -54
  878. data/helpers/vendor/symfony/process/Exception/ProcessSignaledException.php +0 -41
  879. data/helpers/vendor/symfony/process/Exception/ProcessTimedOutException.php +0 -69
  880. data/helpers/vendor/symfony/process/Exception/RuntimeException.php +0 -21
  881. data/helpers/vendor/symfony/process/ExecutableFinder.php +0 -88
  882. data/helpers/vendor/symfony/process/InputStream.php +0 -90
  883. data/helpers/vendor/symfony/process/LICENSE +0 -19
  884. data/helpers/vendor/symfony/process/PhpExecutableFinder.php +0 -101
  885. data/helpers/vendor/symfony/process/PhpProcess.php +0 -75
  886. data/helpers/vendor/symfony/process/Pipes/AbstractPipes.php +0 -178
  887. data/helpers/vendor/symfony/process/Pipes/PipesInterface.php +0 -67
  888. data/helpers/vendor/symfony/process/Pipes/UnixPipes.php +0 -153
  889. data/helpers/vendor/symfony/process/Pipes/WindowsPipes.php +0 -191
  890. data/helpers/vendor/symfony/process/Process.php +0 -1652
  891. data/helpers/vendor/symfony/process/ProcessUtils.php +0 -69
  892. data/helpers/vendor/symfony/process/README.md +0 -13
  893. data/helpers/vendor/symfony/process/Tests/ExecutableFinderTest.php +0 -178
  894. data/helpers/vendor/symfony/process/Tests/KillableProcessWithOutput.php +0 -25
  895. data/helpers/vendor/symfony/process/Tests/NonStopableProcess.php +0 -47
  896. data/helpers/vendor/symfony/process/Tests/PhpExecutableFinderTest.php +0 -49
  897. data/helpers/vendor/symfony/process/Tests/PhpProcessTest.php +0 -63
  898. data/helpers/vendor/symfony/process/Tests/PipeStdinInStdoutStdErrStreamSelect.php +0 -72
  899. data/helpers/vendor/symfony/process/Tests/ProcessFailedExceptionTest.php +0 -137
  900. data/helpers/vendor/symfony/process/Tests/ProcessTest.php +0 -1537
  901. data/helpers/vendor/symfony/process/Tests/SignalListener.php +0 -21
  902. data/helpers/vendor/symfony/process/composer.json +0 -33
  903. data/helpers/vendor/symfony/process/phpunit.xml.dist +0 -30
@@ -1,92 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Composer.
5
- *
6
- * (c) Nils Adermann <naderman@naderman.de>
7
- * Jordi Boggiano <j.boggiano@seld.be>
8
- *
9
- * For the full copyright and license information, please view the LICENSE
10
- * file that was distributed with this source code.
11
- */
12
-
13
- namespace Composer\Util;
14
-
15
- /**
16
- * Platform helper for uniform platform-specific tests.
17
- *
18
- * @author Niels Keurentjes <niels.keurentjes@omines.com>
19
- */
20
- class Platform
21
- {
22
- /**
23
- * Parses tildes and environment variables in paths.
24
- *
25
- * @param string $path
26
- * @return string
27
- */
28
- public static function expandPath($path)
29
- {
30
- if (preg_match('#^~[\\/]#', $path)) {
31
- return self::getUserDirectory() . substr($path, 1);
32
- }
33
-
34
- return preg_replace_callback('#^(\$|(?P<percent>%))(?P<var>\w++)(?(percent)%)(?P<path>.*)#', function ($matches) {
35
- // Treat HOME as an alias for USERPROFILE on Windows for legacy reasons
36
- if (Platform::isWindows() && $matches['var'] == 'HOME') {
37
- return (getenv('HOME') ?: getenv('USERPROFILE')) . $matches['path'];
38
- }
39
-
40
- return getenv($matches['var']) . $matches['path'];
41
- }, $path);
42
- }
43
-
44
- /**
45
- * @throws \RuntimeException If the user home could not reliably be determined
46
- * @return string The formal user home as detected from environment parameters
47
- */
48
- public static function getUserDirectory()
49
- {
50
- if (false !== ($home = getenv('HOME'))) {
51
- return $home;
52
- }
53
-
54
- if (self::isWindows() && false !== ($home = getenv('USERPROFILE'))) {
55
- return $home;
56
- }
57
-
58
- if (function_exists('posix_getuid') && function_exists('posix_getpwuid')) {
59
- $info = posix_getpwuid(posix_getuid());
60
-
61
- return $info['dir'];
62
- }
63
-
64
- throw new \RuntimeException('Could not determine user directory');
65
- }
66
-
67
- /**
68
- * @return bool Whether the host machine is running a Windows OS
69
- */
70
- public static function isWindows()
71
- {
72
- return defined('PHP_WINDOWS_VERSION_BUILD');
73
- }
74
-
75
- /**
76
- * @param string $str
77
- * @return int return a guaranteed binary length of the string, regardless of silly mbstring configs
78
- */
79
- public static function strlen($str)
80
- {
81
- static $useMbString = null;
82
- if (null === $useMbString) {
83
- $useMbString = function_exists('mb_strlen') && ini_get('mbstring.func_overload');
84
- }
85
-
86
- if ($useMbString) {
87
- return mb_strlen($str, '8bit');
88
- }
89
-
90
- return strlen($str);
91
- }
92
- }
@@ -1,192 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Composer.
5
- *
6
- * (c) Nils Adermann <naderman@naderman.de>
7
- * Jordi Boggiano <j.boggiano@seld.be>
8
- *
9
- * For the full copyright and license information, please view the LICENSE
10
- * file that was distributed with this source code.
11
- */
12
-
13
- namespace Composer\Util;
14
-
15
- use Composer\IO\IOInterface;
16
- use Symfony\Component\Process\Process;
17
- use Symfony\Component\Process\ProcessUtils;
18
-
19
- /**
20
- * @author Robert Schönthal <seroscho@googlemail.com>
21
- */
22
- class ProcessExecutor
23
- {
24
- protected static $timeout = 300;
25
-
26
- protected $captureOutput;
27
- protected $errorOutput;
28
- protected $io;
29
-
30
- public function __construct(IOInterface $io = null)
31
- {
32
- $this->io = $io;
33
- }
34
-
35
- /**
36
- * runs a process on the commandline
37
- *
38
- * @param string $command the command to execute
39
- * @param mixed $output the output will be written into this var if passed by ref
40
- * if a callable is passed it will be used as output handler
41
- * @param string $cwd the working directory
42
- * @return int statuscode
43
- */
44
- public function execute($command, &$output = null, $cwd = null)
45
- {
46
- if ($this->io && $this->io->isDebug()) {
47
- $safeCommand = preg_replace_callback('{://(?P<user>[^:/\s]+):(?P<password>[^@\s/]+)@}i', function ($m) {
48
- if (preg_match('{^[a-f0-9]{12,}$}', $m['user'])) {
49
- return '://***:***@';
50
- }
51
-
52
- return '://'.$m['user'].':***@';
53
- }, $command);
54
- $this->io->writeError('Executing command ('.($cwd ?: 'CWD').'): '.$safeCommand);
55
- }
56
-
57
- // make sure that null translate to the proper directory in case the dir is a symlink
58
- // and we call a git command, because msysgit does not handle symlinks properly
59
- if (null === $cwd && Platform::isWindows() && false !== strpos($command, 'git') && getcwd()) {
60
- $cwd = realpath(getcwd());
61
- }
62
-
63
- $this->captureOutput = func_num_args() > 1;
64
- $this->errorOutput = null;
65
-
66
- // TODO in v3, commands should be passed in as arrays of cmd + args
67
- if (method_exists('Symfony\Component\Process\Process', 'fromShellCommandline')) {
68
- $process = Process::fromShellCommandline($command, $cwd, null, null, static::getTimeout());
69
- } else {
70
- $process = new Process($command, $cwd, null, null, static::getTimeout());
71
- }
72
-
73
- $callback = is_callable($output) ? $output : array($this, 'outputHandler');
74
- $process->run($callback);
75
-
76
- if ($this->captureOutput && !is_callable($output)) {
77
- $output = $process->getOutput();
78
- }
79
-
80
- $this->errorOutput = $process->getErrorOutput();
81
-
82
- return $process->getExitCode();
83
- }
84
-
85
- public function splitLines($output)
86
- {
87
- $output = trim($output);
88
-
89
- return ((string) $output === '') ? array() : preg_split('{\r?\n}', $output);
90
- }
91
-
92
- /**
93
- * Get any error output from the last command
94
- *
95
- * @return string
96
- */
97
- public function getErrorOutput()
98
- {
99
- return $this->errorOutput;
100
- }
101
-
102
- public function outputHandler($type, $buffer)
103
- {
104
- if ($this->captureOutput) {
105
- return;
106
- }
107
-
108
- if (null === $this->io) {
109
- echo $buffer;
110
-
111
- return;
112
- }
113
-
114
- if (Process::ERR === $type) {
115
- $this->io->writeError($buffer, false);
116
- } else {
117
- $this->io->write($buffer, false);
118
- }
119
- }
120
-
121
- public static function getTimeout()
122
- {
123
- return static::$timeout;
124
- }
125
-
126
- public static function setTimeout($timeout)
127
- {
128
- static::$timeout = $timeout;
129
- }
130
-
131
- /**
132
- * Escapes a string to be used as a shell argument.
133
- *
134
- * @param string $argument The argument that will be escaped
135
- *
136
- * @return string The escaped argument
137
- */
138
- public static function escape($argument)
139
- {
140
- return self::escapeArgument($argument);
141
- }
142
-
143
- /**
144
- * Copy of ProcessUtils::escapeArgument() that is deprecated in Symfony 3.3 and removed in Symfony 4.
145
- *
146
- * @param string $argument
147
- *
148
- * @return string
149
- */
150
- private static function escapeArgument($argument)
151
- {
152
- //Fix for PHP bug #43784 escapeshellarg removes % from given string
153
- //Fix for PHP bug #49446 escapeshellarg doesn't work on Windows
154
- //@see https://bugs.php.net/bug.php?id=43784
155
- //@see https://bugs.php.net/bug.php?id=49446
156
- if ('\\' === DIRECTORY_SEPARATOR) {
157
- if ('' === $argument) {
158
- return escapeshellarg($argument);
159
- }
160
-
161
- $escapedArgument = '';
162
- $quote = false;
163
- foreach (preg_split('/(")/', $argument, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE) as $part) {
164
- if ('"' === $part) {
165
- $escapedArgument .= '\\"';
166
- } elseif (self::isSurroundedBy($part, '%')) {
167
- // Avoid environment variable expansion
168
- $escapedArgument .= '^%"'.substr($part, 1, -1).'"^%';
169
- } else {
170
- // escape trailing backslash
171
- if ('\\' === substr($part, -1)) {
172
- $part .= '\\';
173
- }
174
- $quote = true;
175
- $escapedArgument .= $part;
176
- }
177
- }
178
- if ($quote) {
179
- $escapedArgument = '"'.$escapedArgument.'"';
180
- }
181
-
182
- return $escapedArgument;
183
- }
184
-
185
- return "'".str_replace("'", "'\\''", $argument)."'";
186
- }
187
-
188
- private static function isSurroundedBy($arg, $char)
189
- {
190
- return 2 < strlen($arg) && $char === $arg[0] && $char === $arg[strlen($arg) - 1];
191
- }
192
- }
@@ -1,1109 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Composer.
5
- *
6
- * (c) Nils Adermann <naderman@naderman.de>
7
- * Jordi Boggiano <j.boggiano@seld.be>
8
- *
9
- * For the full copyright and license information, please view the LICENSE
10
- * file that was distributed with this source code.
11
- */
12
-
13
- namespace Composer\Util;
14
-
15
- use Composer\Config;
16
- use Composer\Composer;
17
- use Composer\Semver\Constraint\Constraint;
18
- use Composer\Package\Version\VersionParser;
19
- use Composer\IO\IOInterface;
20
- use Composer\Downloader\TransportException;
21
- use Composer\CaBundle\CaBundle;
22
- use Psr\Log\LoggerInterface;
23
-
24
- /**
25
- * @author François Pluchino <francois.pluchino@opendisplay.com>
26
- * @author Jordi Boggiano <j.boggiano@seld.be>
27
- * @author Nils Adermann <naderman@naderman.de>
28
- */
29
- class RemoteFilesystem
30
- {
31
- private $io;
32
- private $config;
33
- private $scheme;
34
- private $bytesMax;
35
- private $originUrl;
36
- private $fileUrl;
37
- private $fileName;
38
- private $retry;
39
- private $progress;
40
- private $lastProgress;
41
- private $options = array();
42
- private $peerCertificateMap = array();
43
- private $disableTls = false;
44
- private $retryAuthFailure;
45
- private $lastHeaders;
46
- private $storeAuth;
47
- private $degradedMode = false;
48
- private $redirects;
49
- private $maxRedirects = 20;
50
-
51
- /**
52
- * Constructor.
53
- *
54
- * @param IOInterface $io The IO instance
55
- * @param Config $config The config
56
- * @param array $options The options
57
- * @param bool $disableTls
58
- */
59
- public function __construct(IOInterface $io, Config $config = null, array $options = array(), $disableTls = false)
60
- {
61
- $this->io = $io;
62
-
63
- // Setup TLS options
64
- // The cafile option can be set via config.json
65
- if ($disableTls === false) {
66
- $this->options = $this->getTlsDefaults($options);
67
- } else {
68
- $this->disableTls = true;
69
- }
70
-
71
- // handle the other externally set options normally.
72
- $this->options = array_replace_recursive($this->options, $options);
73
- $this->config = $config;
74
- }
75
-
76
- /**
77
- * Copy the remote file in local.
78
- *
79
- * @param string $originUrl The origin URL
80
- * @param string $fileUrl The file URL
81
- * @param string $fileName the local filename
82
- * @param bool $progress Display the progression
83
- * @param array $options Additional context options
84
- *
85
- * @return bool true
86
- */
87
- public function copy($originUrl, $fileUrl, $fileName, $progress = true, $options = array())
88
- {
89
- return $this->get($originUrl, $fileUrl, $options, $fileName, $progress);
90
- }
91
-
92
- /**
93
- * Get the content.
94
- *
95
- * @param string $originUrl The origin URL
96
- * @param string $fileUrl The file URL
97
- * @param bool $progress Display the progression
98
- * @param array $options Additional context options
99
- *
100
- * @return bool|string The content
101
- */
102
- public function getContents($originUrl, $fileUrl, $progress = true, $options = array())
103
- {
104
- return $this->get($originUrl, $fileUrl, $options, null, $progress);
105
- }
106
-
107
- /**
108
- * Retrieve the options set in the constructor
109
- *
110
- * @return array Options
111
- */
112
- public function getOptions()
113
- {
114
- return $this->options;
115
- }
116
-
117
- /**
118
- * Merges new options
119
- *
120
- * @param array $options
121
- */
122
- public function setOptions(array $options)
123
- {
124
- $this->options = array_replace_recursive($this->options, $options);
125
- }
126
-
127
- /**
128
- * Check is disable TLS.
129
- *
130
- * @return bool
131
- */
132
- public function isTlsDisabled()
133
- {
134
- return $this->disableTls === true;
135
- }
136
-
137
- /**
138
- * Returns the headers of the last request
139
- *
140
- * @return array
141
- */
142
- public function getLastHeaders()
143
- {
144
- return $this->lastHeaders;
145
- }
146
-
147
- /**
148
- * @param array $headers array of returned headers like from getLastHeaders()
149
- * @param string $name header name (case insensitive)
150
- * @return string|null
151
- */
152
- public function findHeaderValue(array $headers, $name)
153
- {
154
- $value = null;
155
- foreach ($headers as $header) {
156
- if (preg_match('{^'.$name.':\s*(.+?)\s*$}i', $header, $match)) {
157
- $value = $match[1];
158
- } elseif (preg_match('{^HTTP/}i', $header)) {
159
- // In case of redirects, http_response_headers contains the headers of all responses
160
- // so we reset the flag when a new response is being parsed as we are only interested in the last response
161
- $value = null;
162
- }
163
- }
164
-
165
- return $value;
166
- }
167
-
168
- /**
169
- * @param array $headers array of returned headers like from getLastHeaders()
170
- * @return int|null
171
- */
172
- public function findStatusCode(array $headers)
173
- {
174
- $value = null;
175
- foreach ($headers as $header) {
176
- if (preg_match('{^HTTP/\S+ (\d+)}i', $header, $match)) {
177
- // In case of redirects, http_response_headers contains the headers of all responses
178
- // so we can not return directly and need to keep iterating
179
- $value = (int) $match[1];
180
- }
181
- }
182
-
183
- return $value;
184
- }
185
-
186
- /**
187
- * @param array $headers array of returned headers like from getLastHeaders()
188
- * @return string|null
189
- */
190
- public function findStatusMessage(array $headers)
191
- {
192
- $value = null;
193
- foreach ($headers as $header) {
194
- if (preg_match('{^HTTP/\S+ \d+}i', $header)) {
195
- // In case of redirects, http_response_headers contains the headers of all responses
196
- // so we can not return directly and need to keep iterating
197
- $value = $header;
198
- }
199
- }
200
-
201
- return $value;
202
- }
203
-
204
- /**
205
- * Get file content or copy action.
206
- *
207
- * @param string $originUrl The origin URL
208
- * @param string $fileUrl The file URL
209
- * @param array $additionalOptions context options
210
- * @param string $fileName the local filename
211
- * @param bool $progress Display the progression
212
- *
213
- * @throws TransportException|\Exception
214
- * @throws TransportException When the file could not be downloaded
215
- *
216
- * @return bool|string
217
- */
218
- protected function get($originUrl, $fileUrl, $additionalOptions = array(), $fileName = null, $progress = true)
219
- {
220
- if (strpos($originUrl, '.github.com') === (strlen($originUrl) - 11)) {
221
- $originUrl = 'github.com';
222
- }
223
-
224
- // Gitlab can be installed in a non-root context (i.e. gitlab.com/foo). When downloading archives the originUrl
225
- // is the host without the path, so we look for the registered gitlab-domains matching the host here
226
- if (
227
- $this->config
228
- && is_array($this->config->get('gitlab-domains'))
229
- && false === strpos($originUrl, '/')
230
- && !in_array($originUrl, $this->config->get('gitlab-domains'))
231
- ) {
232
- foreach ($this->config->get('gitlab-domains') as $gitlabDomain) {
233
- if (0 === strpos($gitlabDomain, $originUrl)) {
234
- $originUrl = $gitlabDomain;
235
- break;
236
- }
237
- }
238
- unset($gitlabDomain);
239
- }
240
-
241
- $this->scheme = parse_url($fileUrl, PHP_URL_SCHEME);
242
- $this->bytesMax = 0;
243
- $this->originUrl = $originUrl;
244
- $this->fileUrl = $fileUrl;
245
- $this->fileName = $fileName;
246
- $this->progress = $progress;
247
- $this->lastProgress = null;
248
- $this->retryAuthFailure = true;
249
- $this->lastHeaders = array();
250
- $this->redirects = 1; // The first request counts.
251
-
252
- // capture username/password from URL if there is one
253
- if (preg_match('{^https?://([^:/]+):([^@/]+)@([^/]+)}i', $fileUrl, $match)) {
254
- $this->io->setAuthentication($originUrl, rawurldecode($match[1]), rawurldecode($match[2]));
255
- }
256
-
257
- $tempAdditionalOptions = $additionalOptions;
258
- if (isset($tempAdditionalOptions['retry-auth-failure'])) {
259
- $this->retryAuthFailure = (bool) $tempAdditionalOptions['retry-auth-failure'];
260
-
261
- unset($tempAdditionalOptions['retry-auth-failure']);
262
- }
263
-
264
- $isRedirect = false;
265
- if (isset($tempAdditionalOptions['redirects'])) {
266
- $this->redirects = $tempAdditionalOptions['redirects'];
267
- $isRedirect = true;
268
-
269
- unset($tempAdditionalOptions['redirects']);
270
- }
271
-
272
- $options = $this->getOptionsForUrl($originUrl, $tempAdditionalOptions);
273
- unset($tempAdditionalOptions);
274
-
275
- $origFileUrl = $fileUrl;
276
-
277
- if (isset($options['github-token'])) {
278
- // only add the access_token if it is actually a github URL (in case we were redirected to S3)
279
- if (preg_match('{^https?://([a-z0-9-]+\.)*github\.com/}', $fileUrl)) {
280
- $fileUrl .= (false === strpos($fileUrl, '?') ? '?' : '&') . 'access_token='.$options['github-token'];
281
- }
282
- unset($options['github-token']);
283
- }
284
-
285
- if (isset($options['gitlab-token'])) {
286
- $fileUrl .= (false === strpos($fileUrl, '?') ? '?' : '&') . 'access_token='.$options['gitlab-token'];
287
- unset($options['gitlab-token']);
288
- }
289
-
290
- if (isset($options['http'])) {
291
- $options['http']['ignore_errors'] = true;
292
- }
293
-
294
- if ($this->degradedMode && substr($fileUrl, 0, 26) === 'http://repo.packagist.org/') {
295
- // access packagist using the resolved IPv4 instead of the hostname to force IPv4 protocol
296
- $fileUrl = 'http://' . gethostbyname('repo.packagist.org') . substr($fileUrl, 20);
297
- $degradedPackagist = true;
298
- }
299
-
300
- $ctx = StreamContextFactory::getContext($fileUrl, $options, array('notification' => array($this, 'callbackGet')));
301
-
302
- $actualContextOptions = stream_context_get_options($ctx);
303
- $usingProxy = !empty($actualContextOptions['http']['proxy']) ? ' using proxy ' . $actualContextOptions['http']['proxy'] : '';
304
- $this->io->writeError((substr($origFileUrl, 0, 4) === 'http' ? 'Downloading ' : 'Reading ') . $origFileUrl . $usingProxy, true, IOInterface::DEBUG);
305
- unset($origFileUrl, $actualContextOptions);
306
-
307
- // Check for secure HTTP, but allow insecure Packagist calls to $hashed providers as file integrity is verified with sha256
308
- if ((!preg_match('{^http://(repo\.)?packagist\.org/p/}', $fileUrl) || (false === strpos($fileUrl, '$') && false === strpos($fileUrl, '%24'))) && empty($degradedPackagist) && $this->config) {
309
- $this->config->prohibitUrlByConfig($fileUrl, $this->io);
310
- }
311
-
312
- if ($this->progress && !$isRedirect) {
313
- $this->io->writeError("Downloading (<comment>connecting...</comment>)", false);
314
- }
315
-
316
- $errorMessage = '';
317
- $errorCode = 0;
318
- $result = false;
319
- set_error_handler(function ($code, $msg) use (&$errorMessage) {
320
- if ($errorMessage) {
321
- $errorMessage .= "\n";
322
- }
323
- $errorMessage .= preg_replace('{^file_get_contents\(.*?\): }', '', $msg);
324
- });
325
- try {
326
- $result = $this->getRemoteContents($originUrl, $fileUrl, $ctx, $http_response_header);
327
-
328
- if (!empty($http_response_header[0])) {
329
- $statusCode = $this->findStatusCode($http_response_header);
330
- if ($statusCode >= 400 && $this->findHeaderValue($http_response_header, 'content-type') === 'application/json') {
331
- self::outputWarnings($this->io, $originUrl, json_decode($result, true));
332
- }
333
-
334
- if (in_array($statusCode, array(401, 403)) && $this->retryAuthFailure) {
335
- $this->promptAuthAndRetry($statusCode, $this->findStatusMessage($http_response_header), null, $http_response_header);
336
- }
337
- }
338
-
339
- $contentLength = !empty($http_response_header[0]) ? $this->findHeaderValue($http_response_header, 'content-length') : null;
340
- if ($contentLength && Platform::strlen($result) < $contentLength) {
341
- // alas, this is not possible via the stream callback because STREAM_NOTIFY_COMPLETED is documented, but not implemented anywhere in PHP
342
- $e = new TransportException('Content-Length mismatch, received '.Platform::strlen($result).' bytes out of the expected '.$contentLength);
343
- $e->setHeaders($http_response_header);
344
- $e->setStatusCode($this->findStatusCode($http_response_header));
345
- $e->setResponse($result);
346
- $this->io->writeError('Content-Length mismatch, received '.Platform::strlen($result).' out of '.$contentLength.' bytes: (' . base64_encode($result).')', true, IOInterface::DEBUG);
347
-
348
- throw $e;
349
- }
350
-
351
- if (PHP_VERSION_ID < 50600 && !empty($options['ssl']['peer_fingerprint'])) {
352
- // Emulate fingerprint validation on PHP < 5.6
353
- $params = stream_context_get_params($ctx);
354
- $expectedPeerFingerprint = $options['ssl']['peer_fingerprint'];
355
- $peerFingerprint = TlsHelper::getCertificateFingerprint($params['options']['ssl']['peer_certificate']);
356
-
357
- // Constant time compare??!
358
- if ($expectedPeerFingerprint !== $peerFingerprint) {
359
- throw new TransportException('Peer fingerprint did not match');
360
- }
361
- }
362
- } catch (\Exception $e) {
363
- if ($e instanceof TransportException && !empty($http_response_header[0])) {
364
- $e->setHeaders($http_response_header);
365
- $e->setStatusCode($this->findStatusCode($http_response_header));
366
- }
367
- if ($e instanceof TransportException && $result !== false) {
368
- $e->setResponse($result);
369
- }
370
- $result = false;
371
- }
372
- if ($errorMessage && !filter_var(ini_get('allow_url_fopen'), FILTER_VALIDATE_BOOLEAN)) {
373
- $errorMessage = 'allow_url_fopen must be enabled in php.ini ('.$errorMessage.')';
374
- }
375
- restore_error_handler();
376
- if (isset($e) && !$this->retry) {
377
- if (!$this->degradedMode && false !== strpos($e->getMessage(), 'Operation timed out')) {
378
- $this->degradedMode = true;
379
- $this->io->writeError('');
380
- $this->io->writeError(array(
381
- '<error>'.$e->getMessage().'</error>',
382
- '<error>Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info</error>',
383
- ));
384
-
385
- return $this->get($this->originUrl, $this->fileUrl, $additionalOptions, $this->fileName, $this->progress);
386
- }
387
-
388
- throw $e;
389
- }
390
-
391
- $statusCode = null;
392
- $contentType = null;
393
- $locationHeader = null;
394
- if (!empty($http_response_header[0])) {
395
- $statusCode = $this->findStatusCode($http_response_header);
396
- $contentType = $this->findHeaderValue($http_response_header, 'content-type');
397
- $locationHeader = $this->findHeaderValue($http_response_header, 'location');
398
- }
399
-
400
- // check for bitbucket login page asking to authenticate
401
- if ($originUrl === 'bitbucket.org'
402
- && !$this->isPublicBitBucketDownload($fileUrl)
403
- && substr($fileUrl, -4) === '.zip'
404
- && (!$locationHeader || substr($locationHeader, -4) !== '.zip')
405
- && $contentType && preg_match('{^text/html\b}i', $contentType)
406
- ) {
407
- $result = false;
408
- if ($this->retryAuthFailure) {
409
- $this->promptAuthAndRetry(401);
410
- }
411
- }
412
-
413
- // check for gitlab 404 when downloading archives
414
- if ($statusCode === 404
415
- && $this->config && in_array($originUrl, $this->config->get('gitlab-domains'), true)
416
- && false !== strpos($fileUrl, 'archive.zip')
417
- ) {
418
- $result = false;
419
- if ($this->retryAuthFailure) {
420
- $this->promptAuthAndRetry(401);
421
- }
422
- }
423
-
424
- // handle 3xx redirects, 304 Not Modified is excluded
425
- $hasFollowedRedirect = false;
426
- if ($statusCode >= 300 && $statusCode <= 399 && $statusCode !== 304 && $this->redirects < $this->maxRedirects) {
427
- $hasFollowedRedirect = true;
428
- $result = $this->handleRedirect($http_response_header, $additionalOptions, $result);
429
- }
430
-
431
- // fail 4xx and 5xx responses and capture the response
432
- if ($statusCode && $statusCode >= 400 && $statusCode <= 599) {
433
- if (!$this->retry) {
434
- if ($this->progress && !$this->retry && !$isRedirect) {
435
- $this->io->overwriteError("Downloading (<error>failed</error>)", false);
436
- }
437
-
438
- $e = new TransportException('The "'.$this->fileUrl.'" file could not be downloaded ('.$http_response_header[0].')', $statusCode);
439
- $e->setHeaders($http_response_header);
440
- $e->setResponse($result);
441
- $e->setStatusCode($statusCode);
442
- throw $e;
443
- }
444
- $result = false;
445
- }
446
-
447
- if ($this->progress && !$this->retry && !$isRedirect) {
448
- $this->io->overwriteError("Downloading (".($result === false ? '<error>failed</error>' : '<comment>100%</comment>').")", false);
449
- }
450
-
451
- // decode gzip
452
- if ($result && extension_loaded('zlib') && substr($fileUrl, 0, 4) === 'http' && !$hasFollowedRedirect) {
453
- $contentEncoding = $this->findHeaderValue($http_response_header, 'content-encoding');
454
- $decode = $contentEncoding && 'gzip' === strtolower($contentEncoding);
455
-
456
- if ($decode) {
457
- try {
458
- if (PHP_VERSION_ID >= 50400) {
459
- $result = zlib_decode($result);
460
- } else {
461
- // work around issue with gzuncompress & co that do not work with all gzip checksums
462
- $result = file_get_contents('compress.zlib://data:application/octet-stream;base64,'.base64_encode($result));
463
- }
464
-
465
- if (!$result) {
466
- throw new TransportException('Failed to decode zlib stream');
467
- }
468
- } catch (\Exception $e) {
469
- if ($this->degradedMode) {
470
- throw $e;
471
- }
472
-
473
- $this->degradedMode = true;
474
- $this->io->writeError(array(
475
- '',
476
- '<error>Failed to decode response: '.$e->getMessage().'</error>',
477
- '<error>Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info</error>',
478
- ));
479
-
480
- return $this->get($this->originUrl, $this->fileUrl, $additionalOptions, $this->fileName, $this->progress);
481
- }
482
- }
483
- }
484
-
485
- // handle copy command if download was successful
486
- if (false !== $result && null !== $fileName && !$isRedirect) {
487
- if ('' === $result) {
488
- throw new TransportException('"'.$this->fileUrl.'" appears broken, and returned an empty 200 response');
489
- }
490
-
491
- $errorMessage = '';
492
- set_error_handler(function ($code, $msg) use (&$errorMessage) {
493
- if ($errorMessage) {
494
- $errorMessage .= "\n";
495
- }
496
- $errorMessage .= preg_replace('{^file_put_contents\(.*?\): }', '', $msg);
497
- });
498
- $result = (bool) file_put_contents($fileName, $result);
499
- restore_error_handler();
500
- if (false === $result) {
501
- throw new TransportException('The "'.$this->fileUrl.'" file could not be written to '.$fileName.': '.$errorMessage);
502
- }
503
- }
504
-
505
- // Handle SSL cert match issues
506
- if (false === $result && false !== strpos($errorMessage, 'Peer certificate') && PHP_VERSION_ID < 50600) {
507
- // Certificate name error, PHP doesn't support subjectAltName on PHP < 5.6
508
- // The procedure to handle sAN for older PHP's is:
509
- //
510
- // 1. Open socket to remote server and fetch certificate (disabling peer
511
- // validation because PHP errors without giving up the certificate.)
512
- //
513
- // 2. Verifying the domain in the URL against the names in the sAN field.
514
- // If there is a match record the authority [host/port], certificate
515
- // common name, and certificate fingerprint.
516
- //
517
- // 3. Retry the original request but changing the CN_match parameter to
518
- // the common name extracted from the certificate in step 2.
519
- //
520
- // 4. To prevent any attempt at being hoodwinked by switching the
521
- // certificate between steps 2 and 3 the fingerprint of the certificate
522
- // presented in step 3 is compared against the one recorded in step 2.
523
- if (CaBundle::isOpensslParseSafe()) {
524
- $certDetails = $this->getCertificateCnAndFp($this->fileUrl, $options);
525
-
526
- if ($certDetails) {
527
- $this->peerCertificateMap[$this->getUrlAuthority($this->fileUrl)] = $certDetails;
528
-
529
- $this->retry = true;
530
- }
531
- } else {
532
- $this->io->writeError('');
533
- $this->io->writeError(sprintf(
534
- '<error>Your version of PHP, %s, is affected by CVE-2013-6420 and cannot safely perform certificate validation, we strongly suggest you upgrade.</error>',
535
- PHP_VERSION
536
- ));
537
- }
538
- }
539
-
540
- if ($this->retry) {
541
- $this->retry = false;
542
-
543
- $result = $this->get($this->originUrl, $this->fileUrl, $additionalOptions, $this->fileName, $this->progress);
544
-
545
- if ($this->storeAuth && $this->config) {
546
- $authHelper = new AuthHelper($this->io, $this->config);
547
- $authHelper->storeAuth($this->originUrl, $this->storeAuth);
548
- $this->storeAuth = false;
549
- }
550
-
551
- return $result;
552
- }
553
-
554
- if (false === $result) {
555
- $e = new TransportException('The "'.$this->fileUrl.'" file could not be downloaded: '.$errorMessage, $errorCode);
556
- if (!empty($http_response_header[0])) {
557
- $e->setHeaders($http_response_header);
558
- }
559
-
560
- if (!$this->degradedMode && false !== strpos($e->getMessage(), 'Operation timed out')) {
561
- $this->degradedMode = true;
562
- $this->io->writeError('');
563
- $this->io->writeError(array(
564
- '<error>'.$e->getMessage().'</error>',
565
- '<error>Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info</error>',
566
- ));
567
-
568
- return $this->get($this->originUrl, $this->fileUrl, $additionalOptions, $this->fileName, $this->progress);
569
- }
570
-
571
- throw $e;
572
- }
573
-
574
- if (!empty($http_response_header[0])) {
575
- $this->lastHeaders = $http_response_header;
576
- }
577
-
578
- return $result;
579
- }
580
-
581
- /**
582
- * Get contents of remote URL.
583
- *
584
- * @param string $originUrl The origin URL
585
- * @param string $fileUrl The file URL
586
- * @param resource $context The stream context
587
- *
588
- * @return string|false The response contents or false on failure
589
- */
590
- protected function getRemoteContents($originUrl, $fileUrl, $context, array &$responseHeaders = null)
591
- {
592
- try {
593
- $e = null;
594
- $result = file_get_contents($fileUrl, false, $context);
595
- } catch (\Throwable $e) {
596
- } catch (\Exception $e) {
597
- }
598
-
599
- $responseHeaders = isset($http_response_header) ? $http_response_header : array();
600
-
601
- if (null !== $e) {
602
- throw $e;
603
- }
604
-
605
- return $result;
606
- }
607
-
608
- /**
609
- * Get notification action.
610
- *
611
- * @param int $notificationCode The notification code
612
- * @param int $severity The severity level
613
- * @param string $message The message
614
- * @param int $messageCode The message code
615
- * @param int $bytesTransferred The loaded size
616
- * @param int $bytesMax The total size
617
- * @throws TransportException
618
- */
619
- protected function callbackGet($notificationCode, $severity, $message, $messageCode, $bytesTransferred, $bytesMax)
620
- {
621
- switch ($notificationCode) {
622
- case STREAM_NOTIFY_FAILURE:
623
- if (400 === $messageCode) {
624
- // This might happen if your host is secured by ssl client certificate authentication
625
- // but you do not send an appropriate certificate
626
- throw new TransportException("The '" . $this->fileUrl . "' URL could not be accessed: " . $message, $messageCode);
627
- }
628
- break;
629
-
630
- case STREAM_NOTIFY_FILE_SIZE_IS:
631
- $this->bytesMax = $bytesMax;
632
- break;
633
-
634
- case STREAM_NOTIFY_PROGRESS:
635
- if ($this->bytesMax > 0 && $this->progress) {
636
- $progression = min(100, round($bytesTransferred / $this->bytesMax * 100));
637
-
638
- if ((0 === $progression % 5) && 100 !== $progression && $progression !== $this->lastProgress) {
639
- $this->lastProgress = $progression;
640
- $this->io->overwriteError("Downloading (<comment>$progression%</comment>)", false);
641
- }
642
- }
643
- break;
644
-
645
- default:
646
- break;
647
- }
648
- }
649
-
650
- protected function promptAuthAndRetry($httpStatus, $reason = null, $warning = null, $headers = array())
651
- {
652
- if ($this->config && in_array($this->originUrl, $this->config->get('github-domains'), true)) {
653
- $gitHubUtil = new GitHub($this->io, $this->config, null);
654
- $message = "\n";
655
-
656
- $rateLimited = $gitHubUtil->isRateLimited($headers);
657
- if ($rateLimited) {
658
- $rateLimit = $gitHubUtil->getRateLimit($headers);
659
- if ($this->io->hasAuthentication($this->originUrl)) {
660
- $message = 'Review your configured GitHub OAuth token or enter a new one to go over the API rate limit.';
661
- } else {
662
- $message = 'Create a GitHub OAuth token to go over the API rate limit.';
663
- }
664
-
665
- $message = sprintf(
666
- 'GitHub API limit (%d calls/hr) is exhausted, could not fetch '.$this->fileUrl.'. '.$message.' You can also wait until %s for the rate limit to reset.',
667
- $rateLimit['limit'],
668
- $rateLimit['reset']
669
- )."\n";
670
- } else {
671
- $message .= 'Could not fetch '.$this->fileUrl.', please ';
672
- if ($this->io->hasAuthentication($this->originUrl)) {
673
- $message .= 'review your configured GitHub OAuth token or enter a new one to access private repos';
674
- } else {
675
- $message .= 'create a GitHub OAuth token to access private repos';
676
- }
677
- }
678
-
679
- if (!$gitHubUtil->authorizeOAuth($this->originUrl)
680
- && (!$this->io->isInteractive() || !$gitHubUtil->authorizeOAuthInteractively($this->originUrl, $message))
681
- ) {
682
- throw new TransportException('Could not authenticate against '.$this->originUrl, 401);
683
- }
684
- } elseif ($this->config && in_array($this->originUrl, $this->config->get('gitlab-domains'), true)) {
685
- $message = "\n".'Could not fetch '.$this->fileUrl.', enter your ' . $this->originUrl . ' credentials ' .($httpStatus === 401 ? 'to access private repos' : 'to go over the API rate limit');
686
- $gitLabUtil = new GitLab($this->io, $this->config, null);
687
-
688
- if ($this->io->hasAuthentication($this->originUrl) && ($auth = $this->io->getAuthentication($this->originUrl)) && $auth['password'] === 'private-token') {
689
- throw new TransportException("Invalid credentials for '" . $this->fileUrl . "', aborting.", $httpStatus);
690
- }
691
-
692
- if (!$gitLabUtil->authorizeOAuth($this->originUrl)
693
- && (!$this->io->isInteractive() || !$gitLabUtil->authorizeOAuthInteractively($this->scheme, $this->originUrl, $message))
694
- ) {
695
- throw new TransportException('Could not authenticate against '.$this->originUrl, 401);
696
- }
697
- } elseif ($this->config && $this->originUrl === 'bitbucket.org') {
698
- $askForOAuthToken = true;
699
- if ($this->io->hasAuthentication($this->originUrl)) {
700
- $auth = $this->io->getAuthentication($this->originUrl);
701
- if ($auth['username'] !== 'x-token-auth') {
702
- $bitbucketUtil = new Bitbucket($this->io, $this->config);
703
- $accessToken = $bitbucketUtil->requestToken($this->originUrl, $auth['username'], $auth['password']);
704
- if (!empty($accessToken)) {
705
- $this->io->setAuthentication($this->originUrl, 'x-token-auth', $accessToken);
706
- $askForOAuthToken = false;
707
- }
708
- } else {
709
- throw new TransportException('Could not authenticate against ' . $this->originUrl, 401);
710
- }
711
- }
712
-
713
- if ($askForOAuthToken) {
714
- $message = "\n".'Could not fetch ' . $this->fileUrl . ', please create a bitbucket OAuth token to ' . (($httpStatus === 401 || $httpStatus === 403) ? 'access private repos' : 'go over the API rate limit');
715
- $bitBucketUtil = new Bitbucket($this->io, $this->config);
716
- if (! $bitBucketUtil->authorizeOAuth($this->originUrl)
717
- && (! $this->io->isInteractive() || !$bitBucketUtil->authorizeOAuthInteractively($this->originUrl, $message))
718
- ) {
719
- throw new TransportException('Could not authenticate against ' . $this->originUrl, 401);
720
- }
721
- }
722
- } else {
723
- // 404s are only handled for github
724
- if ($httpStatus === 404) {
725
- return;
726
- }
727
-
728
- // fail if the console is not interactive
729
- if (!$this->io->isInteractive()) {
730
- if ($httpStatus === 401) {
731
- $message = "The '" . $this->fileUrl . "' URL required authentication.\nYou must be using the interactive console to authenticate";
732
- }
733
- if ($httpStatus === 403) {
734
- $message = "The '" . $this->fileUrl . "' URL could not be accessed: " . $reason;
735
- }
736
-
737
- throw new TransportException($message, $httpStatus);
738
- }
739
- // fail if we already have auth
740
- if ($this->io->hasAuthentication($this->originUrl)) {
741
- throw new TransportException("Invalid credentials for '" . $this->fileUrl . "', aborting.", $httpStatus);
742
- }
743
-
744
- $this->io->writeError(' Authentication required (<info>'.parse_url($this->fileUrl, PHP_URL_HOST).'</info>):');
745
- $username = $this->io->ask(' Username: ');
746
- $password = $this->io->askAndHideAnswer(' Password: ');
747
- $this->io->setAuthentication($this->originUrl, $username, $password);
748
- $this->storeAuth = $this->config->get('store-auths');
749
- }
750
-
751
- $this->retry = true;
752
- throw new TransportException('RETRY');
753
- }
754
-
755
- protected function getOptionsForUrl($originUrl, $additionalOptions)
756
- {
757
- $tlsOptions = array();
758
-
759
- // Setup remaining TLS options - the matching may need monitoring, esp. www vs none in CN
760
- if ($this->disableTls === false && PHP_VERSION_ID < 50600 && !stream_is_local($this->fileUrl)) {
761
- $host = parse_url($this->fileUrl, PHP_URL_HOST);
762
-
763
- if (PHP_VERSION_ID < 50304) {
764
- // PHP < 5.3.4 does not support follow_location, for those people
765
- // do some really nasty hard coded transformations. These will
766
- // still breakdown if the site redirects to a domain we don't
767
- // expect.
768
-
769
- if ($host === 'github.com' || $host === 'api.github.com') {
770
- $host = '*.github.com';
771
- }
772
- }
773
-
774
- $tlsOptions['ssl']['CN_match'] = $host;
775
- $tlsOptions['ssl']['SNI_server_name'] = $host;
776
-
777
- $urlAuthority = $this->getUrlAuthority($this->fileUrl);
778
-
779
- if (isset($this->peerCertificateMap[$urlAuthority])) {
780
- // Handle subjectAltName on lesser PHP's.
781
- $certMap = $this->peerCertificateMap[$urlAuthority];
782
-
783
- $this->io->writeError('', true, IOInterface::DEBUG);
784
- $this->io->writeError(sprintf(
785
- 'Using <info>%s</info> as CN for subjectAltName enabled host <info>%s</info>',
786
- $certMap['cn'],
787
- $urlAuthority
788
- ), true, IOInterface::DEBUG);
789
-
790
- $tlsOptions['ssl']['CN_match'] = $certMap['cn'];
791
- $tlsOptions['ssl']['peer_fingerprint'] = $certMap['fp'];
792
- } elseif (!CaBundle::isOpensslParseSafe() && $host === 'repo.packagist.org') {
793
- // handle subjectAltName for packagist.org's repo domain on very old PHPs
794
- $tlsOptions['ssl']['CN_match'] = 'packagist.org';
795
- }
796
- }
797
-
798
- $headers = array();
799
-
800
- if (extension_loaded('zlib')) {
801
- $headers[] = 'Accept-Encoding: gzip';
802
- }
803
-
804
- $options = array_replace_recursive($this->options, $tlsOptions, $additionalOptions);
805
- if (!$this->degradedMode) {
806
- // degraded mode disables HTTP/1.1 which causes issues with some bad
807
- // proxies/software due to the use of chunked encoding
808
- $options['http']['protocol_version'] = 1.1;
809
- $headers[] = 'Connection: close';
810
- }
811
-
812
- if ($this->io->hasAuthentication($originUrl)) {
813
- $auth = $this->io->getAuthentication($originUrl);
814
- if ('github.com' === $originUrl && 'x-oauth-basic' === $auth['password']) {
815
- $options['github-token'] = $auth['username'];
816
- } elseif ($this->config && in_array($originUrl, $this->config->get('gitlab-domains'), true)) {
817
- if ($auth['password'] === 'oauth2') {
818
- $headers[] = 'Authorization: Bearer '.$auth['username'];
819
- } elseif ($auth['password'] === 'private-token') {
820
- $headers[] = 'PRIVATE-TOKEN: '.$auth['username'];
821
- }
822
- } elseif ('bitbucket.org' === $originUrl
823
- && $this->fileUrl !== Bitbucket::OAUTH2_ACCESS_TOKEN_URL && 'x-token-auth' === $auth['username']
824
- ) {
825
- if (!$this->isPublicBitBucketDownload($this->fileUrl)) {
826
- $headers[] = 'Authorization: Bearer ' . $auth['password'];
827
- }
828
- } else {
829
- $authStr = base64_encode($auth['username'] . ':' . $auth['password']);
830
- $headers[] = 'Authorization: Basic '.$authStr;
831
- }
832
- }
833
-
834
- $options['http']['follow_location'] = 0;
835
-
836
- if (isset($options['http']['header']) && !is_array($options['http']['header'])) {
837
- $options['http']['header'] = explode("\r\n", trim($options['http']['header'], "\r\n"));
838
- }
839
- foreach ($headers as $header) {
840
- $options['http']['header'][] = $header;
841
- }
842
-
843
- return $options;
844
- }
845
-
846
- private function handleRedirect(array $http_response_header, array $additionalOptions, $result)
847
- {
848
- if ($locationHeader = $this->findHeaderValue($http_response_header, 'location')) {
849
- if (parse_url($locationHeader, PHP_URL_SCHEME)) {
850
- // Absolute URL; e.g. https://example.com/composer
851
- $targetUrl = $locationHeader;
852
- } elseif (parse_url($locationHeader, PHP_URL_HOST)) {
853
- // Scheme relative; e.g. //example.com/foo
854
- $targetUrl = $this->scheme.':'.$locationHeader;
855
- } elseif ('/' === $locationHeader[0]) {
856
- // Absolute path; e.g. /foo
857
- $urlHost = parse_url($this->fileUrl, PHP_URL_HOST);
858
-
859
- // Replace path using hostname as an anchor.
860
- $targetUrl = preg_replace('{^(.+(?://|@)'.preg_quote($urlHost).'(?::\d+)?)(?:[/\?].*)?$}', '\1'.$locationHeader, $this->fileUrl);
861
- } else {
862
- // Relative path; e.g. foo
863
- // This actually differs from PHP which seems to add duplicate slashes.
864
- $targetUrl = preg_replace('{^(.+/)[^/?]*(?:\?.*)?$}', '\1'.$locationHeader, $this->fileUrl);
865
- }
866
- }
867
-
868
- if (!empty($targetUrl)) {
869
- $this->redirects++;
870
-
871
- $this->io->writeError('', true, IOInterface::DEBUG);
872
- $this->io->writeError(sprintf('Following redirect (%u) %s', $this->redirects, $targetUrl), true, IOInterface::DEBUG);
873
-
874
- $additionalOptions['redirects'] = $this->redirects;
875
-
876
- return $this->get(parse_url($targetUrl, PHP_URL_HOST), $targetUrl, $additionalOptions, $this->fileName, $this->progress);
877
- }
878
-
879
- if (!$this->retry) {
880
- $e = new TransportException('The "'.$this->fileUrl.'" file could not be downloaded, got redirect without Location ('.$http_response_header[0].')');
881
- $e->setHeaders($http_response_header);
882
- $e->setResponse($result);
883
-
884
- throw $e;
885
- }
886
-
887
- return false;
888
- }
889
-
890
- /**
891
- * @param array $options
892
- *
893
- * @return array
894
- */
895
- private function getTlsDefaults(array $options)
896
- {
897
- $ciphers = implode(':', array(
898
- 'ECDHE-RSA-AES128-GCM-SHA256',
899
- 'ECDHE-ECDSA-AES128-GCM-SHA256',
900
- 'ECDHE-RSA-AES256-GCM-SHA384',
901
- 'ECDHE-ECDSA-AES256-GCM-SHA384',
902
- 'DHE-RSA-AES128-GCM-SHA256',
903
- 'DHE-DSS-AES128-GCM-SHA256',
904
- 'kEDH+AESGCM',
905
- 'ECDHE-RSA-AES128-SHA256',
906
- 'ECDHE-ECDSA-AES128-SHA256',
907
- 'ECDHE-RSA-AES128-SHA',
908
- 'ECDHE-ECDSA-AES128-SHA',
909
- 'ECDHE-RSA-AES256-SHA384',
910
- 'ECDHE-ECDSA-AES256-SHA384',
911
- 'ECDHE-RSA-AES256-SHA',
912
- 'ECDHE-ECDSA-AES256-SHA',
913
- 'DHE-RSA-AES128-SHA256',
914
- 'DHE-RSA-AES128-SHA',
915
- 'DHE-DSS-AES128-SHA256',
916
- 'DHE-RSA-AES256-SHA256',
917
- 'DHE-DSS-AES256-SHA',
918
- 'DHE-RSA-AES256-SHA',
919
- 'AES128-GCM-SHA256',
920
- 'AES256-GCM-SHA384',
921
- 'AES128-SHA256',
922
- 'AES256-SHA256',
923
- 'AES128-SHA',
924
- 'AES256-SHA',
925
- 'AES',
926
- 'CAMELLIA',
927
- 'DES-CBC3-SHA',
928
- '!aNULL',
929
- '!eNULL',
930
- '!EXPORT',
931
- '!DES',
932
- '!RC4',
933
- '!MD5',
934
- '!PSK',
935
- '!aECDH',
936
- '!EDH-DSS-DES-CBC3-SHA',
937
- '!EDH-RSA-DES-CBC3-SHA',
938
- '!KRB5-DES-CBC3-SHA',
939
- ));
940
-
941
- /**
942
- * CN_match and SNI_server_name are only known once a URL is passed.
943
- * They will be set in the getOptionsForUrl() method which receives a URL.
944
- *
945
- * cafile or capath can be overridden by passing in those options to constructor.
946
- */
947
- $defaults = array(
948
- 'ssl' => array(
949
- 'ciphers' => $ciphers,
950
- 'verify_peer' => true,
951
- 'verify_depth' => 7,
952
- 'SNI_enabled' => true,
953
- 'capture_peer_cert' => true,
954
- ),
955
- );
956
-
957
- if (isset($options['ssl'])) {
958
- $defaults['ssl'] = array_replace_recursive($defaults['ssl'], $options['ssl']);
959
- }
960
-
961
- $caBundleLogger = $this->io instanceof LoggerInterface ? $this->io : null;
962
-
963
- /**
964
- * Attempt to find a local cafile or throw an exception if none pre-set
965
- * The user may go download one if this occurs.
966
- */
967
- if (!isset($defaults['ssl']['cafile']) && !isset($defaults['ssl']['capath'])) {
968
- $result = CaBundle::getSystemCaRootBundlePath($caBundleLogger);
969
-
970
- if (is_dir($result)) {
971
- $defaults['ssl']['capath'] = $result;
972
- } else {
973
- $defaults['ssl']['cafile'] = $result;
974
- }
975
- }
976
-
977
- if (isset($defaults['ssl']['cafile']) && (!is_readable($defaults['ssl']['cafile']) || !CaBundle::validateCaFile($defaults['ssl']['cafile'], $caBundleLogger))) {
978
- throw new TransportException('The configured cafile was not valid or could not be read.');
979
- }
980
-
981
- if (isset($defaults['ssl']['capath']) && (!is_dir($defaults['ssl']['capath']) || !is_readable($defaults['ssl']['capath']))) {
982
- throw new TransportException('The configured capath was not valid or could not be read.');
983
- }
984
-
985
- /**
986
- * Disable TLS compression to prevent CRIME attacks where supported.
987
- */
988
- if (PHP_VERSION_ID >= 50413) {
989
- $defaults['ssl']['disable_compression'] = true;
990
- }
991
-
992
- return $defaults;
993
- }
994
-
995
- /**
996
- * Fetch certificate common name and fingerprint for validation of SAN.
997
- *
998
- * @todo Remove when PHP 5.6 is minimum supported version.
999
- */
1000
- private function getCertificateCnAndFp($url, $options)
1001
- {
1002
- if (PHP_VERSION_ID >= 50600) {
1003
- throw new \BadMethodCallException(sprintf(
1004
- '%s must not be used on PHP >= 5.6',
1005
- __METHOD__
1006
- ));
1007
- }
1008
-
1009
- $context = StreamContextFactory::getContext($url, $options, array('options' => array(
1010
- 'ssl' => array(
1011
- 'capture_peer_cert' => true,
1012
- 'verify_peer' => false, // Yes this is fucking insane! But PHP is lame.
1013
- ), ),
1014
- ));
1015
-
1016
- // Ideally this would just use stream_socket_client() to avoid sending a
1017
- // HTTP request but that does not capture the certificate.
1018
- if (false === $handle = @fopen($url, 'rb', false, $context)) {
1019
- return;
1020
- }
1021
-
1022
- // Close non authenticated connection without reading any content.
1023
- fclose($handle);
1024
- $handle = null;
1025
-
1026
- $params = stream_context_get_params($context);
1027
-
1028
- if (!empty($params['options']['ssl']['peer_certificate'])) {
1029
- $peerCertificate = $params['options']['ssl']['peer_certificate'];
1030
-
1031
- if (TlsHelper::checkCertificateHost($peerCertificate, parse_url($url, PHP_URL_HOST), $commonName)) {
1032
- return array(
1033
- 'cn' => $commonName,
1034
- 'fp' => TlsHelper::getCertificateFingerprint($peerCertificate),
1035
- );
1036
- }
1037
- }
1038
- }
1039
-
1040
- private function getUrlAuthority($url)
1041
- {
1042
- $defaultPorts = array(
1043
- 'ftp' => 21,
1044
- 'http' => 80,
1045
- 'https' => 443,
1046
- 'ssh2.sftp' => 22,
1047
- 'ssh2.scp' => 22,
1048
- );
1049
-
1050
- $scheme = parse_url($url, PHP_URL_SCHEME);
1051
-
1052
- if (!isset($defaultPorts[$scheme])) {
1053
- throw new \InvalidArgumentException(sprintf(
1054
- 'Could not get default port for unknown scheme: %s',
1055
- $scheme
1056
- ));
1057
- }
1058
-
1059
- $defaultPort = $defaultPorts[$scheme];
1060
- $port = parse_url($url, PHP_URL_PORT) ?: $defaultPort;
1061
-
1062
- return parse_url($url, PHP_URL_HOST).':'.$port;
1063
- }
1064
-
1065
- /**
1066
- * @link https://github.com/composer/composer/issues/5584
1067
- *
1068
- * @param string $urlToBitBucketFile URL to a file at bitbucket.org.
1069
- *
1070
- * @return bool Whether the given URL is a public BitBucket download which requires no authentication.
1071
- */
1072
- private function isPublicBitBucketDownload($urlToBitBucketFile)
1073
- {
1074
- $domain = parse_url($urlToBitBucketFile, PHP_URL_HOST);
1075
- if (strpos($domain, 'bitbucket.org') === false) {
1076
- // Bitbucket downloads are hosted on amazonaws.
1077
- // We do not need to authenticate there at all
1078
- return true;
1079
- }
1080
-
1081
- $path = parse_url($urlToBitBucketFile, PHP_URL_PATH);
1082
-
1083
- // Path for a public download follows this pattern /{user}/{repo}/downloads/{whatever}
1084
- // {@link https://blog.bitbucket.org/2009/04/12/new-feature-downloads/}
1085
- $pathParts = explode('/', $path);
1086
-
1087
- return count($pathParts) >= 4 && $pathParts[3] == 'downloads';
1088
- }
1089
-
1090
- public static function outputWarnings(IOInterface $io, $url, $data)
1091
- {
1092
- foreach (array('warning', 'info') as $type) {
1093
- if (empty($data[$type])) {
1094
- continue;
1095
- }
1096
-
1097
- if (!empty($data[$type . '-versions'])) {
1098
- $versionParser = new VersionParser();
1099
- $constraint = $versionParser->parseConstraints($data[$type . '-versions']);
1100
- $composer = new Constraint('==', $versionParser->normalize(Composer::getVersion()));
1101
- if (!$constraint->matches($composer)) {
1102
- continue;
1103
- }
1104
- }
1105
-
1106
- $io->writeError('<'.$type.'>'.ucfirst($type).' from '.$url.': '.$data[$type].'</'.$type.'>');
1107
- }
1108
- }
1109
- }