@@ -383,7 +383,7 @@ class IntegrityChecker {
383383 // while the integrity check is running.
384384 if (! pv.created! .isAfter (p.lastVersionPublished! )) {
385385 // Moderated versions are not counted.
386- if (! pv.isModerated ) {
386+ if (pv.isVisible ) {
387387 versionCountUntilLastPublished++ ;
388388 }
389389 }
@@ -442,6 +442,12 @@ class IntegrityChecker {
442442 isModerated: p.isModerated,
443443 moderatedAt: p.moderatedAt,
444444 );
445+ yield * _checkAdminDeletedFlags (
446+ kind: 'Package' ,
447+ id: p.name! ,
448+ isAdminDeleted: p.isAdminDeleted ?? false ,
449+ adminDeletedAt: p.adminDeletedAt,
450+ );
445451 if (p.isModerated) {
446452 _packagesWithIsModeratedFlag.add (p.name! );
447453 }
@@ -575,7 +581,7 @@ class IntegrityChecker {
575581 yield 'PackageVersion "${pv .qualifiedVersionKey }" is retracted, but `retracted` property is null.' ;
576582 }
577583 final shouldBeInPublicBucket =
578- ! _packagesWithIsModeratedFlag.contains (pv.package) && ! pv.isModerated ;
584+ ! _packagesWithIsModeratedFlag.contains (pv.package) && pv.isVisible ;
579585 final tarballItems = await retry (
580586 () async {
581587 return await _checkTarballInBuckets (pv, archiveDownloadUri,
@@ -592,6 +598,12 @@ class IntegrityChecker {
592598 isModerated: pv.isModerated,
593599 moderatedAt: pv.moderatedAt,
594600 );
601+ yield * _checkAdminDeletedFlags (
602+ kind: 'PackageVersion' ,
603+ id: pv.qualifiedVersionKey.toString (),
604+ isAdminDeleted: pv.isAdminDeleted ?? false ,
605+ adminDeletedAt: pv.adminDeletedAt,
606+ );
595607
596608 // Sanity checks for the `created` property
597609 if (pv.created == null ) {
@@ -1012,3 +1024,18 @@ Stream<String> _checkModeratedFlags({
10121024 yield '$kind "$id " has `isModerated = false` but `moderatedAt` is not null.' ;
10131025 }
10141026}
1027+
1028+ /// Check that `isAdminDeleted` and `adminDeletedAt` are consistent.
1029+ Stream <String > _checkAdminDeletedFlags ({
1030+ required String kind,
1031+ required String id,
1032+ required bool isAdminDeleted,
1033+ required DateTime ? adminDeletedAt,
1034+ }) async * {
1035+ if (isAdminDeleted && adminDeletedAt == null ) {
1036+ yield '$kind "$id " has `isAdminDeleted = true` but `adminDeletedAt` is null.' ;
1037+ }
1038+ if (! isAdminDeleted && adminDeletedAt != null ) {
1039+ yield '$kind "$id " has `isAdminDeleted = false` but `adminDeletedAt` is not null.' ;
1040+ }
1041+ }
0 commit comments