dependabot-composer 0.108.11 → 0.108.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (901) hide show
  1. checksums.yaml +4 -4
  2. metadata +3 -902
  3. data/helpers/vendor/autoload.php +0 -7
  4. data/helpers/vendor/bin/composer +0 -1
  5. data/helpers/vendor/bin/jsonlint +0 -1
  6. data/helpers/vendor/bin/validate-json +0 -1
  7. data/helpers/vendor/composer/ClassLoader.php +0 -445
  8. data/helpers/vendor/composer/LICENSE +0 -21
  9. data/helpers/vendor/composer/autoload_classmap.php +0 -9
  10. data/helpers/vendor/composer/autoload_files.php +0 -11
  11. data/helpers/vendor/composer/autoload_namespaces.php +0 -9
  12. data/helpers/vendor/composer/autoload_psr4.php +0 -26
  13. data/helpers/vendor/composer/autoload_real.php +0 -70
  14. data/helpers/vendor/composer/autoload_static.php +0 -128
  15. data/helpers/vendor/composer/ca-bundle/LICENSE +0 -19
  16. data/helpers/vendor/composer/ca-bundle/README.md +0 -85
  17. data/helpers/vendor/composer/ca-bundle/composer.json +0 -54
  18. data/helpers/vendor/composer/ca-bundle/res/cacert.pem +0 -3401
  19. data/helpers/vendor/composer/ca-bundle/src/CaBundle.php +0 -308
  20. data/helpers/vendor/composer/composer/.gitattributes +0 -12
  21. data/helpers/vendor/composer/composer/.github/CONTRIBUTING.md +0 -59
  22. data/helpers/vendor/composer/composer/.github/ISSUE_TEMPLATE.md +0 -25
  23. data/helpers/vendor/composer/composer/.gitignore +0 -11
  24. data/helpers/vendor/composer/composer/.php_cs +0 -58
  25. data/helpers/vendor/composer/composer/.travis.yml +0 -76
  26. data/helpers/vendor/composer/composer/CHANGELOG.md +0 -808
  27. data/helpers/vendor/composer/composer/LICENSE +0 -19
  28. data/helpers/vendor/composer/composer/PORTING_INFO +0 -39
  29. data/helpers/vendor/composer/composer/README.md +0 -62
  30. data/helpers/vendor/composer/composer/appveyor.yml +0 -33
  31. data/helpers/vendor/composer/composer/bin/compile +0 -31
  32. data/helpers/vendor/composer/composer/bin/composer +0 -62
  33. data/helpers/vendor/composer/composer/composer.json +0 -81
  34. data/helpers/vendor/composer/composer/composer.lock +0 -1800
  35. data/helpers/vendor/composer/composer/doc/00-intro.md +0 -156
  36. data/helpers/vendor/composer/composer/doc/01-basic-usage.md +0 -266
  37. data/helpers/vendor/composer/composer/doc/02-libraries.md +0 -153
  38. data/helpers/vendor/composer/composer/doc/03-cli.md +0 -931
  39. data/helpers/vendor/composer/composer/doc/04-schema.md +0 -924
  40. data/helpers/vendor/composer/composer/doc/05-repositories.md +0 -713
  41. data/helpers/vendor/composer/composer/doc/06-config.md +0 -277
  42. data/helpers/vendor/composer/composer/doc/07-community.md +0 -35
  43. data/helpers/vendor/composer/composer/doc/articles/aliases.md +0 -105
  44. data/helpers/vendor/composer/composer/doc/articles/autoloader-optimization.md +0 -111
  45. data/helpers/vendor/composer/composer/doc/articles/custom-installers.md +0 -204
  46. data/helpers/vendor/composer/composer/doc/articles/handling-private-packages-with-satis.md +0 -343
  47. data/helpers/vendor/composer/composer/doc/articles/http-basic-authentication.md +0 -59
  48. data/helpers/vendor/composer/composer/doc/articles/plugins.md +0 -285
  49. data/helpers/vendor/composer/composer/doc/articles/scripts.md +0 -304
  50. data/helpers/vendor/composer/composer/doc/articles/troubleshooting.md +0 -309
  51. data/helpers/vendor/composer/composer/doc/articles/vendor-binaries.md +0 -110
  52. data/helpers/vendor/composer/composer/doc/articles/versions.md +0 -230
  53. data/helpers/vendor/composer/composer/doc/dev/DefaultPolicy.md +0 -55
  54. data/helpers/vendor/composer/composer/doc/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.md +0 -50
  55. data/helpers/vendor/composer/composer/doc/faqs/how-to-install-composer-programmatically.md +0 -42
  56. data/helpers/vendor/composer/composer/doc/faqs/how-to-install-untrusted-packages-safely.md +0 -19
  57. data/helpers/vendor/composer/composer/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md +0 -32
  58. data/helpers/vendor/composer/composer/doc/faqs/which-version-numbering-system-does-composer-itself-use.md +0 -4
  59. data/helpers/vendor/composer/composer/doc/faqs/why-are-unbound-version-constraints-a-bad-idea.md +0 -21
  60. data/helpers/vendor/composer/composer/doc/faqs/why-are-version-constraints-combining-comparisons-and-wildcards-a-bad-idea.md +0 -21
  61. data/helpers/vendor/composer/composer/doc/faqs/why-can't-composer-load-repositories-recursively.md +0 -35
  62. data/helpers/vendor/composer/composer/doc/fixtures/fixtures.md +0 -22
  63. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-plain/packages.json +0 -158
  64. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/bar/baz$923363b3c22e73abb2e3fd891c8156dd4d0821a97fd3e428bc910833e3e46dbe.json +0 -50
  65. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/foo/bar$4baabb3303afa3e34a4d3af18fb138e5f3b79029c1f8d9ab5b477ea15776ba0a.json +0 -77
  66. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/gar/nix$5d210670cb46c8364c8e3fb449967b9bea558b971e5b082f330ae4f1d484c321.json +0 -50
  67. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/provider-active$1893a061e579543822389ecd12d791c612db0c05e22d90e9286e233cacd86ed8.json +0 -16
  68. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/p/qux/quux$c142d1a07ca354be46b613f59f1d601923a5a00ccc5fcce50a77ecdd461eb72d.json +0 -22
  69. data/helpers/vendor/composer/composer/doc/fixtures/repo-composer-with-providers/packages.json +0 -9
  70. data/helpers/vendor/composer/composer/phpunit.xml.dist +0 -35
  71. data/helpers/vendor/composer/composer/res/composer-repository-schema.json +0 -110
  72. data/helpers/vendor/composer/composer/res/composer-schema.json +0 -843
  73. data/helpers/vendor/composer/composer/src/Composer/Autoload/AutoloadGenerator.php +0 -1061
  74. data/helpers/vendor/composer/composer/src/Composer/Autoload/ClassLoader.php +0 -445
  75. data/helpers/vendor/composer/composer/src/Composer/Autoload/ClassMapGenerator.php +0 -222
  76. data/helpers/vendor/composer/composer/src/Composer/Cache.php +0 -251
  77. data/helpers/vendor/composer/composer/src/Composer/Command/AboutCommand.php +0 -46
  78. data/helpers/vendor/composer/composer/src/Composer/Command/ArchiveCommand.php +0 -166
  79. data/helpers/vendor/composer/composer/src/Composer/Command/BaseCommand.php +0 -181
  80. data/helpers/vendor/composer/composer/src/Composer/Command/BaseDependencyCommand.php +0 -255
  81. data/helpers/vendor/composer/composer/src/Composer/Command/CheckPlatformReqsCommand.php +0 -156
  82. data/helpers/vendor/composer/composer/src/Composer/Command/ClearCacheCommand.php +0 -74
  83. data/helpers/vendor/composer/composer/src/Composer/Command/ConfigCommand.php +0 -707
  84. data/helpers/vendor/composer/composer/src/Composer/Command/CreateProjectCommand.php +0 -385
  85. data/helpers/vendor/composer/composer/src/Composer/Command/DependsCommand.php +0 -57
  86. data/helpers/vendor/composer/composer/src/Composer/Command/DiagnoseCommand.php +0 -729
  87. data/helpers/vendor/composer/composer/src/Composer/Command/DumpAutoloadCommand.php +0 -88
  88. data/helpers/vendor/composer/composer/src/Composer/Command/ExecCommand.php +0 -97
  89. data/helpers/vendor/composer/composer/src/Composer/Command/GlobalCommand.php +0 -111
  90. data/helpers/vendor/composer/composer/src/Composer/Command/HomeCommand.php +0 -168
  91. data/helpers/vendor/composer/composer/src/Composer/Command/InitCommand.php +0 -808
  92. data/helpers/vendor/composer/composer/src/Composer/Command/InstallCommand.php +0 -124
  93. data/helpers/vendor/composer/composer/src/Composer/Command/LicensesCommand.php +0 -159
  94. data/helpers/vendor/composer/composer/src/Composer/Command/OutdatedCommand.php +0 -95
  95. data/helpers/vendor/composer/composer/src/Composer/Command/ProhibitsCommand.php +0 -57
  96. data/helpers/vendor/composer/composer/src/Composer/Command/RemoveCommand.php +0 -163
  97. data/helpers/vendor/composer/composer/src/Composer/Command/RequireCommand.php +0 -258
  98. data/helpers/vendor/composer/composer/src/Composer/Command/RunScriptCommand.php +0 -141
  99. data/helpers/vendor/composer/composer/src/Composer/Command/ScriptAliasCommand.php +0 -66
  100. data/helpers/vendor/composer/composer/src/Composer/Command/SearchCommand.php +0 -83
  101. data/helpers/vendor/composer/composer/src/Composer/Command/SelfUpdateCommand.php +0 -405
  102. data/helpers/vendor/composer/composer/src/Composer/Command/ShowCommand.php +0 -1015
  103. data/helpers/vendor/composer/composer/src/Composer/Command/StatusCommand.php +0 -214
  104. data/helpers/vendor/composer/composer/src/Composer/Command/SuggestsCommand.php +0 -152
  105. data/helpers/vendor/composer/composer/src/Composer/Command/UpdateCommand.php +0 -228
  106. data/helpers/vendor/composer/composer/src/Composer/Command/ValidateCommand.php +0 -172
  107. data/helpers/vendor/composer/composer/src/Composer/Compiler.php +0 -284
  108. data/helpers/vendor/composer/composer/src/Composer/Composer.php +0 -283
  109. data/helpers/vendor/composer/composer/src/Composer/Config.php +0 -461
  110. data/helpers/vendor/composer/composer/src/Composer/Config/ConfigSourceInterface.php +0 -91
  111. data/helpers/vendor/composer/composer/src/Composer/Config/JsonConfigSource.php +0 -267
  112. data/helpers/vendor/composer/composer/src/Composer/Console/Application.php +0 -481
  113. data/helpers/vendor/composer/composer/src/Composer/Console/HtmlOutputFormatter.php +0 -90
  114. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Decisions.php +0 -211
  115. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/DefaultPolicy.php +0 -285
  116. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/GenericRule.php +0 -91
  117. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/InstallOperation.php +0 -66
  118. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/MarkAliasInstalledOperation.php +0 -67
  119. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/MarkAliasUninstalledOperation.php +0 -67
  120. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/OperationInterface.php +0 -42
  121. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/SolverOperation.php +0 -50
  122. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/UninstallOperation.php +0 -66
  123. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Operation/UpdateOperation.php +0 -80
  124. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/PolicyInterface.php +0 -27
  125. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Pool.php +0 -378
  126. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Problem.php +0 -253
  127. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Request.php +0 -78
  128. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Rule.php +0 -268
  129. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Rule2Literals.php +0 -113
  130. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSet.php +0 -176
  131. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSetGenerator.php +0 -372
  132. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleSetIterator.php +0 -94
  133. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchChain.php +0 -52
  134. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchGraph.php +0 -144
  135. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/RuleWatchNode.php +0 -113
  136. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Solver.php +0 -874
  137. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/SolverBugException.php +0 -27
  138. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/SolverProblemsException.php +0 -88
  139. data/helpers/vendor/composer/composer/src/Composer/DependencyResolver/Transaction.php +0 -244
  140. data/helpers/vendor/composer/composer/src/Composer/Downloader/ArchiveDownloader.php +0 -135
  141. data/helpers/vendor/composer/composer/src/Composer/Downloader/ChangeReportInterface.php +0 -32
  142. data/helpers/vendor/composer/composer/src/Composer/Downloader/DownloadManager.php +0 -325
  143. data/helpers/vendor/composer/composer/src/Composer/Downloader/DownloaderInterface.php +0 -64
  144. data/helpers/vendor/composer/composer/src/Composer/Downloader/DvcsDownloaderInterface.php +0 -32
  145. data/helpers/vendor/composer/composer/src/Composer/Downloader/FileDownloader.php +0 -322
  146. data/helpers/vendor/composer/composer/src/Composer/Downloader/FilesystemException.php +0 -26
  147. data/helpers/vendor/composer/composer/src/Composer/Downloader/FossilDownloader.php +0 -116
  148. data/helpers/vendor/composer/composer/src/Composer/Downloader/GitDownloader.php +0 -516
  149. data/helpers/vendor/composer/composer/src/Composer/Downloader/GzipDownloader.php +0 -84
  150. data/helpers/vendor/composer/composer/src/Composer/Downloader/HgDownloader.php +0 -100
  151. data/helpers/vendor/composer/composer/src/Composer/Downloader/PathDownloader.php +0 -202
  152. data/helpers/vendor/composer/composer/src/Composer/Downloader/PearPackageExtractor.php +0 -266
  153. data/helpers/vendor/composer/composer/src/Composer/Downloader/PerforceDownloader.php +0 -114
  154. data/helpers/vendor/composer/composer/src/Composer/Downloader/PharDownloader.php +0 -36
  155. data/helpers/vendor/composer/composer/src/Composer/Downloader/RarDownloader.php +0 -91
  156. data/helpers/vendor/composer/composer/src/Composer/Downloader/SvnDownloader.php +0 -225
  157. data/helpers/vendor/composer/composer/src/Composer/Downloader/TarDownloader.php +0 -31
  158. data/helpers/vendor/composer/composer/src/Composer/Downloader/TransportException.php +0 -53
  159. data/helpers/vendor/composer/composer/src/Composer/Downloader/VcsCapableDownloaderInterface.php +0 -32
  160. data/helpers/vendor/composer/composer/src/Composer/Downloader/VcsDownloader.php +0 -293
  161. data/helpers/vendor/composer/composer/src/Composer/Downloader/XzDownloader.php +0 -60
  162. data/helpers/vendor/composer/composer/src/Composer/Downloader/ZipDownloader.php +0 -230
  163. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/Event.php +0 -103
  164. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php +0 -536
  165. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/EventSubscriberInterface.php +0 -48
  166. data/helpers/vendor/composer/composer/src/Composer/EventDispatcher/ScriptExecutionException.php +0 -20
  167. data/helpers/vendor/composer/composer/src/Composer/Exception/NoSslException.php +0 -20
  168. data/helpers/vendor/composer/composer/src/Composer/Factory.php +0 -653
  169. data/helpers/vendor/composer/composer/src/Composer/IO/BaseIO.php +0 -255
  170. data/helpers/vendor/composer/composer/src/Composer/IO/BufferIO.php +0 -59
  171. data/helpers/vendor/composer/composer/src/Composer/IO/ConsoleIO.php +0 -322
  172. data/helpers/vendor/composer/composer/src/Composer/IO/IOInterface.php +0 -207
  173. data/helpers/vendor/composer/composer/src/Composer/IO/NullIO.php +0 -129
  174. data/helpers/vendor/composer/composer/src/Composer/Installer.php +0 -1798
  175. data/helpers/vendor/composer/composer/src/Composer/Installer/BinaryInstaller.php +0 -214
  176. data/helpers/vendor/composer/composer/src/Composer/Installer/BinaryPresenceInterface.php +0 -30
  177. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallationManager.php +0 -326
  178. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerEvent.php +0 -161
  179. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerEvents.php +0 -43
  180. data/helpers/vendor/composer/composer/src/Composer/Installer/InstallerInterface.php +0 -79
  181. data/helpers/vendor/composer/composer/src/Composer/Installer/LibraryInstaller.php +0 -232
  182. data/helpers/vendor/composer/composer/src/Composer/Installer/MetapackageInstaller.php +0 -100
  183. data/helpers/vendor/composer/composer/src/Composer/Installer/NoopInstaller.php +0 -88
  184. data/helpers/vendor/composer/composer/src/Composer/Installer/PackageEvent.php +0 -65
  185. data/helpers/vendor/composer/composer/src/Composer/Installer/PackageEvents.php +0 -75
  186. data/helpers/vendor/composer/composer/src/Composer/Installer/PearBinaryInstaller.php +0 -144
  187. data/helpers/vendor/composer/composer/src/Composer/Installer/PearInstaller.php +0 -84
  188. data/helpers/vendor/composer/composer/src/Composer/Installer/PluginInstaller.php +0 -84
  189. data/helpers/vendor/composer/composer/src/Composer/Installer/ProjectInstaller.php +0 -99
  190. data/helpers/vendor/composer/composer/src/Composer/Installer/SuggestedPackagesReporter.php +0 -151
  191. data/helpers/vendor/composer/composer/src/Composer/Json/JsonFile.php +0 -301
  192. data/helpers/vendor/composer/composer/src/Composer/Json/JsonFormatter.php +0 -134
  193. data/helpers/vendor/composer/composer/src/Composer/Json/JsonManipulator.php +0 -521
  194. data/helpers/vendor/composer/composer/src/Composer/Json/JsonValidationException.php +0 -34
  195. data/helpers/vendor/composer/composer/src/Composer/Package/AliasPackage.php +0 -404
  196. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchivableFilesFilter.php +0 -44
  197. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchivableFilesFinder.php +0 -105
  198. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchiveManager.php +0 -183
  199. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ArchiverInterface.php +0 -43
  200. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/BaseExcludeFilter.php +0 -148
  201. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ComposerExcludeFilter.php +0 -31
  202. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/GitExcludeFilter.php +0 -79
  203. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/HgExcludeFilter.php +0 -107
  204. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/PharArchiver.php +0 -97
  205. data/helpers/vendor/composer/composer/src/Composer/Package/Archiver/ZipArchiver.php +0 -74
  206. data/helpers/vendor/composer/composer/src/Composer/Package/BasePackage.php +0 -251
  207. data/helpers/vendor/composer/composer/src/Composer/Package/Comparer/Comparer.php +0 -129
  208. data/helpers/vendor/composer/composer/src/Composer/Package/CompletePackage.php +0 -199
  209. data/helpers/vendor/composer/composer/src/Composer/Package/CompletePackageInterface.php +0 -95
  210. data/helpers/vendor/composer/composer/src/Composer/Package/Dumper/ArrayDumper.php +0 -151
  211. data/helpers/vendor/composer/composer/src/Composer/Package/Link.php +0 -128
  212. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/EmptyConstraint.php +0 -24
  213. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/LinkConstraintInterface.php +0 -24
  214. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/MultiConstraint.php +0 -24
  215. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/SpecificConstraint.php +0 -24
  216. data/helpers/vendor/composer/composer/src/Composer/Package/LinkConstraint/VersionConstraint.php +0 -24
  217. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/ArrayLoader.php +0 -290
  218. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/InvalidPackageException.php +0 -46
  219. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/JsonLoader.php +0 -45
  220. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/LoaderInterface.php +0 -30
  221. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/RootPackageLoader.php +0 -264
  222. data/helpers/vendor/composer/composer/src/Composer/Package/Loader/ValidatingArrayLoader.php +0 -493
  223. data/helpers/vendor/composer/composer/src/Composer/Package/Locker.php +0 -438
  224. data/helpers/vendor/composer/composer/src/Composer/Package/Package.php +0 -612
  225. data/helpers/vendor/composer/composer/src/Composer/Package/PackageInterface.php +0 -361
  226. data/helpers/vendor/composer/composer/src/Composer/Package/RootAliasPackage.php +0 -173
  227. data/helpers/vendor/composer/composer/src/Composer/Package/RootPackage.php +0 -136
  228. data/helpers/vendor/composer/composer/src/Composer/Package/RootPackageInterface.php +0 -142
  229. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionGuesser.php +0 -302
  230. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionParser.php +0 -81
  231. data/helpers/vendor/composer/composer/src/Composer/Package/Version/VersionSelector.php +0 -176
  232. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capability/Capability.php +0 -23
  233. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capability/CommandProvider.php +0 -33
  234. data/helpers/vendor/composer/composer/src/Composer/Plugin/Capable.php +0 -43
  235. data/helpers/vendor/composer/composer/src/Composer/Plugin/CommandEvent.php +0 -88
  236. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginEvents.php +0 -61
  237. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginInterface.php +0 -39
  238. data/helpers/vendor/composer/composer/src/Composer/Plugin/PluginManager.php +0 -403
  239. data/helpers/vendor/composer/composer/src/Composer/Plugin/PreCommandRunEvent.php +0 -68
  240. data/helpers/vendor/composer/composer/src/Composer/Plugin/PreFileDownloadEvent.php +0 -78
  241. data/helpers/vendor/composer/composer/src/Composer/Question/StrictConfirmationQuestion.php +0 -94
  242. data/helpers/vendor/composer/composer/src/Composer/Repository/ArrayRepository.php +0 -208
  243. data/helpers/vendor/composer/composer/src/Composer/Repository/ArtifactRepository.php +0 -167
  244. data/helpers/vendor/composer/composer/src/Composer/Repository/BaseRepository.php +0 -157
  245. data/helpers/vendor/composer/composer/src/Composer/Repository/ComposerRepository.php +0 -829
  246. data/helpers/vendor/composer/composer/src/Composer/Repository/CompositeRepository.php +0 -164
  247. data/helpers/vendor/composer/composer/src/Composer/Repository/ConfigurableRepositoryInterface.php +0 -23
  248. data/helpers/vendor/composer/composer/src/Composer/Repository/FilesystemRepository.php +0 -97
  249. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledArrayRepository.php +0 -24
  250. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledFilesystemRepository.php +0 -22
  251. data/helpers/vendor/composer/composer/src/Composer/Repository/InstalledRepositoryInterface.php +0 -24
  252. data/helpers/vendor/composer/composer/src/Composer/Repository/InvalidRepositoryException.php +0 -22
  253. data/helpers/vendor/composer/composer/src/Composer/Repository/PackageRepository.php +0 -61
  254. data/helpers/vendor/composer/composer/src/Composer/Repository/PathRepository.php +0 -190
  255. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/BaseChannelReader.php +0 -82
  256. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelInfo.php +0 -67
  257. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelReader.php +0 -101
  258. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelRest10Reader.php +0 -164
  259. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ChannelRest11Reader.php +0 -139
  260. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/DependencyConstraint.php +0 -60
  261. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/DependencyInfo.php +0 -50
  262. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/PackageDependencyParser.php +0 -317
  263. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/PackageInfo.php +0 -94
  264. data/helpers/vendor/composer/composer/src/Composer/Repository/Pear/ReleaseInfo.php +0 -50
  265. data/helpers/vendor/composer/composer/src/Composer/Repository/PearRepository.php +0 -198
  266. data/helpers/vendor/composer/composer/src/Composer/Repository/PlatformRepository.php +0 -342
  267. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryFactory.php +0 -169
  268. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryInterface.php +0 -74
  269. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositoryManager.php +0 -177
  270. data/helpers/vendor/composer/composer/src/Composer/Repository/RepositorySecurityException.php +0 -22
  271. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/BitbucketDriver.php +0 -445
  272. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/FossilDriver.php +0 -238
  273. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitBitbucketDriver.php +0 -91
  274. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitDriver.php +0 -222
  275. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitHubDriver.php +0 -472
  276. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/GitLabDriver.php +0 -511
  277. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/HgBitbucketDriver.php +0 -91
  278. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/HgDriver.php +0 -230
  279. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/PerforceDriver.php +0 -181
  280. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/SvnDriver.php +0 -397
  281. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/VcsDriver.php +0 -175
  282. data/helpers/vendor/composer/composer/src/Composer/Repository/Vcs/VcsDriverInterface.php +0 -117
  283. data/helpers/vendor/composer/composer/src/Composer/Repository/VcsRepository.php +0 -407
  284. data/helpers/vendor/composer/composer/src/Composer/Repository/VersionCacheInterface.php +0 -23
  285. data/helpers/vendor/composer/composer/src/Composer/Repository/WritableArrayRepository.php +0 -66
  286. data/helpers/vendor/composer/composer/src/Composer/Repository/WritableRepositoryInterface.php +0 -54
  287. data/helpers/vendor/composer/composer/src/Composer/Script/CommandEvent.php +0 -22
  288. data/helpers/vendor/composer/composer/src/Composer/Script/Event.php +0 -89
  289. data/helpers/vendor/composer/composer/src/Composer/Script/PackageEvent.php +0 -24
  290. data/helpers/vendor/composer/composer/src/Composer/Script/ScriptEvents.php +0 -193
  291. data/helpers/vendor/composer/composer/src/Composer/SelfUpdate/Keys.php +0 -36
  292. data/helpers/vendor/composer/composer/src/Composer/SelfUpdate/Versions.php +0 -75
  293. data/helpers/vendor/composer/composer/src/Composer/Util/AuthHelper.php +0 -63
  294. data/helpers/vendor/composer/composer/src/Composer/Util/Bitbucket.php +0 -245
  295. data/helpers/vendor/composer/composer/src/Composer/Util/ComposerMirror.php +0 -57
  296. data/helpers/vendor/composer/composer/src/Composer/Util/ConfigValidator.php +0 -191
  297. data/helpers/vendor/composer/composer/src/Composer/Util/ErrorHandler.php +0 -79
  298. data/helpers/vendor/composer/composer/src/Composer/Util/Filesystem.php +0 -715
  299. data/helpers/vendor/composer/composer/src/Composer/Util/Git.php +0 -374
  300. data/helpers/vendor/composer/composer/src/Composer/Util/GitHub.php +0 -180
  301. data/helpers/vendor/composer/composer/src/Composer/Util/GitLab.php +0 -163
  302. data/helpers/vendor/composer/composer/src/Composer/Util/Hg.php +0 -94
  303. data/helpers/vendor/composer/composer/src/Composer/Util/IniHelper.php +0 -64
  304. data/helpers/vendor/composer/composer/src/Composer/Util/NoProxyPattern.php +0 -147
  305. data/helpers/vendor/composer/composer/src/Composer/Util/Perforce.php +0 -581
  306. data/helpers/vendor/composer/composer/src/Composer/Util/Platform.php +0 -92
  307. data/helpers/vendor/composer/composer/src/Composer/Util/ProcessExecutor.php +0 -192
  308. data/helpers/vendor/composer/composer/src/Composer/Util/RemoteFilesystem.php +0 -1109
  309. data/helpers/vendor/composer/composer/src/Composer/Util/Silencer.php +0 -78
  310. data/helpers/vendor/composer/composer/src/Composer/Util/SpdxLicense.php +0 -24
  311. data/helpers/vendor/composer/composer/src/Composer/Util/StreamContextFactory.php +0 -177
  312. data/helpers/vendor/composer/composer/src/Composer/Util/Svn.php +0 -381
  313. data/helpers/vendor/composer/composer/src/Composer/Util/TlsHelper.php +0 -204
  314. data/helpers/vendor/composer/composer/src/Composer/Util/Url.php +0 -55
  315. data/helpers/vendor/composer/composer/src/Composer/XdebugHandler.php +0 -31
  316. data/helpers/vendor/composer/composer/src/bootstrap.php +0 -24
  317. data/helpers/vendor/composer/installed.json +0 -947
  318. data/helpers/vendor/composer/semver/CHANGELOG.md +0 -72
  319. data/helpers/vendor/composer/semver/LICENSE +0 -19
  320. data/helpers/vendor/composer/semver/README.md +0 -70
  321. data/helpers/vendor/composer/semver/composer.json +0 -58
  322. data/helpers/vendor/composer/semver/src/Comparator.php +0 -111
  323. data/helpers/vendor/composer/semver/src/Constraint/AbstractConstraint.php +0 -63
  324. data/helpers/vendor/composer/semver/src/Constraint/Constraint.php +0 -219
  325. data/helpers/vendor/composer/semver/src/Constraint/ConstraintInterface.php +0 -32
  326. data/helpers/vendor/composer/semver/src/Constraint/EmptyConstraint.php +0 -59
  327. data/helpers/vendor/composer/semver/src/Constraint/MultiConstraint.php +0 -120
  328. data/helpers/vendor/composer/semver/src/Semver.php +0 -127
  329. data/helpers/vendor/composer/semver/src/VersionParser.php +0 -540
  330. data/helpers/vendor/composer/spdx-licenses/.php_cs.dist +0 -59
  331. data/helpers/vendor/composer/spdx-licenses/CHANGELOG.md +0 -89
  332. data/helpers/vendor/composer/spdx-licenses/LICENSE +0 -19
  333. data/helpers/vendor/composer/spdx-licenses/README.md +0 -69
  334. data/helpers/vendor/composer/spdx-licenses/composer.json +0 -56
  335. data/helpers/vendor/composer/spdx-licenses/res/spdx-exceptions.json +0 -101
  336. data/helpers/vendor/composer/spdx-licenses/res/spdx-licenses.json +0 -1932
  337. data/helpers/vendor/composer/spdx-licenses/src/SpdxLicenses.php +0 -343
  338. data/helpers/vendor/composer/xdebug-handler/CHANGELOG.md +0 -55
  339. data/helpers/vendor/composer/xdebug-handler/LICENSE +0 -21
  340. data/helpers/vendor/composer/xdebug-handler/README.md +0 -288
  341. data/helpers/vendor/composer/xdebug-handler/composer.json +0 -40
  342. data/helpers/vendor/composer/xdebug-handler/src/PhpConfig.php +0 -73
  343. data/helpers/vendor/composer/xdebug-handler/src/Process.php +0 -160
  344. data/helpers/vendor/composer/xdebug-handler/src/Status.php +0 -163
  345. data/helpers/vendor/composer/xdebug-handler/src/XdebugHandler.php +0 -565
  346. data/helpers/vendor/justinrainbow/json-schema/.gitattributes +0 -5
  347. data/helpers/vendor/justinrainbow/json-schema/.php_cs.dist +0 -30
  348. data/helpers/vendor/justinrainbow/json-schema/LICENSE +0 -21
  349. data/helpers/vendor/justinrainbow/json-schema/README.md +0 -206
  350. data/helpers/vendor/justinrainbow/json-schema/bin/validate-json +0 -251
  351. data/helpers/vendor/justinrainbow/json-schema/composer.json +0 -76
  352. data/helpers/vendor/justinrainbow/json-schema/demo/README.md +0 -14
  353. data/helpers/vendor/justinrainbow/json-schema/demo/data.json +0 -3
  354. data/helpers/vendor/justinrainbow/json-schema/demo/demo.php +0 -18
  355. data/helpers/vendor/justinrainbow/json-schema/demo/schema.json +0 -3
  356. data/helpers/vendor/justinrainbow/json-schema/dist/schema/json-schema-draft-03.json +0 -174
  357. data/helpers/vendor/justinrainbow/json-schema/dist/schema/json-schema-draft-04.json +0 -150
  358. data/helpers/vendor/justinrainbow/json-schema/phpunit.xml.dist +0 -26
  359. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/BaseConstraint.php +0 -148
  360. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/CollectionConstraint.php +0 -121
  361. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Constraint.php +0 -213
  362. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/ConstraintInterface.php +0 -65
  363. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php +0 -54
  364. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Factory.php +0 -220
  365. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/FormatConstraint.php +0 -214
  366. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/NumberConstraint.php +0 -81
  367. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/ObjectConstraint.php +0 -192
  368. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/SchemaConstraint.php +0 -94
  369. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/StringConstraint.php +0 -60
  370. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/LooseTypeCheck.php +0 -68
  371. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/StrictTypeCheck.php +0 -40
  372. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeCheck/TypeCheckInterface.php +0 -18
  373. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/TypeConstraint.php +0 -261
  374. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/UndefinedConstraint.php +0 -413
  375. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Entity/JsonPointer.php +0 -161
  376. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ExceptionInterface.php +0 -7
  377. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidArgumentException.php +0 -17
  378. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidConfigException.php +0 -17
  379. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSchemaException.php +0 -17
  380. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSchemaMediaTypeException.php +0 -17
  381. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/InvalidSourceUriException.php +0 -17
  382. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/JsonDecodingException.php +0 -40
  383. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ResourceNotFoundException.php +0 -17
  384. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/RuntimeException.php +0 -17
  385. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/UnresolvableJsonPointerException.php +0 -19
  386. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/UriResolverException.php +0 -17
  387. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Exception/ValidationException.php +0 -14
  388. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Iterator/ObjectIterator.php +0 -149
  389. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Rfc3339.php +0 -30
  390. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/SchemaStorage.php +0 -169
  391. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/SchemaStorageInterface.php +0 -41
  392. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/AbstractRetriever.php +0 -34
  393. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/Curl.php +0 -83
  394. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/FileGetContents.php +0 -93
  395. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/PredefinedArray.php +0 -56
  396. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/Retrievers/UriRetrieverInterface.php +0 -36
  397. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/UriResolver.php +0 -175
  398. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Uri/UriRetriever.php +0 -349
  399. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/UriResolverInterface.php +0 -26
  400. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/UriRetrieverInterface.php +0 -26
  401. data/helpers/vendor/justinrainbow/json-schema/src/JsonSchema/Validator.php +0 -90
  402. data/helpers/vendor/psr/log/.gitignore +0 -1
  403. data/helpers/vendor/psr/log/LICENSE +0 -19
  404. data/helpers/vendor/psr/log/Psr/Log/AbstractLogger.php +0 -128
  405. data/helpers/vendor/psr/log/Psr/Log/InvalidArgumentException.php +0 -7
  406. data/helpers/vendor/psr/log/Psr/Log/LogLevel.php +0 -18
  407. data/helpers/vendor/psr/log/Psr/Log/LoggerAwareInterface.php +0 -18
  408. data/helpers/vendor/psr/log/Psr/Log/LoggerAwareTrait.php +0 -26
  409. data/helpers/vendor/psr/log/Psr/Log/LoggerInterface.php +0 -123
  410. data/helpers/vendor/psr/log/Psr/Log/LoggerTrait.php +0 -140
  411. data/helpers/vendor/psr/log/Psr/Log/NullLogger.php +0 -28
  412. data/helpers/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php +0 -144
  413. data/helpers/vendor/psr/log/Psr/Log/Test/TestLogger.php +0 -146
  414. data/helpers/vendor/psr/log/README.md +0 -52
  415. data/helpers/vendor/psr/log/composer.json +0 -26
  416. data/helpers/vendor/seld/jsonlint/.gitignore +0 -3
  417. data/helpers/vendor/seld/jsonlint/.travis.yml +0 -25
  418. data/helpers/vendor/seld/jsonlint/CHANGELOG.md +0 -66
  419. data/helpers/vendor/seld/jsonlint/LICENSE +0 -19
  420. data/helpers/vendor/seld/jsonlint/README.md +0 -89
  421. data/helpers/vendor/seld/jsonlint/bin/jsonlint +0 -117
  422. data/helpers/vendor/seld/jsonlint/composer.json +0 -24
  423. data/helpers/vendor/seld/jsonlint/phpunit.xml.dist +0 -25
  424. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/DuplicateKeyException.php +0 -26
  425. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/JsonParser.php +0 -502
  426. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/Lexer.php +0 -217
  427. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/ParsingException.php +0 -28
  428. data/helpers/vendor/seld/jsonlint/src/Seld/JsonLint/Undefined.php +0 -16
  429. data/helpers/vendor/seld/jsonlint/tests/JsonParserTest.php +0 -230
  430. data/helpers/vendor/seld/jsonlint/tests/bom.json +0 -6
  431. data/helpers/vendor/seld/jsonlint/tests/bootstrap.php +0 -13
  432. data/helpers/vendor/seld/phar-utils/.gitignore +0 -1
  433. data/helpers/vendor/seld/phar-utils/LICENSE +0 -19
  434. data/helpers/vendor/seld/phar-utils/README.md +0 -39
  435. data/helpers/vendor/seld/phar-utils/composer.json +0 -26
  436. data/helpers/vendor/seld/phar-utils/composer.lock +0 -19
  437. data/helpers/vendor/seld/phar-utils/src/Timestamps.php +0 -192
  438. data/helpers/vendor/symfony/console/.gitignore +0 -3
  439. data/helpers/vendor/symfony/console/Application.php +0 -1181
  440. data/helpers/vendor/symfony/console/CHANGELOG.md +0 -140
  441. data/helpers/vendor/symfony/console/Command/Command.php +0 -654
  442. data/helpers/vendor/symfony/console/Command/HelpCommand.php +0 -81
  443. data/helpers/vendor/symfony/console/Command/ListCommand.php +0 -90
  444. data/helpers/vendor/symfony/console/Command/LockableTrait.php +0 -71
  445. data/helpers/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php +0 -37
  446. data/helpers/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php +0 -55
  447. data/helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php +0 -62
  448. data/helpers/vendor/symfony/console/ConsoleEvents.php +0 -47
  449. data/helpers/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +0 -98
  450. data/helpers/vendor/symfony/console/Descriptor/ApplicationDescription.php +0 -144
  451. data/helpers/vendor/symfony/console/Descriptor/Descriptor.php +0 -107
  452. data/helpers/vendor/symfony/console/Descriptor/DescriptorInterface.php +0 -31
  453. data/helpers/vendor/symfony/console/Descriptor/JsonDescriptor.php +0 -168
  454. data/helpers/vendor/symfony/console/Descriptor/MarkdownDescriptor.php +0 -182
  455. data/helpers/vendor/symfony/console/Descriptor/TextDescriptor.php +0 -342
  456. data/helpers/vendor/symfony/console/Descriptor/XmlDescriptor.php +0 -245
  457. data/helpers/vendor/symfony/console/Event/ConsoleCommandEvent.php +0 -60
  458. data/helpers/vendor/symfony/console/Event/ConsoleErrorEvent.php +0 -58
  459. data/helpers/vendor/symfony/console/Event/ConsoleEvent.php +0 -67
  460. data/helpers/vendor/symfony/console/Event/ConsoleTerminateEvent.php +0 -53
  461. data/helpers/vendor/symfony/console/EventListener/ErrorListener.php +0 -91
  462. data/helpers/vendor/symfony/console/Exception/CommandNotFoundException.php +0 -43
  463. data/helpers/vendor/symfony/console/Exception/ExceptionInterface.php +0 -21
  464. data/helpers/vendor/symfony/console/Exception/InvalidArgumentException.php +0 -19
  465. data/helpers/vendor/symfony/console/Exception/InvalidOptionException.php +0 -21
  466. data/helpers/vendor/symfony/console/Exception/LogicException.php +0 -19
  467. data/helpers/vendor/symfony/console/Exception/NamespaceNotFoundException.php +0 -21
  468. data/helpers/vendor/symfony/console/Exception/RuntimeException.php +0 -19
  469. data/helpers/vendor/symfony/console/Formatter/OutputFormatter.php +0 -282
  470. data/helpers/vendor/symfony/console/Formatter/OutputFormatterInterface.php +0 -71
  471. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyle.php +0 -203
  472. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +0 -62
  473. data/helpers/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +0 -110
  474. data/helpers/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php +0 -25
  475. data/helpers/vendor/symfony/console/Helper/DebugFormatterHelper.php +0 -127
  476. data/helpers/vendor/symfony/console/Helper/DescriptorHelper.php +0 -94
  477. data/helpers/vendor/symfony/console/Helper/FormatterHelper.php +0 -106
  478. data/helpers/vendor/symfony/console/Helper/Helper.php +0 -138
  479. data/helpers/vendor/symfony/console/Helper/HelperInterface.php +0 -39
  480. data/helpers/vendor/symfony/console/Helper/HelperSet.php +0 -108
  481. data/helpers/vendor/symfony/console/Helper/InputAwareHelper.php +0 -33
  482. data/helpers/vendor/symfony/console/Helper/ProcessHelper.php +0 -156
  483. data/helpers/vendor/symfony/console/Helper/ProgressBar.php +0 -527
  484. data/helpers/vendor/symfony/console/Helper/ProgressIndicator.php +0 -269
  485. data/helpers/vendor/symfony/console/Helper/QuestionHelper.php +0 -447
  486. data/helpers/vendor/symfony/console/Helper/SymfonyQuestionHelper.php +0 -96
  487. data/helpers/vendor/symfony/console/Helper/Table.php +0 -813
  488. data/helpers/vendor/symfony/console/Helper/TableCell.php +0 -68
  489. data/helpers/vendor/symfony/console/Helper/TableRows.php +0 -32
  490. data/helpers/vendor/symfony/console/Helper/TableSeparator.php +0 -25
  491. data/helpers/vendor/symfony/console/Helper/TableStyle.php +0 -458
  492. data/helpers/vendor/symfony/console/Input/ArgvInput.php +0 -365
  493. data/helpers/vendor/symfony/console/Input/ArrayInput.php +0 -206
  494. data/helpers/vendor/symfony/console/Input/Input.php +0 -203
  495. data/helpers/vendor/symfony/console/Input/InputArgument.php +0 -129
  496. data/helpers/vendor/symfony/console/Input/InputAwareInterface.php +0 -26
  497. data/helpers/vendor/symfony/console/Input/InputDefinition.php +0 -404
  498. data/helpers/vendor/symfony/console/Input/InputInterface.php +0 -163
  499. data/helpers/vendor/symfony/console/Input/InputOption.php +0 -208
  500. data/helpers/vendor/symfony/console/Input/StreamableInputInterface.php +0 -37
  501. data/helpers/vendor/symfony/console/Input/StringInput.php +0 -72
  502. data/helpers/vendor/symfony/console/LICENSE +0 -19
  503. data/helpers/vendor/symfony/console/Logger/ConsoleLogger.php +0 -124
  504. data/helpers/vendor/symfony/console/Output/BufferedOutput.php +0 -45
  505. data/helpers/vendor/symfony/console/Output/ConsoleOutput.php +0 -161
  506. data/helpers/vendor/symfony/console/Output/ConsoleOutputInterface.php +0 -32
  507. data/helpers/vendor/symfony/console/Output/ConsoleSectionOutput.php +0 -141
  508. data/helpers/vendor/symfony/console/Output/NullOutput.php +0 -123
  509. data/helpers/vendor/symfony/console/Output/Output.php +0 -177
  510. data/helpers/vendor/symfony/console/Output/OutputInterface.php +0 -114
  511. data/helpers/vendor/symfony/console/Output/StreamOutput.php +0 -124
  512. data/helpers/vendor/symfony/console/Question/ChoiceQuestion.php +0 -184
  513. data/helpers/vendor/symfony/console/Question/ConfirmationQuestion.php +0 -59
  514. data/helpers/vendor/symfony/console/Question/Question.php +0 -246
  515. data/helpers/vendor/symfony/console/README.md +0 -20
  516. data/helpers/vendor/symfony/console/Resources/bin/hiddeninput.exe +0 -0
  517. data/helpers/vendor/symfony/console/Style/OutputStyle.php +0 -155
  518. data/helpers/vendor/symfony/console/Style/StyleInterface.php +0 -154
  519. data/helpers/vendor/symfony/console/Style/SymfonyStyle.php +0 -438
  520. data/helpers/vendor/symfony/console/Terminal.php +0 -137
  521. data/helpers/vendor/symfony/console/Tester/ApplicationTester.php +0 -77
  522. data/helpers/vendor/symfony/console/Tester/CommandTester.php +0 -78
  523. data/helpers/vendor/symfony/console/Tester/TesterTrait.php +0 -177
  524. data/helpers/vendor/symfony/console/Tests/ApplicationTest.php +0 -1814
  525. data/helpers/vendor/symfony/console/Tests/Command/CommandTest.php +0 -436
  526. data/helpers/vendor/symfony/console/Tests/Command/HelpCommandTest.php +0 -71
  527. data/helpers/vendor/symfony/console/Tests/Command/ListCommandTest.php +0 -113
  528. data/helpers/vendor/symfony/console/Tests/Command/LockableTraitTest.php +0 -67
  529. data/helpers/vendor/symfony/console/Tests/CommandLoader/ContainerCommandLoaderTest.php +0 -61
  530. data/helpers/vendor/symfony/console/Tests/CommandLoader/FactoryCommandLoaderTest.php +0 -60
  531. data/helpers/vendor/symfony/console/Tests/DependencyInjection/AddConsoleCommandPassTest.php +0 -258
  532. data/helpers/vendor/symfony/console/Tests/Descriptor/AbstractDescriptorTest.php +0 -107
  533. data/helpers/vendor/symfony/console/Tests/Descriptor/JsonDescriptorTest.php +0 -35
  534. data/helpers/vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php +0 -45
  535. data/helpers/vendor/symfony/console/Tests/Descriptor/ObjectsProvider.php +0 -82
  536. data/helpers/vendor/symfony/console/Tests/Descriptor/TextDescriptorTest.php +0 -53
  537. data/helpers/vendor/symfony/console/Tests/Descriptor/XmlDescriptorTest.php +0 -27
  538. data/helpers/vendor/symfony/console/Tests/EventListener/ErrorListenerTest.php +0 -156
  539. data/helpers/vendor/symfony/console/Tests/Fixtures/BarBucCommand.php +0 -11
  540. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplication1.php +0 -18
  541. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplication2.php +0 -26
  542. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorApplicationMbString.php +0 -24
  543. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand1.php +0 -27
  544. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand2.php +0 -32
  545. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand3.php +0 -27
  546. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommand4.php +0 -25
  547. data/helpers/vendor/symfony/console/Tests/Fixtures/DescriptorCommandMbString.php +0 -32
  548. data/helpers/vendor/symfony/console/Tests/Fixtures/DummyOutput.php +0 -36
  549. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo1Command.php +0 -26
  550. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo2Command.php +0 -21
  551. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo3Command.php +0 -29
  552. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo4Command.php +0 -11
  553. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo5Command.php +0 -10
  554. data/helpers/vendor/symfony/console/Tests/Fixtures/Foo6Command.php +0 -11
  555. data/helpers/vendor/symfony/console/Tests/Fixtures/FooCommand.php +0 -33
  556. data/helpers/vendor/symfony/console/Tests/Fixtures/FooLock2Command.php +0 -28
  557. data/helpers/vendor/symfony/console/Tests/Fixtures/FooLockCommand.php +0 -27
  558. data/helpers/vendor/symfony/console/Tests/Fixtures/FooOptCommand.php +0 -36
  559. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSameCaseLowercaseCommand.php +0 -11
  560. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSameCaseUppercaseCommand.php +0 -11
  561. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced1Command.php +0 -26
  562. data/helpers/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced2Command.php +0 -26
  563. data/helpers/vendor/symfony/console/Tests/Fixtures/FooWithoutAliasCommand.php +0 -21
  564. data/helpers/vendor/symfony/console/Tests/Fixtures/FoobarCommand.php +0 -25
  565. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_0.php +0 -11
  566. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_1.php +0 -13
  567. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_10.php +0 -17
  568. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_11.php +0 -12
  569. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_12.php +0 -13
  570. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_13.php +0 -14
  571. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_14.php +0 -17
  572. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_15.php +0 -14
  573. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_16.php +0 -15
  574. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_17.php +0 -13
  575. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_2.php +0 -16
  576. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_3.php +0 -12
  577. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4.php +0 -34
  578. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_4_with_iterators.php +0 -34
  579. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_5.php +0 -37
  580. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_6.php +0 -16
  581. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_7.php +0 -15
  582. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_8.php +0 -26
  583. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/command_9.php +0 -11
  584. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/command/interactive_command_1.php +0 -19
  585. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/interactive_output_1.txt +0 -7
  586. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_0.txt +0 -3
  587. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_1.txt +0 -9
  588. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_10.txt +0 -7
  589. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_11.txt +0 -4
  590. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_12.txt +0 -6
  591. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_13.txt +0 -7
  592. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_14.txt +0 -6
  593. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_15.txt +0 -7
  594. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_16.txt +0 -8
  595. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_17.txt +0 -7
  596. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_2.txt +0 -13
  597. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_3.txt +0 -7
  598. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4.txt +0 -32
  599. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_4_with_iterators.txt +0 -32
  600. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_5.txt +0 -18
  601. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_6.txt +0 -6
  602. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_7.txt +0 -5
  603. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_8.txt +0 -9
  604. data/helpers/vendor/symfony/console/Tests/Fixtures/Style/SymfonyStyle/output/output_9.txt +0 -5
  605. data/helpers/vendor/symfony/console/Tests/Fixtures/TestCommand.php +0 -28
  606. data/helpers/vendor/symfony/console/Tests/Fixtures/TestTiti.php +0 -21
  607. data/helpers/vendor/symfony/console/Tests/Fixtures/TestToto.php +0 -22
  608. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.json +0 -156
  609. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.md +0 -172
  610. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.txt +0 -17
  611. data/helpers/vendor/symfony/console/Tests/Fixtures/application_1.xml +0 -104
  612. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.json +0 -509
  613. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.md +0 -431
  614. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.txt +0 -21
  615. data/helpers/vendor/symfony/console/Tests/Fixtures/application_2.xml +0 -254
  616. data/helpers/vendor/symfony/console/Tests/Fixtures/application_filtered_namespace.txt +0 -16
  617. data/helpers/vendor/symfony/console/Tests/Fixtures/application_gethelp.txt +0 -1
  618. data/helpers/vendor/symfony/console/Tests/Fixtures/application_mbstring.md +0 -269
  619. data/helpers/vendor/symfony/console/Tests/Fixtures/application_mbstring.txt +0 -19
  620. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception1.txt +0 -5
  621. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception2.txt +0 -7
  622. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception3.txt +0 -18
  623. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception3decorated.txt +0 -18
  624. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception4.txt +0 -6
  625. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1.txt +0 -8
  626. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth1decorated.txt +0 -8
  627. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_doublewidth2.txt +0 -9
  628. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_escapeslines.txt +0 -9
  629. data/helpers/vendor/symfony/console/Tests/Fixtures/application_renderexception_linebreaks.txt +0 -11
  630. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run1.txt +0 -17
  631. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run2.txt +0 -29
  632. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run3.txt +0 -29
  633. data/helpers/vendor/symfony/console/Tests/Fixtures/application_run4.txt +0 -1
  634. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.json +0 -15
  635. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.md +0 -12
  636. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.txt +0 -10
  637. data/helpers/vendor/symfony/console/Tests/Fixtures/command_1.xml +0 -12
  638. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.json +0 -33
  639. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.md +0 -29
  640. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.txt +0 -16
  641. data/helpers/vendor/symfony/console/Tests/Fixtures/command_2.xml +0 -21
  642. data/helpers/vendor/symfony/console/Tests/Fixtures/command_mbstring.md +0 -29
  643. data/helpers/vendor/symfony/console/Tests/Fixtures/command_mbstring.txt +0 -16
  644. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.json +0 -7
  645. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.md +0 -5
  646. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.txt +0 -1
  647. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_1.xml +0 -5
  648. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.json +0 -7
  649. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.md +0 -7
  650. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.txt +0 -1
  651. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_2.xml +0 -5
  652. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.json +0 -7
  653. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.md +0 -7
  654. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.txt +0 -1
  655. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_3.xml +0 -7
  656. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.json +0 -7
  657. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.md +0 -8
  658. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.txt +0 -2
  659. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_4.xml +0 -6
  660. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.json +0 -7
  661. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.md +0 -7
  662. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.txt +0 -1
  663. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_default_inf_value.xml +0 -7
  664. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.json +0 -7
  665. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.md +0 -7
  666. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.txt +0 -1
  667. data/helpers/vendor/symfony/console/Tests/Fixtures/input_argument_with_style.xml +0 -7
  668. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.json +0 -4
  669. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.md +0 -0
  670. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.txt +0 -0
  671. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_1.xml +0 -5
  672. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.json +0 -12
  673. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.md +0 -7
  674. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.txt +0 -2
  675. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_2.xml +0 -10
  676. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.json +0 -14
  677. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.md +0 -8
  678. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.txt +0 -2
  679. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_3.xml +0 -9
  680. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.json +0 -22
  681. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.md +0 -16
  682. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.txt +0 -5
  683. data/helpers/vendor/symfony/console/Tests/Fixtures/input_definition_4.xml +0 -14
  684. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.json +0 -9
  685. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.md +0 -6
  686. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.txt +0 -1
  687. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_1.xml +0 -4
  688. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.json +0 -9
  689. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.md +0 -8
  690. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.txt +0 -1
  691. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_2.xml +0 -7
  692. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.json +0 -9
  693. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.md +0 -8
  694. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.txt +0 -1
  695. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_3.xml +0 -5
  696. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.json +0 -9
  697. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.md +0 -8
  698. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.txt +0 -1
  699. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_4.xml +0 -5
  700. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.json +0 -9
  701. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.md +0 -9
  702. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.txt +0 -2
  703. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_5.xml +0 -6
  704. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.json +0 -9
  705. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.md +0 -8
  706. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.txt +0 -1
  707. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_6.xml +0 -5
  708. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.json +0 -9
  709. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.md +0 -8
  710. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.txt +0 -1
  711. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_default_inf_value.xml +0 -7
  712. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.json +0 -9
  713. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.md +0 -8
  714. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.txt +0 -1
  715. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style.xml +0 -7
  716. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.json +0 -12
  717. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.md +0 -8
  718. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.txt +0 -1
  719. data/helpers/vendor/symfony/console/Tests/Fixtures/input_option_with_style_array.xml +0 -8
  720. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleStackTest.php +0 -71
  721. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterStyleTest.php +0 -100
  722. data/helpers/vendor/symfony/console/Tests/Formatter/OutputFormatterTest.php +0 -355
  723. data/helpers/vendor/symfony/console/Tests/Helper/AbstractQuestionHelperTest.php +0 -34
  724. data/helpers/vendor/symfony/console/Tests/Helper/FormatterHelperTest.php +0 -129
  725. data/helpers/vendor/symfony/console/Tests/Helper/HelperSetTest.php +0 -127
  726. data/helpers/vendor/symfony/console/Tests/Helper/HelperTest.php +0 -55
  727. data/helpers/vendor/symfony/console/Tests/Helper/ProcessHelperTest.php +0 -133
  728. data/helpers/vendor/symfony/console/Tests/Helper/ProgressBarTest.php +0 -912
  729. data/helpers/vendor/symfony/console/Tests/Helper/ProgressIndicatorTest.php +0 -183
  730. data/helpers/vendor/symfony/console/Tests/Helper/QuestionHelperTest.php +0 -715
  731. data/helpers/vendor/symfony/console/Tests/Helper/SymfonyQuestionHelperTest.php +0 -168
  732. data/helpers/vendor/symfony/console/Tests/Helper/TableStyleTest.php +0 -28
  733. data/helpers/vendor/symfony/console/Tests/Helper/TableTest.php +0 -1199
  734. data/helpers/vendor/symfony/console/Tests/Input/ArgvInputTest.php +0 -466
  735. data/helpers/vendor/symfony/console/Tests/Input/ArrayInputTest.php +0 -177
  736. data/helpers/vendor/symfony/console/Tests/Input/InputArgumentTest.php +0 -103
  737. data/helpers/vendor/symfony/console/Tests/Input/InputDefinitionTest.php +0 -407
  738. data/helpers/vendor/symfony/console/Tests/Input/InputOptionTest.php +0 -196
  739. data/helpers/vendor/symfony/console/Tests/Input/InputTest.php +0 -149
  740. data/helpers/vendor/symfony/console/Tests/Input/StringInputTest.php +0 -87
  741. data/helpers/vendor/symfony/console/Tests/Logger/ConsoleLoggerTest.php +0 -215
  742. data/helpers/vendor/symfony/console/Tests/Output/ConsoleOutputTest.php +0 -42
  743. data/helpers/vendor/symfony/console/Tests/Output/ConsoleSectionOutputTest.php +0 -163
  744. data/helpers/vendor/symfony/console/Tests/Output/NullOutputTest.php +0 -88
  745. data/helpers/vendor/symfony/console/Tests/Output/OutputTest.php +0 -189
  746. data/helpers/vendor/symfony/console/Tests/Output/StreamOutputTest.php +0 -61
  747. data/helpers/vendor/symfony/console/Tests/Question/ConfirmationQuestionTest.php +0 -62
  748. data/helpers/vendor/symfony/console/Tests/Style/SymfonyStyleTest.php +0 -118
  749. data/helpers/vendor/symfony/console/Tests/TerminalTest.php +0 -59
  750. data/helpers/vendor/symfony/console/Tests/Tester/ApplicationTesterTest.php +0 -113
  751. data/helpers/vendor/symfony/console/Tests/Tester/CommandTesterTest.php +0 -235
  752. data/helpers/vendor/symfony/console/composer.json +0 -56
  753. data/helpers/vendor/symfony/console/phpunit.xml.dist +0 -41
  754. data/helpers/vendor/symfony/contracts/.gitignore +0 -3
  755. data/helpers/vendor/symfony/contracts/CHANGELOG.md +0 -12
  756. data/helpers/vendor/symfony/contracts/Cache/CacheInterface.php +0 -57
  757. data/helpers/vendor/symfony/contracts/Cache/CacheTrait.php +0 -71
  758. data/helpers/vendor/symfony/contracts/Cache/CallbackInterface.php +0 -30
  759. data/helpers/vendor/symfony/contracts/Cache/ItemInterface.php +0 -60
  760. data/helpers/vendor/symfony/contracts/Cache/TagAwareCacheInterface.php +0 -38
  761. data/helpers/vendor/symfony/contracts/LICENSE +0 -19
  762. data/helpers/vendor/symfony/contracts/README.md +0 -70
  763. data/helpers/vendor/symfony/contracts/Service/ResetInterface.php +0 -30
  764. data/helpers/vendor/symfony/contracts/Service/ServiceLocatorTrait.php +0 -97
  765. data/helpers/vendor/symfony/contracts/Service/ServiceSubscriberInterface.php +0 -53
  766. data/helpers/vendor/symfony/contracts/Service/ServiceSubscriberTrait.php +0 -61
  767. data/helpers/vendor/symfony/contracts/Tests/Cache/CacheTraitTest.php +0 -165
  768. data/helpers/vendor/symfony/contracts/Tests/Service/ServiceLocatorTest.php +0 -94
  769. data/helpers/vendor/symfony/contracts/Tests/Service/ServiceSubscriberTraitTest.php +0 -65
  770. data/helpers/vendor/symfony/contracts/Tests/Translation/TranslatorTest.php +0 -353
  771. data/helpers/vendor/symfony/contracts/Translation/LocaleAwareInterface.php +0 -31
  772. data/helpers/vendor/symfony/contracts/Translation/TranslatorInterface.php +0 -65
  773. data/helpers/vendor/symfony/contracts/Translation/TranslatorTrait.php +0 -255
  774. data/helpers/vendor/symfony/contracts/composer.json +0 -44
  775. data/helpers/vendor/symfony/contracts/phpunit.xml.dist +0 -31
  776. data/helpers/vendor/symfony/filesystem/.gitignore +0 -3
  777. data/helpers/vendor/symfony/filesystem/CHANGELOG.md +0 -59
  778. data/helpers/vendor/symfony/filesystem/Exception/ExceptionInterface.php +0 -21
  779. data/helpers/vendor/symfony/filesystem/Exception/FileNotFoundException.php +0 -34
  780. data/helpers/vendor/symfony/filesystem/Exception/IOException.php +0 -39
  781. data/helpers/vendor/symfony/filesystem/Exception/IOExceptionInterface.php +0 -27
  782. data/helpers/vendor/symfony/filesystem/Exception/InvalidArgumentException.php +0 -19
  783. data/helpers/vendor/symfony/filesystem/Filesystem.php +0 -767
  784. data/helpers/vendor/symfony/filesystem/LICENSE +0 -19
  785. data/helpers/vendor/symfony/filesystem/README.md +0 -13
  786. data/helpers/vendor/symfony/filesystem/Tests/ExceptionTest.php +0 -47
  787. data/helpers/vendor/symfony/filesystem/Tests/FilesystemTest.php +0 -1686
  788. data/helpers/vendor/symfony/filesystem/Tests/FilesystemTestCase.php +0 -166
  789. data/helpers/vendor/symfony/filesystem/Tests/Fixtures/MockStream/MockStream.php +0 -46
  790. data/helpers/vendor/symfony/filesystem/composer.json +0 -34
  791. data/helpers/vendor/symfony/filesystem/phpunit.xml.dist +0 -30
  792. data/helpers/vendor/symfony/finder/.gitignore +0 -3
  793. data/helpers/vendor/symfony/finder/CHANGELOG.md +0 -69
  794. data/helpers/vendor/symfony/finder/Comparator/Comparator.php +0 -98
  795. data/helpers/vendor/symfony/finder/Comparator/DateComparator.php +0 -51
  796. data/helpers/vendor/symfony/finder/Comparator/NumberComparator.php +0 -79
  797. data/helpers/vendor/symfony/finder/Exception/AccessDeniedException.php +0 -19
  798. data/helpers/vendor/symfony/finder/Finder.php +0 -783
  799. data/helpers/vendor/symfony/finder/Glob.php +0 -116
  800. data/helpers/vendor/symfony/finder/Iterator/CustomFilterIterator.php +0 -61
  801. data/helpers/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php +0 -58
  802. data/helpers/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php +0 -45
  803. data/helpers/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +0 -84
  804. data/helpers/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php +0 -53
  805. data/helpers/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php +0 -58
  806. data/helpers/vendor/symfony/finder/Iterator/FilenameFilterIterator.php +0 -47
  807. data/helpers/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +0 -112
  808. data/helpers/vendor/symfony/finder/Iterator/PathFilterIterator.php +0 -56
  809. data/helpers/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +0 -140
  810. data/helpers/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php +0 -57
  811. data/helpers/vendor/symfony/finder/Iterator/SortableIterator.php +0 -99
  812. data/helpers/vendor/symfony/finder/LICENSE +0 -19
  813. data/helpers/vendor/symfony/finder/README.md +0 -14
  814. data/helpers/vendor/symfony/finder/SplFileInfo.php +0 -78
  815. data/helpers/vendor/symfony/finder/Tests/Comparator/ComparatorTest.php +0 -65
  816. data/helpers/vendor/symfony/finder/Tests/Comparator/DateComparatorTest.php +0 -64
  817. data/helpers/vendor/symfony/finder/Tests/Comparator/NumberComparatorTest.php +0 -108
  818. data/helpers/vendor/symfony/finder/Tests/FinderTest.php +0 -1384
  819. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/a +0 -0
  820. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/b/c.neon +0 -0
  821. data/helpers/vendor/symfony/finder/Tests/Fixtures/.dot/b/d.neon +0 -0
  822. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/B/C/abc.dat +0 -0
  823. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/B/ab.dat +0 -0
  824. data/helpers/vendor/symfony/finder/Tests/Fixtures/A/a.dat +0 -0
  825. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/B/C/abc.dat.copy +0 -0
  826. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/B/ab.dat.copy +0 -0
  827. data/helpers/vendor/symfony/finder/Tests/Fixtures/copy/A/a.dat.copy +0 -0
  828. data/helpers/vendor/symfony/finder/Tests/Fixtures/dolor.txt +0 -2
  829. data/helpers/vendor/symfony/finder/Tests/Fixtures/ipsum.txt +0 -2
  830. data/helpers/vendor/symfony/finder/Tests/Fixtures/lorem.txt +0 -2
  831. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/.dot +0 -1
  832. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/a +0 -0
  833. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/b/c.neon +0 -0
  834. data/helpers/vendor/symfony/finder/Tests/Fixtures/one/b/d.neon +0 -0
  835. data/helpers/vendor/symfony/finder/Tests/Fixtures/r+e.gex[c]a(r)s/dir/bar.dat +0 -0
  836. 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
  837. data/helpers/vendor/symfony/finder/Tests/GlobTest.php +0 -95
  838. data/helpers/vendor/symfony/finder/Tests/Iterator/CustomFilterIteratorTest.php +0 -46
  839. data/helpers/vendor/symfony/finder/Tests/Iterator/DateRangeFilterIteratorTest.php +0 -92
  840. data/helpers/vendor/symfony/finder/Tests/Iterator/DepthRangeFilterIteratorTest.php +0 -103
  841. data/helpers/vendor/symfony/finder/Tests/Iterator/ExcludeDirectoryFilterIteratorTest.php +0 -107
  842. data/helpers/vendor/symfony/finder/Tests/Iterator/FileTypeFilterIteratorTest.php +0 -82
  843. data/helpers/vendor/symfony/finder/Tests/Iterator/FilecontentFilterIteratorTest.php +0 -86
  844. data/helpers/vendor/symfony/finder/Tests/Iterator/FilenameFilterIteratorTest.php +0 -54
  845. data/helpers/vendor/symfony/finder/Tests/Iterator/Iterator.php +0 -55
  846. data/helpers/vendor/symfony/finder/Tests/Iterator/IteratorTestCase.php +0 -100
  847. data/helpers/vendor/symfony/finder/Tests/Iterator/MockFileListIterator.php +0 -21
  848. data/helpers/vendor/symfony/finder/Tests/Iterator/MockSplFileInfo.php +0 -132
  849. data/helpers/vendor/symfony/finder/Tests/Iterator/MultiplePcreFilterIteratorTest.php +0 -71
  850. data/helpers/vendor/symfony/finder/Tests/Iterator/PathFilterIteratorTest.php +0 -82
  851. data/helpers/vendor/symfony/finder/Tests/Iterator/RealIteratorTestCase.php +0 -128
  852. data/helpers/vendor/symfony/finder/Tests/Iterator/RecursiveDirectoryIteratorTest.php +0 -59
  853. data/helpers/vendor/symfony/finder/Tests/Iterator/SizeRangeFilterIteratorTest.php +0 -70
  854. data/helpers/vendor/symfony/finder/Tests/Iterator/SortableIteratorTest.php +0 -262
  855. data/helpers/vendor/symfony/finder/composer.json +0 -33
  856. data/helpers/vendor/symfony/finder/phpunit.xml.dist +0 -30
  857. data/helpers/vendor/symfony/polyfill-ctype/Ctype.php +0 -227
  858. data/helpers/vendor/symfony/polyfill-ctype/LICENSE +0 -19
  859. data/helpers/vendor/symfony/polyfill-ctype/README.md +0 -12
  860. data/helpers/vendor/symfony/polyfill-ctype/bootstrap.php +0 -26
  861. data/helpers/vendor/symfony/polyfill-ctype/composer.json +0 -34
  862. data/helpers/vendor/symfony/polyfill-mbstring/LICENSE +0 -19
  863. data/helpers/vendor/symfony/polyfill-mbstring/Mbstring.php +0 -800
  864. data/helpers/vendor/symfony/polyfill-mbstring/README.md +0 -13
  865. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +0 -1096
  866. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +0 -5
  867. data/helpers/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +0 -1104
  868. data/helpers/vendor/symfony/polyfill-mbstring/bootstrap.php +0 -58
  869. data/helpers/vendor/symfony/polyfill-mbstring/composer.json +0 -34
  870. data/helpers/vendor/symfony/process/.gitignore +0 -3
  871. data/helpers/vendor/symfony/process/CHANGELOG.md +0 -90
  872. data/helpers/vendor/symfony/process/Exception/ExceptionInterface.php +0 -21
  873. data/helpers/vendor/symfony/process/Exception/InvalidArgumentException.php +0 -21
  874. data/helpers/vendor/symfony/process/Exception/LogicException.php +0 -21
  875. data/helpers/vendor/symfony/process/Exception/ProcessFailedException.php +0 -54
  876. data/helpers/vendor/symfony/process/Exception/ProcessSignaledException.php +0 -41
  877. data/helpers/vendor/symfony/process/Exception/ProcessTimedOutException.php +0 -69
  878. data/helpers/vendor/symfony/process/Exception/RuntimeException.php +0 -21
  879. data/helpers/vendor/symfony/process/ExecutableFinder.php +0 -88
  880. data/helpers/vendor/symfony/process/InputStream.php +0 -90
  881. data/helpers/vendor/symfony/process/LICENSE +0 -19
  882. data/helpers/vendor/symfony/process/PhpExecutableFinder.php +0 -101
  883. data/helpers/vendor/symfony/process/PhpProcess.php +0 -75
  884. data/helpers/vendor/symfony/process/Pipes/AbstractPipes.php +0 -178
  885. data/helpers/vendor/symfony/process/Pipes/PipesInterface.php +0 -67
  886. data/helpers/vendor/symfony/process/Pipes/UnixPipes.php +0 -153
  887. data/helpers/vendor/symfony/process/Pipes/WindowsPipes.php +0 -191
  888. data/helpers/vendor/symfony/process/Process.php +0 -1652
  889. data/helpers/vendor/symfony/process/ProcessUtils.php +0 -69
  890. data/helpers/vendor/symfony/process/README.md +0 -13
  891. data/helpers/vendor/symfony/process/Tests/ExecutableFinderTest.php +0 -178
  892. data/helpers/vendor/symfony/process/Tests/KillableProcessWithOutput.php +0 -25
  893. data/helpers/vendor/symfony/process/Tests/NonStopableProcess.php +0 -47
  894. data/helpers/vendor/symfony/process/Tests/PhpExecutableFinderTest.php +0 -49
  895. data/helpers/vendor/symfony/process/Tests/PhpProcessTest.php +0 -63
  896. data/helpers/vendor/symfony/process/Tests/PipeStdinInStdoutStdErrStreamSelect.php +0 -72
  897. data/helpers/vendor/symfony/process/Tests/ProcessFailedExceptionTest.php +0 -137
  898. data/helpers/vendor/symfony/process/Tests/ProcessTest.php +0 -1537
  899. data/helpers/vendor/symfony/process/Tests/SignalListener.php +0 -21
  900. data/helpers/vendor/symfony/process/composer.json +0 -33
  901. 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
- }