name: ImportMapManager
class_comment: "# * @author K\xE9vin Dunglas <kevin@dunglas.dev>\n# * @author Ryan\
  \ Weaver <ryan@symfonycasts.com>\n# *\n# * @final"
dependencies:
- name: AssetMapperInterface
  type: class
  source: Symfony\Component\AssetMapper\AssetMapperInterface
- name: PackageResolverInterface
  type: class
  source: Symfony\Component\AssetMapper\ImportMap\Resolver\PackageResolverInterface
- name: MappedAsset
  type: class
  source: Symfony\Component\AssetMapper\MappedAsset
properties: []
methods:
- name: require
  visibility: public
  parameters:
  - name: packages
  comment: "# * @author K\xE9vin Dunglas <kevin@dunglas.dev>\n# * @author Ryan Weaver\
    \ <ryan@symfonycasts.com>\n# *\n# * @final\n# */\n# class ImportMapManager\n#\
    \ {\n# public function __construct(\n# private readonly AssetMapperInterface $assetMapper,\n\
    # private readonly ImportMapConfigReader $importMapConfigReader,\n# private readonly\
    \ RemotePackageDownloader $packageDownloader,\n# private readonly PackageResolverInterface\
    \ $resolver,\n# ) {\n# }\n# \n# /**\n# * Adds or updates packages.\n# *\n# * @param\
    \ PackageRequireOptions[] $packages\n# *\n# * @return ImportMapEntry[]"
- name: remove
  visibility: public
  parameters:
  - name: packages
  comment: '# * Removes packages.

    # *

    # * @param string[] $packages'
- name: update
  visibility: public
  parameters:
  - name: packages
    default: '[]'
  comment: '# * Updates either all existing packages or the specified ones to the
    latest version.

    # *

    # * @return ImportMapEntry[]'
- name: parsePackageName
  visibility: public
  parameters:
  - name: packageName
  comment: '# * @internal'
- name: updateImportMapConfig
  visibility: private
  parameters:
  - name: update
  - name: packagesToRequire
  - name: packagesToRemove
  - name: packagesToUpdate
  comment: '# * @param PackageRequireOptions[] $packagesToRequire

    # * @param string[]                $packagesToRemove

    # *

    # * @return ImportMapEntry[]'
- name: requirePackages
  visibility: private
  parameters:
  - name: packagesToRequire
  - name: importMapEntries
  comment: '# * Gets information about (and optionally downloads) the packages & updates
    the entries.

    # *

    # * Returns an array of the entries that were added.

    # *

    # * @param PackageRequireOptions[] $packagesToRequire'
- name: cleanupPackageFiles
  visibility: private
  parameters:
  - name: entry
  comment: null
- name: getImportMapTypeFromFilename
  visibility: private
  parameters:
  - name: path
  comment: null
- name: findAsset
  visibility: private
  parameters:
  - name: path
  comment: '# * Finds the MappedAsset allowing for a "logical path", relative or absolute
    filesystem path.'
traits:
- Symfony\Component\AssetMapper\AssetMapperInterface
- Symfony\Component\AssetMapper\ImportMap\Resolver\PackageResolverInterface
- Symfony\Component\AssetMapper\MappedAsset
interfaces: []