private function updateImportMapConfig(bool
$update, array
$packagesToRequire, array
$packagesToRemove, array
$packagesToUpdate): array
{ $currentEntries =
$this->
loadImportMapEntries();
foreach ($packagesToRemove as $packageName) { if (!
isset($currentEntries[$packageName])) { throw new \
InvalidArgumentException(sprintf('Package "%s" listed for removal was not found in "%s".',
$packageName,
basename($this->importMapConfigPath
)));
} $this->
cleanupPackageFiles($currentEntries[$packageName]);
unset($currentEntries[$packageName]);
} if ($update) { foreach ($currentEntries as $importName =>
$entry) { if (null ===
$entry->url
|| (0 !== \
count($packagesToUpdate) && !\
in_array($importName,
$packagesToUpdate, true
))) { continue;
} // assume the import name === package name, unless we can parse
// the true package name from the URL