getPackageInfo method
Get full package info from pub.dev.
GET /api/packages/{package}
Returns the full JSON response including name, latest (with version
and pubspec), and versions (list of all published versions).
Throws on non-2xx responses because downstream callers depend on this data being available.
Implementation
Future<Map<String, dynamic>> getPackageInfo(String packageName) async {
final cacheKey = 'pub_package_$packageName';
final cached = await _cache.get(cacheKey);
if (cached != null) return cached;
Logger.debug('Fetching package info for $packageName from pub.dev');
final response = await _http.get('$_baseUrl/packages/$packageName');
if (!response.isSuccess) {
throw Exception(
'Failed to fetch package info for $packageName: '
'HTTP ${response.statusCode}',
);
}
final data = response.json;
await _cache.set(cacheKey, data, CacheManager.packageMetadataTtl);
return data;
}