| 1 |  |  | <?php | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 |  |  | declare(strict_types=1); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 5 |  |  | namespace TMV\HTTPlugModule; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 6 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 7 |  |  | use Http\Discovery\MessageFactoryDiscovery; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 8 |  |  | use Http\Discovery\Psr17FactoryDiscovery; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 9 |  |  | use TMV\HTTPlugModule\ClientFactory\AutoDiscoveryFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 10 |  |  | use TMV\HTTPlugModule\ClientFactory\BuzzFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 11 |  |  | use TMV\HTTPlugModule\ClientFactory\CurlFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 12 |  |  | use TMV\HTTPlugModule\ClientFactory\Guzzle5Factory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 13 |  |  | use TMV\HTTPlugModule\ClientFactory\Guzzle6Factory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 14 |  |  | use TMV\HTTPlugModule\ClientFactory\MockFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 15 |  |  | use TMV\HTTPlugModule\ClientFactory\ReactFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 16 |  |  | use TMV\HTTPlugModule\ClientFactory\SocketFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 17 |  |  | use TMV\HTTPlugModule\DIFactory\ClientFactory\BuzzFactoryFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 18 |  |  | use TMV\HTTPlugModule\DIFactory\ClientFactory\CurlFactoryFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 19 |  |  | use TMV\HTTPlugModule\DIFactory\ClientFactory\Guzzle5FactoryFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 20 |  |  | use TMV\HTTPlugModule\DIFactory\ClientFactory\ReactFactoryFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 21 |  |  | use TMV\HTTPlugModule\DIFactory\ClientFactory\SocketFactoryFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 22 |  |  | use TMV\HTTPlugModule\DIFactory\PluginFactoryManagerFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 23 |  |  | use Zend\ServiceManager\Factory\InvokableFactory; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 24 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 25 |  |  | class ConfigProvider | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 26 |  |  | { | 
            
                                                                        
                            
            
                                    
            
            
                | 27 |  |  |     public function __invoke(): array | 
            
                                                                        
                            
            
                                    
            
            
                | 28 |  |  |     { | 
            
                                                                        
                            
            
                                    
            
            
                | 29 |  |  |         return [ | 
            
                                                                        
                            
            
                                    
            
            
                | 30 |  |  |             'dependencies' => $this->getDependencies(), | 
            
                                                                        
                            
            
                                    
            
            
                | 31 |  |  |             'httplug' => [ | 
            
                                                                        
                            
            
                                    
            
            
                | 32 |  |  |                 'plugin_factory_manager' => [ | 
            
                                                                        
                            
            
                                    
            
            
                | 33 |  |  |                     'factories' => [ | 
            
                                                                        
                            
            
                                    
            
            
                | 34 |  |  |                         'cache' => PluginFactory\CacheFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 35 |  |  |                         'add_host' => PluginFactory\AddHostFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 36 |  |  |                         'add_path' => PluginFactory\AddPathFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 37 |  |  |                         'authentication' => PluginFactory\AuthenticationFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 38 |  |  |                         'base_uri' => PluginFactory\BaseUriFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 39 |  |  |                         'content_length' => PluginFactory\ContentLengthFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 40 |  |  |                         'content_type' => PluginFactory\ContentTypeFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 41 |  |  |                         'cookie' => PluginFactory\CookieFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 42 |  |  |                         'decoder' => PluginFactory\DecoderFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 43 |  |  |                         'error' => PluginFactory\ErrorFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 44 |  |  |                         'header_append' => PluginFactory\HeaderAppendFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 45 |  |  |                         'header_defaults' => PluginFactory\HeaderDefaultsFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 46 |  |  |                         'header_remove' => PluginFactory\HeaderRemoveFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 47 |  |  |                         'header_set' => PluginFactory\HeaderSetFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 48 |  |  |                         'history' => PluginFactory\HistoryFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 49 |  |  |                         'logger' => PluginFactory\LoggerFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 50 |  |  |                         'query_defaults' => PluginFactory\QueryDefaultsFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 51 |  |  |                         'redirect' => PluginFactory\RedirectFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 52 |  |  |                         'request_matcher' => PluginFactory\RequestMatcherFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 53 |  |  |                         'retry' => PluginFactory\RetryFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 54 |  |  |                         'stopwatch' => PluginFactory\StopwatchFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 55 |  |  |                         'vcr_record' => PluginFactory\VcrRecordFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 56 |  |  |                         'vcr_replay' => PluginFactory\VcrReplayFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 57 |  |  |                     ], | 
            
                                                                        
                            
            
                                    
            
            
                | 58 |  |  |                 ], | 
            
                                                                        
                            
            
                                    
            
            
                | 59 |  |  |                 'authentication_factories' => [ | 
            
                                                                        
                            
            
                                    
            
            
                | 60 |  |  |                     'basic' => PluginFactory\Authentication\BasicFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 61 |  |  |                     'bearer' => PluginFactory\Authentication\BearerFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 62 |  |  |                     'wsse' => PluginFactory\Authentication\WsseFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 63 |  |  |                     'query_param' => PluginFactory\Authentication\QueryParamFactory::class, | 
            
                                                                        
                            
            
                                    
            
            
                | 64 |  |  |                 ], | 
            
                                                                        
                            
            
                                    
            
            
                | 65 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 66 |  |  |                 // Global plugin configuration. When configured here, plugins need to be explicitly added to clients by service name. | 
            
                                                                        
                            
            
                                    
            
            
                | 67 |  |  |                 'plugins' => [], | 
            
                                                                        
                            
            
                                    
            
            
                | 68 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 69 |  |  |                 'clients' => [], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 70 |  |  |             ], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 71 |  |  |         ]; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 72 |  |  |     } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 73 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 74 |  |  |     public function getDependencies(): array | 
            
                                                                                                            
                            
            
                                    
            
            
                | 75 |  |  |     { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 76 |  |  |         return [ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 77 |  |  |             'abstract_factories' => [ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 78 |  |  |                 DIFactory\ClientAbstractFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 79 |  |  |                 DIFactory\FlexibleClientAbstractFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 80 |  |  |                 DIFactory\HttpMethodsClientAbstractFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 81 |  |  |             ], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 82 |  |  |             'aliases' => [ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 83 |  |  |                 'httplug.client' => 'httplug.client.default', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 84 |  |  |                 'httplug.client_factory.buz' => BuzzFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 85 |  |  |                 'httplug.client_factory.curl' => CurlFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 86 |  |  |                 'httplug.client_factory.guzzle5' => Guzzle5Factory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 87 |  |  |                 'httplug.client_factory.guzzle6' => Guzzle6Factory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 88 |  |  |                 'httplug.client_factory.mock' => MockFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 89 |  |  |                 'httplug.client_factory.react' => ReactFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 90 |  |  |                 'httplug.client_factory.socket' => SocketFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 91 |  |  |             ], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 92 |  |  |             'factories' => [ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 93 |  |  |                 'httplug.message_factory' => [MessageFactoryDiscovery::class, 'find'], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 94 |  |  |                 'httplug.response_factory' => [Psr17FactoryDiscovery::class, 'findResponseFactory'], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 95 |  |  |                 'httplug.request_factory' => [Psr17FactoryDiscovery::class, 'findRequestFactory'], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 96 |  |  |                 'httplug.uri_factory' => [Psr17FactoryDiscovery::class, 'findUrlFactory'], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 97 |  |  |                 'httplug.stream_factory' => [Psr17FactoryDiscovery::class, 'findStreamFactory'], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 98 |  |  |                 // Client factories | 
            
                                                                                                            
                            
            
                                    
            
            
                | 99 |  |  |                 AutoDiscoveryFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 100 |  |  |                 BuzzFactory::class => BuzzFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 101 |  |  |                 CurlFactory::class => CurlFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 102 |  |  |                 Guzzle5Factory::class => Guzzle5FactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 103 |  |  |                 Guzzle6Factory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 104 |  |  |                 MockFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 105 |  |  |                 ReactFactory::class => ReactFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 106 |  |  |                 SocketFactory::class => SocketFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 107 |  |  |                 // Authentication factories | 
            
                                                                                                            
                            
            
                                    
            
            
                | 108 |  |  |                 PluginFactory\Authentication\BasicFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 109 |  |  |                 PluginFactory\Authentication\BearerFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 110 |  |  |                 PluginFactory\Authentication\WsseFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 111 |  |  |                 PluginFactory\Authentication\QueryParamFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 112 |  |  |                 // Plugin factory manager | 
            
                                                                                                            
                            
            
                                    
            
            
                | 113 |  |  |                 PluginFactoryManager::class => PluginFactoryManagerFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 114 |  |  |                 // Plugin factories | 
            
                                                                                                            
                            
            
                                    
            
            
                | 115 |  |  |                 PluginFactory\CacheFactory::class => DIFactory\PluginFactory\CacheFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 116 |  |  |                 PluginFactory\AddHostFactory::class => DIFactory\PluginFactory\AddHostFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 117 |  |  |                 PluginFactory\AddPathFactory::class => DIFactory\PluginFactory\AddPathFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 118 |  |  |                 PluginFactory\AuthenticationFactory::class => DIFactory\PluginFactory\AuthenticationFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 119 |  |  |                 PluginFactory\BaseUriFactory::class => DIFactory\PluginFactory\BaseUriFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 120 |  |  |                 PluginFactory\ContentLengthFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 121 |  |  |                 PluginFactory\ContentTypeFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 122 |  |  |                 PluginFactory\CookieFactory::class => DIFactory\PluginFactory\CookieFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 123 |  |  |                 PluginFactory\DecoderFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 124 |  |  |                 PluginFactory\ErrorFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 125 |  |  |                 PluginFactory\HeaderAppendFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 126 |  |  |                 PluginFactory\HeaderDefaultsFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 127 |  |  |                 PluginFactory\HeaderRemoveFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 128 |  |  |                 PluginFactory\HeaderSetFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 129 |  |  |                 PluginFactory\HistoryFactory::class => DIFactory\PluginFactory\HistoryFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 130 |  |  |                 PluginFactory\LoggerFactory::class => DIFactory\PluginFactory\LoggerFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 131 |  |  |                 PluginFactory\QueryDefaultsFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 132 |  |  |                 PluginFactory\RedirectFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 133 |  |  |                 PluginFactory\RequestMatcherFactory::class => DIFactory\PluginFactory\RequestMatcherFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 134 |  |  |                 PluginFactory\RetryFactory::class => InvokableFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 135 |  |  |                 PluginFactory\StopwatchFactory::class => DIFactory\PluginFactory\StopwatchFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 136 |  |  |                 PluginFactory\VcrRecordFactory::class => DIFactory\PluginFactory\VcrRecordFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 137 |  |  |                 PluginFactory\VcrReplayFactory::class => DIFactory\PluginFactory\VcrReplayFactoryFactory::class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 138 |  |  |             ], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 139 |  |  |         ]; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 140 |  |  |     } | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 141 |  |  | } | 
            
                                                        
            
                                    
            
            
                | 142 |  |  |  |