getVersions method
Fetch all versions of a package.
Implementation
Future<List<PubVersionInfo>> getVersions(String packageName) async {
final url = Uri.parse('$registryUrl/api/packages/$packageName');
final response = await _http.get(url);
if (response.statusCode != 200) {
throw StateError(
'Failed to fetch package "$packageName" from $registryUrl: '
'${response.statusCode} ${response.reasonPhrase}',
);
}
final data = jsonDecode(response.body) as Map<String, dynamic>;
final versions = data['versions'] as List<dynamic>? ?? [];
return versions.map((v) {
final map = v as Map<String, dynamic>;
return PubVersionInfo(
version: map['version'] as String,
archiveUrl:
map['archive_url'] as String? ??
'$registryUrl/api/packages/$packageName/versions/${map['version']}/archive',
);
}).toList();
}