services:
  _defaults:
    autowire: true
    autoconfigure: true
    public: false

  EliasHaeussler\Typo3Warming\:
    resource: '../Classes/*'
    exclude:
      - '../Classes/Backend/Action/*{Action,Actions}.php'
      - '../Classes/Domain/{Model,Type}/*'
      - '../Classes/Enums/*'
      - '../Classes/Event/*'
      - '../Classes/Exception/*'
      - '../Classes/Http/Message/Event/*'
      - '../Classes/Http/Message/Handler/*'
      - '../Classes/Log/*'
      - '../Classes/Result/CacheWarmupResult.php'
      - '../Classes/ValueObject/*'

  EliasHaeussler\Typo3Warming\Command\ShowUserAgentCommand:
    tags:
      - name: console.command
        command: warming:showuseragent
        description: 'Show custom "User-Agent" header to be used for Frontend requests by default crawlers.'
        schedulable: false

  # External services
  CuyZ\Valinor\Mapper\TreeMapper:
    factory: ['@EliasHaeussler\Typo3Warming\Mapper\MapperFactory', 'get']
  EliasHaeussler\CacheWarmup\Config\Component\OptionsParser:
  EliasHaeussler\CacheWarmup\Crawler\CrawlerFactory:
    # Must be public for use with GU::mI in Configuration class to avoid circular dependencies
    public: true
  EliasHaeussler\CacheWarmup\Crawler\Strategy\CrawlingStrategyFactory:
  EliasHaeussler\CacheWarmup\Crawler\Strategy\SortByChangeFrequencyStrategy:
  EliasHaeussler\CacheWarmup\Crawler\Strategy\SortByLastModificationDateStrategy:
  EliasHaeussler\CacheWarmup\Crawler\Strategy\SortByPriorityStrategy:
  EliasHaeussler\CacheWarmup\DependencyInjection\ContainerFactory:
