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