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,67 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace Symfony\Component\Process\Pipes;
13
-
14
- /**
15
- * PipesInterface manages descriptors and pipes for the use of proc_open.
16
- *
17
- * @author Romain Neutron <imprec@gmail.com>
18
- *
19
- * @internal
20
- */
21
- interface PipesInterface
22
- {
23
- const CHUNK_SIZE = 16384;
24
-
25
- /**
26
- * Returns an array of descriptors for the use of proc_open.
27
- *
28
- * @return array
29
- */
30
- public function getDescriptors();
31
-
32
- /**
33
- * Returns an array of filenames indexed by their related stream in case these pipes use temporary files.
34
- *
35
- * @return string[]
36
- */
37
- public function getFiles();
38
-
39
- /**
40
- * Reads data in file handles and pipes.
41
- *
42
- * @param bool $blocking Whether to use blocking calls or not
43
- * @param bool $close Whether to close pipes if they've reached EOF
44
- *
45
- * @return string[] An array of read data indexed by their fd
46
- */
47
- public function readAndWrite($blocking, $close = false);
48
-
49
- /**
50
- * Returns if the current state has open file handles or pipes.
51
- *
52
- * @return bool
53
- */
54
- public function areOpen();
55
-
56
- /**
57
- * Returns if pipes are able to read output.
58
- *
59
- * @return bool
60
- */
61
- public function haveReadSupport();
62
-
63
- /**
64
- * Closes file handles and pipes.
65
- */
66
- public function close();
67
- }
@@ -1,153 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace Symfony\Component\Process\Pipes;
13
-
14
- use Symfony\Component\Process\Process;
15
-
16
- /**
17
- * UnixPipes implementation uses unix pipes as handles.
18
- *
19
- * @author Romain Neutron <imprec@gmail.com>
20
- *
21
- * @internal
22
- */
23
- class UnixPipes extends AbstractPipes
24
- {
25
- private $ttyMode;
26
- private $ptyMode;
27
- private $haveReadSupport;
28
-
29
- public function __construct(?bool $ttyMode, bool $ptyMode, $input, bool $haveReadSupport)
30
- {
31
- $this->ttyMode = $ttyMode;
32
- $this->ptyMode = $ptyMode;
33
- $this->haveReadSupport = $haveReadSupport;
34
-
35
- parent::__construct($input);
36
- }
37
-
38
- public function __destruct()
39
- {
40
- $this->close();
41
- }
42
-
43
- /**
44
- * {@inheritdoc}
45
- */
46
- public function getDescriptors()
47
- {
48
- if (!$this->haveReadSupport) {
49
- $nullstream = fopen('/dev/null', 'c');
50
-
51
- return [
52
- ['pipe', 'r'],
53
- $nullstream,
54
- $nullstream,
55
- ];
56
- }
57
-
58
- if ($this->ttyMode) {
59
- return [
60
- ['file', '/dev/tty', 'r'],
61
- ['file', '/dev/tty', 'w'],
62
- ['file', '/dev/tty', 'w'],
63
- ];
64
- }
65
-
66
- if ($this->ptyMode && Process::isPtySupported()) {
67
- return [
68
- ['pty'],
69
- ['pty'],
70
- ['pty'],
71
- ];
72
- }
73
-
74
- return [
75
- ['pipe', 'r'],
76
- ['pipe', 'w'], // stdout
77
- ['pipe', 'w'], // stderr
78
- ];
79
- }
80
-
81
- /**
82
- * {@inheritdoc}
83
- */
84
- public function getFiles()
85
- {
86
- return [];
87
- }
88
-
89
- /**
90
- * {@inheritdoc}
91
- */
92
- public function readAndWrite($blocking, $close = false)
93
- {
94
- $this->unblock();
95
- $w = $this->write();
96
-
97
- $read = $e = [];
98
- $r = $this->pipes;
99
- unset($r[0]);
100
-
101
- // let's have a look if something changed in streams
102
- set_error_handler([$this, 'handleError']);
103
- if (($r || $w) && false === stream_select($r, $w, $e, 0, $blocking ? Process::TIMEOUT_PRECISION * 1E6 : 0)) {
104
- restore_error_handler();
105
- // if a system call has been interrupted, forget about it, let's try again
106
- // otherwise, an error occurred, let's reset pipes
107
- if (!$this->hasSystemCallBeenInterrupted()) {
108
- $this->pipes = [];
109
- }
110
-
111
- return $read;
112
- }
113
- restore_error_handler();
114
-
115
- foreach ($r as $pipe) {
116
- // prior PHP 5.4 the array passed to stream_select is modified and
117
- // lose key association, we have to find back the key
118
- $read[$type = array_search($pipe, $this->pipes, true)] = '';
119
-
120
- do {
121
- $data = fread($pipe, self::CHUNK_SIZE);
122
- $read[$type] .= $data;
123
- } while (isset($data[0]) && ($close || isset($data[self::CHUNK_SIZE - 1])));
124
-
125
- if (!isset($read[$type][0])) {
126
- unset($read[$type]);
127
- }
128
-
129
- if ($close && feof($pipe)) {
130
- fclose($pipe);
131
- unset($this->pipes[$type]);
132
- }
133
- }
134
-
135
- return $read;
136
- }
137
-
138
- /**
139
- * {@inheritdoc}
140
- */
141
- public function haveReadSupport()
142
- {
143
- return $this->haveReadSupport;
144
- }
145
-
146
- /**
147
- * {@inheritdoc}
148
- */
149
- public function areOpen()
150
- {
151
- return (bool) $this->pipes;
152
- }
153
- }
@@ -1,191 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace Symfony\Component\Process\Pipes;
13
-
14
- use Symfony\Component\Process\Exception\RuntimeException;
15
- use Symfony\Component\Process\Process;
16
-
17
- /**
18
- * WindowsPipes implementation uses temporary files as handles.
19
- *
20
- * @see https://bugs.php.net/bug.php?id=51800
21
- * @see https://bugs.php.net/bug.php?id=65650
22
- *
23
- * @author Romain Neutron <imprec@gmail.com>
24
- *
25
- * @internal
26
- */
27
- class WindowsPipes extends AbstractPipes
28
- {
29
- private $files = [];
30
- private $fileHandles = [];
31
- private $lockHandles = [];
32
- private $readBytes = [
33
- Process::STDOUT => 0,
34
- Process::STDERR => 0,
35
- ];
36
- private $haveReadSupport;
37
-
38
- public function __construct($input, bool $haveReadSupport)
39
- {
40
- $this->haveReadSupport = $haveReadSupport;
41
-
42
- if ($this->haveReadSupport) {
43
- // Fix for PHP bug #51800: reading from STDOUT pipe hangs forever on Windows if the output is too big.
44
- // Workaround for this problem is to use temporary files instead of pipes on Windows platform.
45
- //
46
- // @see https://bugs.php.net/bug.php?id=51800
47
- $pipes = [
48
- Process::STDOUT => Process::OUT,
49
- Process::STDERR => Process::ERR,
50
- ];
51
- $tmpDir = sys_get_temp_dir();
52
- $lastError = 'unknown reason';
53
- set_error_handler(function ($type, $msg) use (&$lastError) { $lastError = $msg; });
54
- for ($i = 0;; ++$i) {
55
- foreach ($pipes as $pipe => $name) {
56
- $file = sprintf('%s\\sf_proc_%02X.%s', $tmpDir, $i, $name);
57
-
58
- if (!$h = fopen($file.'.lock', 'w')) {
59
- restore_error_handler();
60
- throw new RuntimeException(sprintf('A temporary file could not be opened to write the process output: %s', $lastError));
61
- }
62
- if (!flock($h, LOCK_EX | LOCK_NB)) {
63
- continue 2;
64
- }
65
- if (isset($this->lockHandles[$pipe])) {
66
- flock($this->lockHandles[$pipe], LOCK_UN);
67
- fclose($this->lockHandles[$pipe]);
68
- }
69
- $this->lockHandles[$pipe] = $h;
70
-
71
- if (!fclose(fopen($file, 'w')) || !$h = fopen($file, 'r')) {
72
- flock($this->lockHandles[$pipe], LOCK_UN);
73
- fclose($this->lockHandles[$pipe]);
74
- unset($this->lockHandles[$pipe]);
75
- continue 2;
76
- }
77
- $this->fileHandles[$pipe] = $h;
78
- $this->files[$pipe] = $file;
79
- }
80
- break;
81
- }
82
- restore_error_handler();
83
- }
84
-
85
- parent::__construct($input);
86
- }
87
-
88
- public function __destruct()
89
- {
90
- $this->close();
91
- }
92
-
93
- /**
94
- * {@inheritdoc}
95
- */
96
- public function getDescriptors()
97
- {
98
- if (!$this->haveReadSupport) {
99
- $nullstream = fopen('NUL', 'c');
100
-
101
- return [
102
- ['pipe', 'r'],
103
- $nullstream,
104
- $nullstream,
105
- ];
106
- }
107
-
108
- // We're not using pipe on Windows platform as it hangs (https://bugs.php.net/bug.php?id=51800)
109
- // We're not using file handles as it can produce corrupted output https://bugs.php.net/bug.php?id=65650
110
- // So we redirect output within the commandline and pass the nul device to the process
111
- return [
112
- ['pipe', 'r'],
113
- ['file', 'NUL', 'w'],
114
- ['file', 'NUL', 'w'],
115
- ];
116
- }
117
-
118
- /**
119
- * {@inheritdoc}
120
- */
121
- public function getFiles()
122
- {
123
- return $this->files;
124
- }
125
-
126
- /**
127
- * {@inheritdoc}
128
- */
129
- public function readAndWrite($blocking, $close = false)
130
- {
131
- $this->unblock();
132
- $w = $this->write();
133
- $read = $r = $e = [];
134
-
135
- if ($blocking) {
136
- if ($w) {
137
- @stream_select($r, $w, $e, 0, Process::TIMEOUT_PRECISION * 1E6);
138
- } elseif ($this->fileHandles) {
139
- usleep(Process::TIMEOUT_PRECISION * 1E6);
140
- }
141
- }
142
- foreach ($this->fileHandles as $type => $fileHandle) {
143
- $data = stream_get_contents($fileHandle, -1, $this->readBytes[$type]);
144
-
145
- if (isset($data[0])) {
146
- $this->readBytes[$type] += \strlen($data);
147
- $read[$type] = $data;
148
- }
149
- if ($close) {
150
- ftruncate($fileHandle, 0);
151
- fclose($fileHandle);
152
- flock($this->lockHandles[$type], LOCK_UN);
153
- fclose($this->lockHandles[$type]);
154
- unset($this->fileHandles[$type], $this->lockHandles[$type]);
155
- }
156
- }
157
-
158
- return $read;
159
- }
160
-
161
- /**
162
- * {@inheritdoc}
163
- */
164
- public function haveReadSupport()
165
- {
166
- return $this->haveReadSupport;
167
- }
168
-
169
- /**
170
- * {@inheritdoc}
171
- */
172
- public function areOpen()
173
- {
174
- return $this->pipes && $this->fileHandles;
175
- }
176
-
177
- /**
178
- * {@inheritdoc}
179
- */
180
- public function close()
181
- {
182
- parent::close();
183
- foreach ($this->fileHandles as $type => $handle) {
184
- ftruncate($handle, 0);
185
- fclose($handle);
186
- flock($this->lockHandles[$type], LOCK_UN);
187
- fclose($this->lockHandles[$type]);
188
- }
189
- $this->fileHandles = $this->lockHandles = [];
190
- }
191
- }
@@ -1,1652 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of the Symfony package.
5
- *
6
- * (c) Fabien Potencier <fabien@symfony.com>
7
- *
8
- * For the full copyright and license information, please view the LICENSE
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace Symfony\Component\Process;
13
-
14
- use Symfony\Component\Process\Exception\InvalidArgumentException;
15
- use Symfony\Component\Process\Exception\LogicException;
16
- use Symfony\Component\Process\Exception\ProcessFailedException;
17
- use Symfony\Component\Process\Exception\ProcessSignaledException;
18
- use Symfony\Component\Process\Exception\ProcessTimedOutException;
19
- use Symfony\Component\Process\Exception\RuntimeException;
20
- use Symfony\Component\Process\Pipes\PipesInterface;
21
- use Symfony\Component\Process\Pipes\UnixPipes;
22
- use Symfony\Component\Process\Pipes\WindowsPipes;
23
-
24
- /**
25
- * Process is a thin wrapper around proc_* functions to easily
26
- * start independent PHP processes.
27
- *
28
- * @author Fabien Potencier <fabien@symfony.com>
29
- * @author Romain Neutron <imprec@gmail.com>
30
- */
31
- class Process implements \IteratorAggregate
32
- {
33
- const ERR = 'err';
34
- const OUT = 'out';
35
-
36
- const STATUS_READY = 'ready';
37
- const STATUS_STARTED = 'started';
38
- const STATUS_TERMINATED = 'terminated';
39
-
40
- const STDIN = 0;
41
- const STDOUT = 1;
42
- const STDERR = 2;
43
-
44
- // Timeout Precision in seconds.
45
- const TIMEOUT_PRECISION = 0.2;
46
-
47
- const ITER_NON_BLOCKING = 1; // By default, iterating over outputs is a blocking call, use this flag to make it non-blocking
48
- const ITER_KEEP_OUTPUT = 2; // By default, outputs are cleared while iterating, use this flag to keep them in memory
49
- const ITER_SKIP_OUT = 4; // Use this flag to skip STDOUT while iterating
50
- const ITER_SKIP_ERR = 8; // Use this flag to skip STDERR while iterating
51
-
52
- private $callback;
53
- private $hasCallback = false;
54
- private $commandline;
55
- private $cwd;
56
- private $env;
57
- private $input;
58
- private $starttime;
59
- private $lastOutputTime;
60
- private $timeout;
61
- private $idleTimeout;
62
- private $exitcode;
63
- private $fallbackStatus = [];
64
- private $processInformation;
65
- private $outputDisabled = false;
66
- private $stdout;
67
- private $stderr;
68
- private $process;
69
- private $status = self::STATUS_READY;
70
- private $incrementalOutputOffset = 0;
71
- private $incrementalErrorOutputOffset = 0;
72
- private $tty;
73
- private $pty;
74
-
75
- private $useFileHandles = false;
76
- /** @var PipesInterface */
77
- private $processPipes;
78
-
79
- private $latestSignal;
80
-
81
- private static $sigchild;
82
-
83
- /**
84
- * Exit codes translation table.
85
- *
86
- * User-defined errors must use exit codes in the 64-113 range.
87
- */
88
- public static $exitCodes = [
89
- 0 => 'OK',
90
- 1 => 'General error',
91
- 2 => 'Misuse of shell builtins',
92
-
93
- 126 => 'Invoked command cannot execute',
94
- 127 => 'Command not found',
95
- 128 => 'Invalid exit argument',
96
-
97
- // signals
98
- 129 => 'Hangup',
99
- 130 => 'Interrupt',
100
- 131 => 'Quit and dump core',
101
- 132 => 'Illegal instruction',
102
- 133 => 'Trace/breakpoint trap',
103
- 134 => 'Process aborted',
104
- 135 => 'Bus error: "access to undefined portion of memory object"',
105
- 136 => 'Floating point exception: "erroneous arithmetic operation"',
106
- 137 => 'Kill (terminate immediately)',
107
- 138 => 'User-defined 1',
108
- 139 => 'Segmentation violation',
109
- 140 => 'User-defined 2',
110
- 141 => 'Write to pipe with no one reading',
111
- 142 => 'Signal raised by alarm',
112
- 143 => 'Termination (request to terminate)',
113
- // 144 - not defined
114
- 145 => 'Child process terminated, stopped (or continued*)',
115
- 146 => 'Continue if stopped',
116
- 147 => 'Stop executing temporarily',
117
- 148 => 'Terminal stop signal',
118
- 149 => 'Background process attempting to read from tty ("in")',
119
- 150 => 'Background process attempting to write to tty ("out")',
120
- 151 => 'Urgent data available on socket',
121
- 152 => 'CPU time limit exceeded',
122
- 153 => 'File size limit exceeded',
123
- 154 => 'Signal raised by timer counting virtual time: "virtual timer expired"',
124
- 155 => 'Profiling timer expired',
125
- // 156 - not defined
126
- 157 => 'Pollable event',
127
- // 158 - not defined
128
- 159 => 'Bad syscall',
129
- ];
130
-
131
- /**
132
- * @param array $command The command to run and its arguments listed as separate entries
133
- * @param string|null $cwd The working directory or null to use the working dir of the current PHP process
134
- * @param array|null $env The environment variables or null to use the same environment as the current PHP process
135
- * @param mixed|null $input The input as stream resource, scalar or \Traversable, or null for no input
136
- * @param int|float|null $timeout The timeout in seconds or null to disable
137
- *
138
- * @throws RuntimeException When proc_open is not installed
139
- */
140
- public function __construct($command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60)
141
- {
142
- if (!\function_exists('proc_open')) {
143
- throw new LogicException('The Process class relies on proc_open, which is not available on your PHP installation.');
144
- }
145
-
146
- if (!\is_array($command)) {
147
- @trigger_error(sprintf('Passing a command as string when creating a "%s" instance is deprecated since Symfony 4.2, pass it as an array of its arguments instead, or use the "Process::fromShellCommandline()" constructor if you need features provided by the shell.', __CLASS__), E_USER_DEPRECATED);
148
- }
149
-
150
- $this->commandline = $command;
151
- $this->cwd = $cwd;
152
-
153
- // on Windows, if the cwd changed via chdir(), proc_open defaults to the dir where PHP was started
154
- // on Gnu/Linux, PHP builds with --enable-maintainer-zts are also affected
155
- // @see : https://bugs.php.net/bug.php?id=51800
156
- // @see : https://bugs.php.net/bug.php?id=50524
157
- if (null === $this->cwd && (\defined('ZEND_THREAD_SAFE') || '\\' === \DIRECTORY_SEPARATOR)) {
158
- $this->cwd = getcwd();
159
- }
160
- if (null !== $env) {
161
- $this->setEnv($env);
162
- }
163
-
164
- $this->setInput($input);
165
- $this->setTimeout($timeout);
166
- $this->useFileHandles = '\\' === \DIRECTORY_SEPARATOR;
167
- $this->pty = false;
168
- }
169
-
170
- /**
171
- * Creates a Process instance as a command-line to be run in a shell wrapper.
172
- *
173
- * Command-lines are parsed by the shell of your OS (/bin/sh on Unix-like, cmd.exe on Windows.)
174
- * This allows using e.g. pipes or conditional execution. In this mode, signals are sent to the
175
- * shell wrapper and not to your commands.
176
- *
177
- * In order to inject dynamic values into command-lines, we strongly recommend using placeholders.
178
- * This will save escaping values, which is not portable nor secure anyway:
179
- *
180
- * $process = Process::fromShellCommandline('my_command "$MY_VAR"');
181
- * $process->run(null, ['MY_VAR' => $theValue]);
182
- *
183
- * @param string $command The command line to pass to the shell of the OS
184
- * @param string|null $cwd The working directory or null to use the working dir of the current PHP process
185
- * @param array|null $env The environment variables or null to use the same environment as the current PHP process
186
- * @param mixed|null $input The input as stream resource, scalar or \Traversable, or null for no input
187
- * @param int|float|null $timeout The timeout in seconds or null to disable
188
- *
189
- * @throws RuntimeException When proc_open is not installed
190
- */
191
- public static function fromShellCommandline(string $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60)
192
- {
193
- $process = new static([], $cwd, $env, $input, $timeout);
194
- $process->commandline = $command;
195
-
196
- return $process;
197
- }
198
-
199
- public function __destruct()
200
- {
201
- $this->stop(0);
202
- }
203
-
204
- public function __clone()
205
- {
206
- $this->resetProcessData();
207
- }
208
-
209
- /**
210
- * Runs the process.
211
- *
212
- * The callback receives the type of output (out or err) and
213
- * some bytes from the output in real-time. It allows to have feedback
214
- * from the independent process during execution.
215
- *
216
- * The STDOUT and STDERR are also available after the process is finished
217
- * via the getOutput() and getErrorOutput() methods.
218
- *
219
- * @param callable|null $callback A PHP callback to run whenever there is some
220
- * output available on STDOUT or STDERR
221
- * @param array $env An array of additional env vars to set when running the process
222
- *
223
- * @return int The exit status code
224
- *
225
- * @throws RuntimeException When process can't be launched
226
- * @throws RuntimeException When process stopped after receiving signal
227
- * @throws LogicException In case a callback is provided and output has been disabled
228
- *
229
- * @final
230
- */
231
- public function run(callable $callback = null, array $env = []): int
232
- {
233
- $this->start($callback, $env);
234
-
235
- return $this->wait();
236
- }
237
-
238
- /**
239
- * Runs the process.
240
- *
241
- * This is identical to run() except that an exception is thrown if the process
242
- * exits with a non-zero exit code.
243
- *
244
- * @param callable|null $callback
245
- * @param array $env An array of additional env vars to set when running the process
246
- *
247
- * @return self
248
- *
249
- * @throws ProcessFailedException if the process didn't terminate successfully
250
- *
251
- * @final
252
- */
253
- public function mustRun(callable $callback = null, array $env = [])
254
- {
255
- if (0 !== $this->run($callback, $env)) {
256
- throw new ProcessFailedException($this);
257
- }
258
-
259
- return $this;
260
- }
261
-
262
- /**
263
- * Starts the process and returns after writing the input to STDIN.
264
- *
265
- * This method blocks until all STDIN data is sent to the process then it
266
- * returns while the process runs in the background.
267
- *
268
- * The termination of the process can be awaited with wait().
269
- *
270
- * The callback receives the type of output (out or err) and some bytes from
271
- * the output in real-time while writing the standard input to the process.
272
- * It allows to have feedback from the independent process during execution.
273
- *
274
- * @param callable|null $callback A PHP callback to run whenever there is some
275
- * output available on STDOUT or STDERR
276
- * @param array $env An array of additional env vars to set when running the process
277
- *
278
- * @throws RuntimeException When process can't be launched
279
- * @throws RuntimeException When process is already running
280
- * @throws LogicException In case a callback is provided and output has been disabled
281
- */
282
- public function start(callable $callback = null, array $env = [])
283
- {
284
- if ($this->isRunning()) {
285
- throw new RuntimeException('Process is already running');
286
- }
287
-
288
- $this->resetProcessData();
289
- $this->starttime = $this->lastOutputTime = microtime(true);
290
- $this->callback = $this->buildCallback($callback);
291
- $this->hasCallback = null !== $callback;
292
- $descriptors = $this->getDescriptors();
293
-
294
- if (\is_array($commandline = $this->commandline)) {
295
- $commandline = implode(' ', array_map([$this, 'escapeArgument'], $commandline));
296
-
297
- if ('\\' !== \DIRECTORY_SEPARATOR) {
298
- // exec is mandatory to deal with sending a signal to the process
299
- $commandline = 'exec '.$commandline;
300
- }
301
- }
302
-
303
- if ($this->env) {
304
- $env += $this->env;
305
- }
306
- $env += $this->getDefaultEnv();
307
-
308
- $options = ['suppress_errors' => true];
309
-
310
- if ('\\' === \DIRECTORY_SEPARATOR) {
311
- $options['bypass_shell'] = true;
312
- $commandline = $this->prepareWindowsCommandLine($commandline, $env);
313
- } elseif (!$this->useFileHandles && $this->isSigchildEnabled()) {
314
- // last exit code is output on the fourth pipe and caught to work around --enable-sigchild
315
- $descriptors[3] = ['pipe', 'w'];
316
-
317
- // See https://unix.stackexchange.com/questions/71205/background-process-pipe-input
318
- $commandline = '{ ('.$commandline.') <&3 3<&- 3>/dev/null & } 3<&0;';
319
- $commandline .= 'pid=$!; echo $pid >&3; wait $pid; code=$?; echo $code >&3; exit $code';
320
-
321
- // Workaround for the bug, when PTS functionality is enabled.
322
- // @see : https://bugs.php.net/69442
323
- $ptsWorkaround = fopen(__FILE__, 'r');
324
- }
325
-
326
- $envPairs = [];
327
- foreach ($env as $k => $v) {
328
- if (false !== $v) {
329
- $envPairs[] = $k.'='.$v;
330
- }
331
- }
332
-
333
- if (!is_dir($this->cwd)) {
334
- throw new RuntimeException('The provided cwd does not exist.');
335
- }
336
-
337
- $this->process = proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $options);
338
-
339
- if (!\is_resource($this->process)) {
340
- throw new RuntimeException('Unable to launch a new process.');
341
- }
342
- $this->status = self::STATUS_STARTED;
343
-
344
- if (isset($descriptors[3])) {
345
- $this->fallbackStatus['pid'] = (int) fgets($this->processPipes->pipes[3]);
346
- }
347
-
348
- if ($this->tty) {
349
- return;
350
- }
351
-
352
- $this->updateStatus(false);
353
- $this->checkTimeout();
354
- }
355
-
356
- /**
357
- * Restarts the process.
358
- *
359
- * Be warned that the process is cloned before being started.
360
- *
361
- * @param callable|null $callback A PHP callback to run whenever there is some
362
- * output available on STDOUT or STDERR
363
- * @param array $env An array of additional env vars to set when running the process
364
- *
365
- * @return $this
366
- *
367
- * @throws RuntimeException When process can't be launched
368
- * @throws RuntimeException When process is already running
369
- *
370
- * @see start()
371
- *
372
- * @final
373
- */
374
- public function restart(callable $callback = null, array $env = [])
375
- {
376
- if ($this->isRunning()) {
377
- throw new RuntimeException('Process is already running');
378
- }
379
-
380
- $process = clone $this;
381
- $process->start($callback, $env);
382
-
383
- return $process;
384
- }
385
-
386
- /**
387
- * Waits for the process to terminate.
388
- *
389
- * The callback receives the type of output (out or err) and some bytes
390
- * from the output in real-time while writing the standard input to the process.
391
- * It allows to have feedback from the independent process during execution.
392
- *
393
- * @param callable|null $callback A valid PHP callback
394
- *
395
- * @return int The exitcode of the process
396
- *
397
- * @throws RuntimeException When process timed out
398
- * @throws RuntimeException When process stopped after receiving signal
399
- * @throws LogicException When process is not yet started
400
- */
401
- public function wait(callable $callback = null)
402
- {
403
- $this->requireProcessIsStarted(__FUNCTION__);
404
-
405
- $this->updateStatus(false);
406
-
407
- if (null !== $callback) {
408
- if (!$this->processPipes->haveReadSupport()) {
409
- $this->stop(0);
410
- throw new \LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::wait"');
411
- }
412
- $this->callback = $this->buildCallback($callback);
413
- }
414
-
415
- do {
416
- $this->checkTimeout();
417
- $running = '\\' === \DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen();
418
- $this->readPipes($running, '\\' !== \DIRECTORY_SEPARATOR || !$running);
419
- } while ($running);
420
-
421
- while ($this->isRunning()) {
422
- usleep(1000);
423
- }
424
-
425
- if ($this->processInformation['signaled'] && $this->processInformation['termsig'] !== $this->latestSignal) {
426
- throw new ProcessSignaledException($this);
427
- }
428
-
429
- return $this->exitcode;
430
- }
431
-
432
- /**
433
- * Waits until the callback returns true.
434
- *
435
- * The callback receives the type of output (out or err) and some bytes
436
- * from the output in real-time while writing the standard input to the process.
437
- * It allows to have feedback from the independent process during execution.
438
- *
439
- * @throws RuntimeException When process timed out
440
- * @throws LogicException When process is not yet started
441
- */
442
- public function waitUntil(callable $callback): bool
443
- {
444
- $this->requireProcessIsStarted(__FUNCTION__);
445
- $this->updateStatus(false);
446
-
447
- if (!$this->processPipes->haveReadSupport()) {
448
- $this->stop(0);
449
- throw new \LogicException('Pass the callback to the "Process::start" method or call enableOutput to use a callback with "Process::waitUntil".');
450
- }
451
- $callback = $this->buildCallback($callback);
452
-
453
- $ready = false;
454
- while (true) {
455
- $this->checkTimeout();
456
- $running = '\\' === \DIRECTORY_SEPARATOR ? $this->isRunning() : $this->processPipes->areOpen();
457
- $output = $this->processPipes->readAndWrite($running, '\\' !== \DIRECTORY_SEPARATOR || !$running);
458
-
459
- foreach ($output as $type => $data) {
460
- if (3 !== $type) {
461
- $ready = $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data) || $ready;
462
- } elseif (!isset($this->fallbackStatus['signaled'])) {
463
- $this->fallbackStatus['exitcode'] = (int) $data;
464
- }
465
- }
466
- if ($ready) {
467
- return true;
468
- }
469
- if (!$running) {
470
- return false;
471
- }
472
-
473
- usleep(1000);
474
- }
475
- }
476
-
477
- /**
478
- * Returns the Pid (process identifier), if applicable.
479
- *
480
- * @return int|null The process id if running, null otherwise
481
- */
482
- public function getPid()
483
- {
484
- return $this->isRunning() ? $this->processInformation['pid'] : null;
485
- }
486
-
487
- /**
488
- * Sends a POSIX signal to the process.
489
- *
490
- * @param int $signal A valid POSIX signal (see http://www.php.net/manual/en/pcntl.constants.php)
491
- *
492
- * @return $this
493
- *
494
- * @throws LogicException In case the process is not running
495
- * @throws RuntimeException In case --enable-sigchild is activated and the process can't be killed
496
- * @throws RuntimeException In case of failure
497
- */
498
- public function signal($signal)
499
- {
500
- $this->doSignal($signal, true);
501
-
502
- return $this;
503
- }
504
-
505
- /**
506
- * Disables fetching output and error output from the underlying process.
507
- *
508
- * @return $this
509
- *
510
- * @throws RuntimeException In case the process is already running
511
- * @throws LogicException if an idle timeout is set
512
- */
513
- public function disableOutput()
514
- {
515
- if ($this->isRunning()) {
516
- throw new RuntimeException('Disabling output while the process is running is not possible.');
517
- }
518
- if (null !== $this->idleTimeout) {
519
- throw new LogicException('Output can not be disabled while an idle timeout is set.');
520
- }
521
-
522
- $this->outputDisabled = true;
523
-
524
- return $this;
525
- }
526
-
527
- /**
528
- * Enables fetching output and error output from the underlying process.
529
- *
530
- * @return $this
531
- *
532
- * @throws RuntimeException In case the process is already running
533
- */
534
- public function enableOutput()
535
- {
536
- if ($this->isRunning()) {
537
- throw new RuntimeException('Enabling output while the process is running is not possible.');
538
- }
539
-
540
- $this->outputDisabled = false;
541
-
542
- return $this;
543
- }
544
-
545
- /**
546
- * Returns true in case the output is disabled, false otherwise.
547
- *
548
- * @return bool
549
- */
550
- public function isOutputDisabled()
551
- {
552
- return $this->outputDisabled;
553
- }
554
-
555
- /**
556
- * Returns the current output of the process (STDOUT).
557
- *
558
- * @return string The process output
559
- *
560
- * @throws LogicException in case the output has been disabled
561
- * @throws LogicException In case the process is not started
562
- */
563
- public function getOutput()
564
- {
565
- $this->readPipesForOutput(__FUNCTION__);
566
-
567
- if (false === $ret = stream_get_contents($this->stdout, -1, 0)) {
568
- return '';
569
- }
570
-
571
- return $ret;
572
- }
573
-
574
- /**
575
- * Returns the output incrementally.
576
- *
577
- * In comparison with the getOutput method which always return the whole
578
- * output, this one returns the new output since the last call.
579
- *
580
- * @return string The process output since the last call
581
- *
582
- * @throws LogicException in case the output has been disabled
583
- * @throws LogicException In case the process is not started
584
- */
585
- public function getIncrementalOutput()
586
- {
587
- $this->readPipesForOutput(__FUNCTION__);
588
-
589
- $latest = stream_get_contents($this->stdout, -1, $this->incrementalOutputOffset);
590
- $this->incrementalOutputOffset = ftell($this->stdout);
591
-
592
- if (false === $latest) {
593
- return '';
594
- }
595
-
596
- return $latest;
597
- }
598
-
599
- /**
600
- * Returns an iterator to the output of the process, with the output type as keys (Process::OUT/ERR).
601
- *
602
- * @param int $flags A bit field of Process::ITER_* flags
603
- *
604
- * @throws LogicException in case the output has been disabled
605
- * @throws LogicException In case the process is not started
606
- *
607
- * @return \Generator
608
- */
609
- public function getIterator($flags = 0)
610
- {
611
- $this->readPipesForOutput(__FUNCTION__, false);
612
-
613
- $clearOutput = !(self::ITER_KEEP_OUTPUT & $flags);
614
- $blocking = !(self::ITER_NON_BLOCKING & $flags);
615
- $yieldOut = !(self::ITER_SKIP_OUT & $flags);
616
- $yieldErr = !(self::ITER_SKIP_ERR & $flags);
617
-
618
- while (null !== $this->callback || ($yieldOut && !feof($this->stdout)) || ($yieldErr && !feof($this->stderr))) {
619
- if ($yieldOut) {
620
- $out = stream_get_contents($this->stdout, -1, $this->incrementalOutputOffset);
621
-
622
- if (isset($out[0])) {
623
- if ($clearOutput) {
624
- $this->clearOutput();
625
- } else {
626
- $this->incrementalOutputOffset = ftell($this->stdout);
627
- }
628
-
629
- yield self::OUT => $out;
630
- }
631
- }
632
-
633
- if ($yieldErr) {
634
- $err = stream_get_contents($this->stderr, -1, $this->incrementalErrorOutputOffset);
635
-
636
- if (isset($err[0])) {
637
- if ($clearOutput) {
638
- $this->clearErrorOutput();
639
- } else {
640
- $this->incrementalErrorOutputOffset = ftell($this->stderr);
641
- }
642
-
643
- yield self::ERR => $err;
644
- }
645
- }
646
-
647
- if (!$blocking && !isset($out[0]) && !isset($err[0])) {
648
- yield self::OUT => '';
649
- }
650
-
651
- $this->checkTimeout();
652
- $this->readPipesForOutput(__FUNCTION__, $blocking);
653
- }
654
- }
655
-
656
- /**
657
- * Clears the process output.
658
- *
659
- * @return $this
660
- */
661
- public function clearOutput()
662
- {
663
- ftruncate($this->stdout, 0);
664
- fseek($this->stdout, 0);
665
- $this->incrementalOutputOffset = 0;
666
-
667
- return $this;
668
- }
669
-
670
- /**
671
- * Returns the current error output of the process (STDERR).
672
- *
673
- * @return string The process error output
674
- *
675
- * @throws LogicException in case the output has been disabled
676
- * @throws LogicException In case the process is not started
677
- */
678
- public function getErrorOutput()
679
- {
680
- $this->readPipesForOutput(__FUNCTION__);
681
-
682
- if (false === $ret = stream_get_contents($this->stderr, -1, 0)) {
683
- return '';
684
- }
685
-
686
- return $ret;
687
- }
688
-
689
- /**
690
- * Returns the errorOutput incrementally.
691
- *
692
- * In comparison with the getErrorOutput method which always return the
693
- * whole error output, this one returns the new error output since the last
694
- * call.
695
- *
696
- * @return string The process error output since the last call
697
- *
698
- * @throws LogicException in case the output has been disabled
699
- * @throws LogicException In case the process is not started
700
- */
701
- public function getIncrementalErrorOutput()
702
- {
703
- $this->readPipesForOutput(__FUNCTION__);
704
-
705
- $latest = stream_get_contents($this->stderr, -1, $this->incrementalErrorOutputOffset);
706
- $this->incrementalErrorOutputOffset = ftell($this->stderr);
707
-
708
- if (false === $latest) {
709
- return '';
710
- }
711
-
712
- return $latest;
713
- }
714
-
715
- /**
716
- * Clears the process output.
717
- *
718
- * @return $this
719
- */
720
- public function clearErrorOutput()
721
- {
722
- ftruncate($this->stderr, 0);
723
- fseek($this->stderr, 0);
724
- $this->incrementalErrorOutputOffset = 0;
725
-
726
- return $this;
727
- }
728
-
729
- /**
730
- * Returns the exit code returned by the process.
731
- *
732
- * @return int|null The exit status code, null if the Process is not terminated
733
- */
734
- public function getExitCode()
735
- {
736
- $this->updateStatus(false);
737
-
738
- return $this->exitcode;
739
- }
740
-
741
- /**
742
- * Returns a string representation for the exit code returned by the process.
743
- *
744
- * This method relies on the Unix exit code status standardization
745
- * and might not be relevant for other operating systems.
746
- *
747
- * @return string|null A string representation for the exit status code, null if the Process is not terminated
748
- *
749
- * @see http://tldp.org/LDP/abs/html/exitcodes.html
750
- * @see http://en.wikipedia.org/wiki/Unix_signal
751
- */
752
- public function getExitCodeText()
753
- {
754
- if (null === $exitcode = $this->getExitCode()) {
755
- return;
756
- }
757
-
758
- return isset(self::$exitCodes[$exitcode]) ? self::$exitCodes[$exitcode] : 'Unknown error';
759
- }
760
-
761
- /**
762
- * Checks if the process ended successfully.
763
- *
764
- * @return bool true if the process ended successfully, false otherwise
765
- */
766
- public function isSuccessful()
767
- {
768
- return 0 === $this->getExitCode();
769
- }
770
-
771
- /**
772
- * Returns true if the child process has been terminated by an uncaught signal.
773
- *
774
- * It always returns false on Windows.
775
- *
776
- * @return bool
777
- *
778
- * @throws LogicException In case the process is not terminated
779
- */
780
- public function hasBeenSignaled()
781
- {
782
- $this->requireProcessIsTerminated(__FUNCTION__);
783
-
784
- return $this->processInformation['signaled'];
785
- }
786
-
787
- /**
788
- * Returns the number of the signal that caused the child process to terminate its execution.
789
- *
790
- * It is only meaningful if hasBeenSignaled() returns true.
791
- *
792
- * @return int
793
- *
794
- * @throws RuntimeException In case --enable-sigchild is activated
795
- * @throws LogicException In case the process is not terminated
796
- */
797
- public function getTermSignal()
798
- {
799
- $this->requireProcessIsTerminated(__FUNCTION__);
800
-
801
- if ($this->isSigchildEnabled() && -1 === $this->processInformation['termsig']) {
802
- throw new RuntimeException('This PHP has been compiled with --enable-sigchild. Term signal can not be retrieved.');
803
- }
804
-
805
- return $this->processInformation['termsig'];
806
- }
807
-
808
- /**
809
- * Returns true if the child process has been stopped by a signal.
810
- *
811
- * It always returns false on Windows.
812
- *
813
- * @return bool
814
- *
815
- * @throws LogicException In case the process is not terminated
816
- */
817
- public function hasBeenStopped()
818
- {
819
- $this->requireProcessIsTerminated(__FUNCTION__);
820
-
821
- return $this->processInformation['stopped'];
822
- }
823
-
824
- /**
825
- * Returns the number of the signal that caused the child process to stop its execution.
826
- *
827
- * It is only meaningful if hasBeenStopped() returns true.
828
- *
829
- * @return int
830
- *
831
- * @throws LogicException In case the process is not terminated
832
- */
833
- public function getStopSignal()
834
- {
835
- $this->requireProcessIsTerminated(__FUNCTION__);
836
-
837
- return $this->processInformation['stopsig'];
838
- }
839
-
840
- /**
841
- * Checks if the process is currently running.
842
- *
843
- * @return bool true if the process is currently running, false otherwise
844
- */
845
- public function isRunning()
846
- {
847
- if (self::STATUS_STARTED !== $this->status) {
848
- return false;
849
- }
850
-
851
- $this->updateStatus(false);
852
-
853
- return $this->processInformation['running'];
854
- }
855
-
856
- /**
857
- * Checks if the process has been started with no regard to the current state.
858
- *
859
- * @return bool true if status is ready, false otherwise
860
- */
861
- public function isStarted()
862
- {
863
- return self::STATUS_READY != $this->status;
864
- }
865
-
866
- /**
867
- * Checks if the process is terminated.
868
- *
869
- * @return bool true if process is terminated, false otherwise
870
- */
871
- public function isTerminated()
872
- {
873
- $this->updateStatus(false);
874
-
875
- return self::STATUS_TERMINATED == $this->status;
876
- }
877
-
878
- /**
879
- * Gets the process status.
880
- *
881
- * The status is one of: ready, started, terminated.
882
- *
883
- * @return string The current process status
884
- */
885
- public function getStatus()
886
- {
887
- $this->updateStatus(false);
888
-
889
- return $this->status;
890
- }
891
-
892
- /**
893
- * Stops the process.
894
- *
895
- * @param int|float $timeout The timeout in seconds
896
- * @param int $signal A POSIX signal to send in case the process has not stop at timeout, default is SIGKILL (9)
897
- *
898
- * @return int The exit-code of the process
899
- */
900
- public function stop($timeout = 10, $signal = null)
901
- {
902
- $timeoutMicro = microtime(true) + $timeout;
903
- if ($this->isRunning()) {
904
- // given SIGTERM may not be defined and that "proc_terminate" uses the constant value and not the constant itself, we use the same here
905
- $this->doSignal(15, false);
906
- do {
907
- usleep(1000);
908
- } while ($this->isRunning() && microtime(true) < $timeoutMicro);
909
-
910
- if ($this->isRunning()) {
911
- // Avoid exception here: process is supposed to be running, but it might have stopped just
912
- // after this line. In any case, let's silently discard the error, we cannot do anything.
913
- $this->doSignal($signal ?: 9, false);
914
- }
915
- }
916
-
917
- if ($this->isRunning()) {
918
- if (isset($this->fallbackStatus['pid'])) {
919
- unset($this->fallbackStatus['pid']);
920
-
921
- return $this->stop(0, $signal);
922
- }
923
- $this->close();
924
- }
925
-
926
- return $this->exitcode;
927
- }
928
-
929
- /**
930
- * Adds a line to the STDOUT stream.
931
- *
932
- * @internal
933
- */
934
- public function addOutput(string $line)
935
- {
936
- $this->lastOutputTime = microtime(true);
937
-
938
- fseek($this->stdout, 0, SEEK_END);
939
- fwrite($this->stdout, $line);
940
- fseek($this->stdout, $this->incrementalOutputOffset);
941
- }
942
-
943
- /**
944
- * Adds a line to the STDERR stream.
945
- *
946
- * @internal
947
- */
948
- public function addErrorOutput(string $line)
949
- {
950
- $this->lastOutputTime = microtime(true);
951
-
952
- fseek($this->stderr, 0, SEEK_END);
953
- fwrite($this->stderr, $line);
954
- fseek($this->stderr, $this->incrementalErrorOutputOffset);
955
- }
956
-
957
- /**
958
- * Gets the command line to be executed.
959
- *
960
- * @return string The command to execute
961
- */
962
- public function getCommandLine()
963
- {
964
- return \is_array($this->commandline) ? implode(' ', array_map([$this, 'escapeArgument'], $this->commandline)) : $this->commandline;
965
- }
966
-
967
- /**
968
- * Sets the command line to be executed.
969
- *
970
- * @param string|array $commandline The command to execute
971
- *
972
- * @return self The current Process instance
973
- *
974
- * @deprecated since Symfony 4.2.
975
- */
976
- public function setCommandLine($commandline)
977
- {
978
- @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED);
979
-
980
- $this->commandline = $commandline;
981
-
982
- return $this;
983
- }
984
-
985
- /**
986
- * Gets the process timeout (max. runtime).
987
- *
988
- * @return float|null The timeout in seconds or null if it's disabled
989
- */
990
- public function getTimeout()
991
- {
992
- return $this->timeout;
993
- }
994
-
995
- /**
996
- * Gets the process idle timeout (max. time since last output).
997
- *
998
- * @return float|null The timeout in seconds or null if it's disabled
999
- */
1000
- public function getIdleTimeout()
1001
- {
1002
- return $this->idleTimeout;
1003
- }
1004
-
1005
- /**
1006
- * Sets the process timeout (max. runtime).
1007
- *
1008
- * To disable the timeout, set this value to null.
1009
- *
1010
- * @param int|float|null $timeout The timeout in seconds
1011
- *
1012
- * @return self The current Process instance
1013
- *
1014
- * @throws InvalidArgumentException if the timeout is negative
1015
- */
1016
- public function setTimeout($timeout)
1017
- {
1018
- $this->timeout = $this->validateTimeout($timeout);
1019
-
1020
- return $this;
1021
- }
1022
-
1023
- /**
1024
- * Sets the process idle timeout (max. time since last output).
1025
- *
1026
- * To disable the timeout, set this value to null.
1027
- *
1028
- * @param int|float|null $timeout The timeout in seconds
1029
- *
1030
- * @return self The current Process instance
1031
- *
1032
- * @throws LogicException if the output is disabled
1033
- * @throws InvalidArgumentException if the timeout is negative
1034
- */
1035
- public function setIdleTimeout($timeout)
1036
- {
1037
- if (null !== $timeout && $this->outputDisabled) {
1038
- throw new LogicException('Idle timeout can not be set while the output is disabled.');
1039
- }
1040
-
1041
- $this->idleTimeout = $this->validateTimeout($timeout);
1042
-
1043
- return $this;
1044
- }
1045
-
1046
- /**
1047
- * Enables or disables the TTY mode.
1048
- *
1049
- * @param bool $tty True to enabled and false to disable
1050
- *
1051
- * @return self The current Process instance
1052
- *
1053
- * @throws RuntimeException In case the TTY mode is not supported
1054
- */
1055
- public function setTty($tty)
1056
- {
1057
- if ('\\' === \DIRECTORY_SEPARATOR && $tty) {
1058
- throw new RuntimeException('TTY mode is not supported on Windows platform.');
1059
- }
1060
-
1061
- if ($tty && !self::isTtySupported()) {
1062
- throw new RuntimeException('TTY mode requires /dev/tty to be read/writable.');
1063
- }
1064
-
1065
- $this->tty = (bool) $tty;
1066
-
1067
- return $this;
1068
- }
1069
-
1070
- /**
1071
- * Checks if the TTY mode is enabled.
1072
- *
1073
- * @return bool true if the TTY mode is enabled, false otherwise
1074
- */
1075
- public function isTty()
1076
- {
1077
- return $this->tty;
1078
- }
1079
-
1080
- /**
1081
- * Sets PTY mode.
1082
- *
1083
- * @param bool $bool
1084
- *
1085
- * @return self
1086
- */
1087
- public function setPty($bool)
1088
- {
1089
- $this->pty = (bool) $bool;
1090
-
1091
- return $this;
1092
- }
1093
-
1094
- /**
1095
- * Returns PTY state.
1096
- *
1097
- * @return bool
1098
- */
1099
- public function isPty()
1100
- {
1101
- return $this->pty;
1102
- }
1103
-
1104
- /**
1105
- * Gets the working directory.
1106
- *
1107
- * @return string|null The current working directory or null on failure
1108
- */
1109
- public function getWorkingDirectory()
1110
- {
1111
- if (null === $this->cwd) {
1112
- // getcwd() will return false if any one of the parent directories does not have
1113
- // the readable or search mode set, even if the current directory does
1114
- return getcwd() ?: null;
1115
- }
1116
-
1117
- return $this->cwd;
1118
- }
1119
-
1120
- /**
1121
- * Sets the current working directory.
1122
- *
1123
- * @param string $cwd The new working directory
1124
- *
1125
- * @return self The current Process instance
1126
- */
1127
- public function setWorkingDirectory($cwd)
1128
- {
1129
- $this->cwd = $cwd;
1130
-
1131
- return $this;
1132
- }
1133
-
1134
- /**
1135
- * Gets the environment variables.
1136
- *
1137
- * @return array The current environment variables
1138
- */
1139
- public function getEnv()
1140
- {
1141
- return $this->env;
1142
- }
1143
-
1144
- /**
1145
- * Sets the environment variables.
1146
- *
1147
- * Each environment variable value should be a string.
1148
- * If it is an array, the variable is ignored.
1149
- * If it is false or null, it will be removed when
1150
- * env vars are otherwise inherited.
1151
- *
1152
- * That happens in PHP when 'argv' is registered into
1153
- * the $_ENV array for instance.
1154
- *
1155
- * @param array $env The new environment variables
1156
- *
1157
- * @return self The current Process instance
1158
- */
1159
- public function setEnv(array $env)
1160
- {
1161
- // Process can not handle env values that are arrays
1162
- $env = array_filter($env, function ($value) {
1163
- return !\is_array($value);
1164
- });
1165
-
1166
- $this->env = $env;
1167
-
1168
- return $this;
1169
- }
1170
-
1171
- /**
1172
- * Gets the Process input.
1173
- *
1174
- * @return resource|string|\Iterator|null The Process input
1175
- */
1176
- public function getInput()
1177
- {
1178
- return $this->input;
1179
- }
1180
-
1181
- /**
1182
- * Sets the input.
1183
- *
1184
- * This content will be passed to the underlying process standard input.
1185
- *
1186
- * @param string|int|float|bool|resource|\Traversable|null $input The content
1187
- *
1188
- * @return self The current Process instance
1189
- *
1190
- * @throws LogicException In case the process is running
1191
- */
1192
- public function setInput($input)
1193
- {
1194
- if ($this->isRunning()) {
1195
- throw new LogicException('Input can not be set while the process is running.');
1196
- }
1197
-
1198
- $this->input = ProcessUtils::validateInput(__METHOD__, $input);
1199
-
1200
- return $this;
1201
- }
1202
-
1203
- /**
1204
- * Sets whether environment variables will be inherited or not.
1205
- *
1206
- * @param bool $inheritEnv
1207
- *
1208
- * @return self The current Process instance
1209
- */
1210
- public function inheritEnvironmentVariables($inheritEnv = true)
1211
- {
1212
- if (!$inheritEnv) {
1213
- throw new InvalidArgumentException('Not inheriting environment variables is not supported.');
1214
- }
1215
-
1216
- return $this;
1217
- }
1218
-
1219
- /**
1220
- * Performs a check between the timeout definition and the time the process started.
1221
- *
1222
- * In case you run a background process (with the start method), you should
1223
- * trigger this method regularly to ensure the process timeout
1224
- *
1225
- * @throws ProcessTimedOutException In case the timeout was reached
1226
- */
1227
- public function checkTimeout()
1228
- {
1229
- if (self::STATUS_STARTED !== $this->status) {
1230
- return;
1231
- }
1232
-
1233
- if (null !== $this->timeout && $this->timeout < microtime(true) - $this->starttime) {
1234
- $this->stop(0);
1235
-
1236
- throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_GENERAL);
1237
- }
1238
-
1239
- if (null !== $this->idleTimeout && $this->idleTimeout < microtime(true) - $this->lastOutputTime) {
1240
- $this->stop(0);
1241
-
1242
- throw new ProcessTimedOutException($this, ProcessTimedOutException::TYPE_IDLE);
1243
- }
1244
- }
1245
-
1246
- /**
1247
- * Returns whether TTY is supported on the current operating system.
1248
- */
1249
- public static function isTtySupported(): bool
1250
- {
1251
- static $isTtySupported;
1252
-
1253
- if (null === $isTtySupported) {
1254
- $isTtySupported = (bool) @proc_open('echo 1 >/dev/null', [['file', '/dev/tty', 'r'], ['file', '/dev/tty', 'w'], ['file', '/dev/tty', 'w']], $pipes);
1255
- }
1256
-
1257
- return $isTtySupported;
1258
- }
1259
-
1260
- /**
1261
- * Returns whether PTY is supported on the current operating system.
1262
- *
1263
- * @return bool
1264
- */
1265
- public static function isPtySupported()
1266
- {
1267
- static $result;
1268
-
1269
- if (null !== $result) {
1270
- return $result;
1271
- }
1272
-
1273
- if ('\\' === \DIRECTORY_SEPARATOR) {
1274
- return $result = false;
1275
- }
1276
-
1277
- return $result = (bool) @proc_open('echo 1 >/dev/null', [['pty'], ['pty'], ['pty']], $pipes);
1278
- }
1279
-
1280
- /**
1281
- * Creates the descriptors needed by the proc_open.
1282
- */
1283
- private function getDescriptors(): array
1284
- {
1285
- if ($this->input instanceof \Iterator) {
1286
- $this->input->rewind();
1287
- }
1288
- if ('\\' === \DIRECTORY_SEPARATOR) {
1289
- $this->processPipes = new WindowsPipes($this->input, !$this->outputDisabled || $this->hasCallback);
1290
- } else {
1291
- $this->processPipes = new UnixPipes($this->isTty(), $this->isPty(), $this->input, !$this->outputDisabled || $this->hasCallback);
1292
- }
1293
-
1294
- return $this->processPipes->getDescriptors();
1295
- }
1296
-
1297
- /**
1298
- * Builds up the callback used by wait().
1299
- *
1300
- * The callbacks adds all occurred output to the specific buffer and calls
1301
- * the user callback (if present) with the received output.
1302
- *
1303
- * @param callable|null $callback The user defined PHP callback
1304
- *
1305
- * @return \Closure A PHP closure
1306
- */
1307
- protected function buildCallback(callable $callback = null)
1308
- {
1309
- if ($this->outputDisabled) {
1310
- return function ($type, $data) use ($callback) {
1311
- if (null !== $callback) {
1312
- return $callback($type, $data);
1313
- }
1314
- };
1315
- }
1316
-
1317
- $out = self::OUT;
1318
-
1319
- return function ($type, $data) use ($callback, $out) {
1320
- if ($out == $type) {
1321
- $this->addOutput($data);
1322
- } else {
1323
- $this->addErrorOutput($data);
1324
- }
1325
-
1326
- if (null !== $callback) {
1327
- return $callback($type, $data);
1328
- }
1329
- };
1330
- }
1331
-
1332
- /**
1333
- * Updates the status of the process, reads pipes.
1334
- *
1335
- * @param bool $blocking Whether to use a blocking read call
1336
- */
1337
- protected function updateStatus($blocking)
1338
- {
1339
- if (self::STATUS_STARTED !== $this->status) {
1340
- return;
1341
- }
1342
-
1343
- $this->processInformation = proc_get_status($this->process);
1344
- $running = $this->processInformation['running'];
1345
-
1346
- $this->readPipes($running && $blocking, '\\' !== \DIRECTORY_SEPARATOR || !$running);
1347
-
1348
- if ($this->fallbackStatus && $this->isSigchildEnabled()) {
1349
- $this->processInformation = $this->fallbackStatus + $this->processInformation;
1350
- }
1351
-
1352
- if (!$running) {
1353
- $this->close();
1354
- }
1355
- }
1356
-
1357
- /**
1358
- * Returns whether PHP has been compiled with the '--enable-sigchild' option or not.
1359
- *
1360
- * @return bool
1361
- */
1362
- protected function isSigchildEnabled()
1363
- {
1364
- if (null !== self::$sigchild) {
1365
- return self::$sigchild;
1366
- }
1367
-
1368
- if (!\function_exists('phpinfo')) {
1369
- return self::$sigchild = false;
1370
- }
1371
-
1372
- ob_start();
1373
- phpinfo(INFO_GENERAL);
1374
-
1375
- return self::$sigchild = false !== strpos(ob_get_clean(), '--enable-sigchild');
1376
- }
1377
-
1378
- /**
1379
- * Reads pipes for the freshest output.
1380
- *
1381
- * @param string $caller The name of the method that needs fresh outputs
1382
- * @param bool $blocking Whether to use blocking calls or not
1383
- *
1384
- * @throws LogicException in case output has been disabled or process is not started
1385
- */
1386
- private function readPipesForOutput(string $caller, bool $blocking = false)
1387
- {
1388
- if ($this->outputDisabled) {
1389
- throw new LogicException('Output has been disabled.');
1390
- }
1391
-
1392
- $this->requireProcessIsStarted($caller);
1393
-
1394
- $this->updateStatus($blocking);
1395
- }
1396
-
1397
- /**
1398
- * Validates and returns the filtered timeout.
1399
- *
1400
- * @throws InvalidArgumentException if the given timeout is a negative number
1401
- */
1402
- private function validateTimeout(?float $timeout): ?float
1403
- {
1404
- $timeout = (float) $timeout;
1405
-
1406
- if (0.0 === $timeout) {
1407
- $timeout = null;
1408
- } elseif ($timeout < 0) {
1409
- throw new InvalidArgumentException('The timeout value must be a valid positive integer or float number.');
1410
- }
1411
-
1412
- return $timeout;
1413
- }
1414
-
1415
- /**
1416
- * Reads pipes, executes callback.
1417
- *
1418
- * @param bool $blocking Whether to use blocking calls or not
1419
- * @param bool $close Whether to close file handles or not
1420
- */
1421
- private function readPipes(bool $blocking, bool $close)
1422
- {
1423
- $result = $this->processPipes->readAndWrite($blocking, $close);
1424
-
1425
- $callback = $this->callback;
1426
- foreach ($result as $type => $data) {
1427
- if (3 !== $type) {
1428
- $callback(self::STDOUT === $type ? self::OUT : self::ERR, $data);
1429
- } elseif (!isset($this->fallbackStatus['signaled'])) {
1430
- $this->fallbackStatus['exitcode'] = (int) $data;
1431
- }
1432
- }
1433
- }
1434
-
1435
- /**
1436
- * Closes process resource, closes file handles, sets the exitcode.
1437
- *
1438
- * @return int The exitcode
1439
- */
1440
- private function close(): int
1441
- {
1442
- $this->processPipes->close();
1443
- if (\is_resource($this->process)) {
1444
- proc_close($this->process);
1445
- }
1446
- $this->exitcode = $this->processInformation['exitcode'];
1447
- $this->status = self::STATUS_TERMINATED;
1448
-
1449
- if (-1 === $this->exitcode) {
1450
- if ($this->processInformation['signaled'] && 0 < $this->processInformation['termsig']) {
1451
- // if process has been signaled, no exitcode but a valid termsig, apply Unix convention
1452
- $this->exitcode = 128 + $this->processInformation['termsig'];
1453
- } elseif ($this->isSigchildEnabled()) {
1454
- $this->processInformation['signaled'] = true;
1455
- $this->processInformation['termsig'] = -1;
1456
- }
1457
- }
1458
-
1459
- // Free memory from self-reference callback created by buildCallback
1460
- // Doing so in other contexts like __destruct or by garbage collector is ineffective
1461
- // Now pipes are closed, so the callback is no longer necessary
1462
- $this->callback = null;
1463
-
1464
- return $this->exitcode;
1465
- }
1466
-
1467
- /**
1468
- * Resets data related to the latest run of the process.
1469
- */
1470
- private function resetProcessData()
1471
- {
1472
- $this->starttime = null;
1473
- $this->callback = null;
1474
- $this->exitcode = null;
1475
- $this->fallbackStatus = [];
1476
- $this->processInformation = null;
1477
- $this->stdout = fopen('php://temp/maxmemory:'.(1024 * 1024), 'w+b');
1478
- $this->stderr = fopen('php://temp/maxmemory:'.(1024 * 1024), 'w+b');
1479
- $this->process = null;
1480
- $this->latestSignal = null;
1481
- $this->status = self::STATUS_READY;
1482
- $this->incrementalOutputOffset = 0;
1483
- $this->incrementalErrorOutputOffset = 0;
1484
- }
1485
-
1486
- /**
1487
- * Sends a POSIX signal to the process.
1488
- *
1489
- * @param int $signal A valid POSIX signal (see http://www.php.net/manual/en/pcntl.constants.php)
1490
- * @param bool $throwException Whether to throw exception in case signal failed
1491
- *
1492
- * @return bool True if the signal was sent successfully, false otherwise
1493
- *
1494
- * @throws LogicException In case the process is not running
1495
- * @throws RuntimeException In case --enable-sigchild is activated and the process can't be killed
1496
- * @throws RuntimeException In case of failure
1497
- */
1498
- private function doSignal(int $signal, bool $throwException): bool
1499
- {
1500
- if (null === $pid = $this->getPid()) {
1501
- if ($throwException) {
1502
- throw new LogicException('Can not send signal on a non running process.');
1503
- }
1504
-
1505
- return false;
1506
- }
1507
-
1508
- if ('\\' === \DIRECTORY_SEPARATOR) {
1509
- exec(sprintf('taskkill /F /T /PID %d 2>&1', $pid), $output, $exitCode);
1510
- if ($exitCode && $this->isRunning()) {
1511
- if ($throwException) {
1512
- throw new RuntimeException(sprintf('Unable to kill the process (%s).', implode(' ', $output)));
1513
- }
1514
-
1515
- return false;
1516
- }
1517
- } else {
1518
- if (!$this->isSigchildEnabled()) {
1519
- $ok = @proc_terminate($this->process, $signal);
1520
- } elseif (\function_exists('posix_kill')) {
1521
- $ok = @posix_kill($pid, $signal);
1522
- } elseif ($ok = proc_open(sprintf('kill -%d %d', $signal, $pid), [2 => ['pipe', 'w']], $pipes)) {
1523
- $ok = false === fgets($pipes[2]);
1524
- }
1525
- if (!$ok) {
1526
- if ($throwException) {
1527
- throw new RuntimeException(sprintf('Error while sending signal "%s".', $signal));
1528
- }
1529
-
1530
- return false;
1531
- }
1532
- }
1533
-
1534
- $this->latestSignal = $signal;
1535
- $this->fallbackStatus['signaled'] = true;
1536
- $this->fallbackStatus['exitcode'] = -1;
1537
- $this->fallbackStatus['termsig'] = $this->latestSignal;
1538
-
1539
- return true;
1540
- }
1541
-
1542
- private function prepareWindowsCommandLine(string $cmd, array &$env)
1543
- {
1544
- $uid = uniqid('', true);
1545
- $varCount = 0;
1546
- $varCache = [];
1547
- $cmd = preg_replace_callback(
1548
- '/"(?:(
1549
- [^"%!^]*+
1550
- (?:
1551
- (?: !LF! | "(?:\^[%!^])?+" )
1552
- [^"%!^]*+
1553
- )++
1554
- ) | [^"]*+ )"/x',
1555
- function ($m) use (&$env, &$varCache, &$varCount, $uid) {
1556
- if (!isset($m[1])) {
1557
- return $m[0];
1558
- }
1559
- if (isset($varCache[$m[0]])) {
1560
- return $varCache[$m[0]];
1561
- }
1562
- if (false !== strpos($value = $m[1], "\0")) {
1563
- $value = str_replace("\0", '?', $value);
1564
- }
1565
- if (false === strpbrk($value, "\"%!\n")) {
1566
- return '"'.$value.'"';
1567
- }
1568
-
1569
- $value = str_replace(['!LF!', '"^!"', '"^%"', '"^^"', '""'], ["\n", '!', '%', '^', '"'], $value);
1570
- $value = '"'.preg_replace('/(\\\\*)"/', '$1$1\\"', $value).'"';
1571
- $var = $uid.++$varCount;
1572
-
1573
- $env[$var] = $value;
1574
-
1575
- return $varCache[$m[0]] = '!'.$var.'!';
1576
- },
1577
- $cmd
1578
- );
1579
-
1580
- $cmd = 'cmd /V:ON /E:ON /D /C ('.str_replace("\n", ' ', $cmd).')';
1581
- foreach ($this->processPipes->getFiles() as $offset => $filename) {
1582
- $cmd .= ' '.$offset.'>"'.$filename.'"';
1583
- }
1584
-
1585
- return $cmd;
1586
- }
1587
-
1588
- /**
1589
- * Ensures the process is running or terminated, throws a LogicException if the process has a not started.
1590
- *
1591
- * @throws LogicException if the process has not run
1592
- */
1593
- private function requireProcessIsStarted(string $functionName)
1594
- {
1595
- if (!$this->isStarted()) {
1596
- throw new LogicException(sprintf('Process must be started before calling %s.', $functionName));
1597
- }
1598
- }
1599
-
1600
- /**
1601
- * Ensures the process is terminated, throws a LogicException if the process has a status different than "terminated".
1602
- *
1603
- * @throws LogicException if the process is not yet terminated
1604
- */
1605
- private function requireProcessIsTerminated(string $functionName)
1606
- {
1607
- if (!$this->isTerminated()) {
1608
- throw new LogicException(sprintf('Process must be terminated before calling %s.', $functionName));
1609
- }
1610
- }
1611
-
1612
- /**
1613
- * Escapes a string to be used as a shell argument.
1614
- */
1615
- private function escapeArgument(?string $argument): string
1616
- {
1617
- if ('' === $argument || null === $argument) {
1618
- return '""';
1619
- }
1620
- if ('\\' !== \DIRECTORY_SEPARATOR) {
1621
- return "'".str_replace("'", "'\\''", $argument)."'";
1622
- }
1623
- if (false !== strpos($argument, "\0")) {
1624
- $argument = str_replace("\0", '?', $argument);
1625
- }
1626
- if (!preg_match('/[\/()%!^"<>&|\s]/', $argument)) {
1627
- return $argument;
1628
- }
1629
- $argument = preg_replace('/(\\\\+)$/', '$1$1', $argument);
1630
-
1631
- return '"'.str_replace(['"', '^', '%', '!', "\n"], ['""', '"^^"', '"^%"', '"^!"', '!LF!'], $argument).'"';
1632
- }
1633
-
1634
- private function getDefaultEnv()
1635
- {
1636
- $env = [];
1637
-
1638
- foreach ($_SERVER as $k => $v) {
1639
- if (\is_string($v) && false !== $v = getenv($k)) {
1640
- $env[$k] = $v;
1641
- }
1642
- }
1643
-
1644
- foreach ($_ENV as $k => $v) {
1645
- if (\is_string($v)) {
1646
- $env[$k] = $v;
1647
- }
1648
- }
1649
-
1650
- return $env;
1651
- }
1652
- }