<?xml version="1.0" ?>

<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>
        <defaults public="false" />

        <service id="webpack_encore.entrypoint_lookup_collection" class="Symfony\WebpackEncoreBundle\Asset\EntrypointLookupCollection">
            <argument /> <!-- build list of entrypoints locator -->
        </service>

        <service id="Symfony\WebpackEncoreBundle\Asset\EntrypointLookupCollectionInterface" alias="webpack_encore.entrypoint_lookup_collection" />

        <service id="webpack_encore.tag_renderer" class="Symfony\WebpackEncoreBundle\Asset\TagRenderer">
            <tag name="kernel.reset" method="reset" />
            <argument type="service" id="webpack_encore.entrypoint_lookup_collection" />
            <argument type="service" id="assets.packages" />
            <argument type="collection"/> <!-- Default attributes-->
            <argument type="collection"/> <!-- Default script attributes -->
            <argument type="collection"/> <!-- Default link attributes -->
            <argument type="service" id="event_dispatcher" />
        </service>

        <service id="webpack_encore.twig_entry_files_extension" class="Symfony\WebpackEncoreBundle\Twig\EntryFilesTwigExtension">
            <tag name="twig.extension" />
            <argument type="service">
                <service class="Symfony\Component\DependencyInjection\ServiceLocator">
                    <tag name="container.service_locator" />
                    <argument type="collection">
                        <argument key="webpack_encore.entrypoint_lookup_collection" type="service" id="webpack_encore.entrypoint_lookup_collection" />
                        <argument key="webpack_encore.tag_renderer" type="service" id="webpack_encore.tag_renderer" />
                    </argument>
                </service>
            </argument>
        </service>

        <service id="webpack_encore.twig_stimulus_extension" class="Symfony\WebpackEncoreBundle\Twig\StimulusTwigExtension">
            <tag name="twig.extension" />
        </service>

        <service id="webpack_encore.entrypoint_lookup.cache_warmer" class="Symfony\WebpackEncoreBundle\CacheWarmer\EntrypointCacheWarmer">
            <tag name="kernel.cache_warmer" />
            <argument /> <!-- build list of entrypoint paths -->
            <argument>%kernel.cache_dir%/webpack_encore.cache.php</argument>
        </service>

        <service id="webpack_encore.cache" class="Symfony\Component\Cache\Adapter\PhpArrayAdapter">
            <factory class="Symfony\Component\Cache\Adapter\PhpArrayAdapter" method="create" />
            <argument>%kernel.cache_dir%/webpack_encore.cache.php</argument>
            <argument type="service" id="cache.webpack_encore" />
        </service>

        <service id="cache.webpack_encore" parent="cache.system" public="false">
            <tag name="cache.pool" />
        </service>

        <service id="webpack_encore.exception_listener" class="Symfony\WebpackEncoreBundle\EventListener\ExceptionListener">
            <tag name="kernel.event_listener" event="kernel.exception" />
            <argument type="service" id="webpack_encore.entrypoint_lookup_collection" />
            <argument /> <!-- build list of build names -->
        </service>

        <service id="webpack_encore.preload_assets_event_listener" class="Symfony\WebpackEncoreBundle\EventListener\PreLoadAssetsEventListener">
            <tag name="kernel.event_subscriber" />
            <argument type="service" id="webpack_encore.tag_renderer" />
        </service>

        <service id="Symfony\WebpackEncoreBundle\EventListener\ResetAssetsEventListener">
            <tag name="kernel.event_subscriber" />
            <argument type="service" id="webpack_encore.entrypoint_lookup_collection" />
        </service>
    </services>
</container>
