@@ -375,24 +375,35 @@ class SearchBackend {
375375 likeCount: p.likes,
376376 grantedPoints: scoreCard.grantedPubPoints,
377377 maxPoints: scoreCard.maxPubPoints,
378- dependencies: _buildDependencies (pv.pubspec! , scoreCard),
378+ dependencies: await _buildDependencies (pv.pubspec! , scoreCard),
379379 apiDocPages: apiDocPages,
380380 timestamp: clock.now ().toUtc (),
381381 sourceUpdated: sourceUpdated,
382382 );
383383 }
384384
385- Map <String , String > _buildDependencies (Pubspec pubspec, ScoreCardData ? view) {
386- final Map <String , String > dependencies = < String , String > {};
387- view? .panaReport? .allDependencies? .forEach ((p) {
388- dependencies[p] = DependencyTypes .transitive;
389- });
390- pubspec.devDependencies.forEach ((package) {
391- dependencies[package] = DependencyTypes .dev;
392- });
393- pubspec.dependencyNames.forEach ((package) {
394- dependencies[package] = DependencyTypes .direct;
395- });
385+ Future <Map <String , String >> _buildDependencies (
386+ Pubspec pubspec, ScoreCardData ? view) async {
387+ final dependencies = < String , String > {};
388+ for (final p in view? .panaReport? .allDependencies ?? < String > []) {
389+ if (await packageBackend.isPackageVisible (p)) {
390+ dependencies[p] = DependencyTypes .transitive;
391+ }
392+ }
393+ for (final p in pubspec.devDependencies) {
394+ // Note: at this point the visibility may have been checked.
395+ if (dependencies.containsKey (p) ||
396+ await packageBackend.isPackageVisible (p)) {
397+ dependencies[p] = DependencyTypes .dev;
398+ }
399+ }
400+ for (final p in pubspec.dependencyNames) {
401+ // Note: at this point the visibility may have been checked.
402+ if (dependencies.containsKey (p) ||
403+ await packageBackend.isPackageVisible (p)) {
404+ dependencies[p] = DependencyTypes .direct;
405+ }
406+ }
396407 return dependencies;
397408 }
398409
0 commit comments