searchPackages method
One page of GET /api/search?q=<query>&sort=downloads&page=<page>
results (SPEC ยง3.1.1, 2026-09-27): 10 package names per page, and
pub.dev rejects the query past page 10 (100 results per query).
Implementation
Future<List<String>> searchPackages(String query, {required int page}) async {
final uri = _baseUri
.resolve('/api/search')
.replace(queryParameters: {'q': query, 'sort': 'downloads', 'page': '$page'});
final body = await _getJson(uri);
return [
for (final entry in body['packages'] as List)
(entry as Map<String, dynamic>)['package'] as String,
];
}