bannedUris property
Individual library URIs the closure must not contain, where the package is legitimate but one of its entry points is not.
banned cannot express this, because it collapses a URI to its package
name: a package may be a required dependency while its default barrel
reaches dart:io, and the closure walk stops at the package boundary, so
a web breakage through that barrel would be invisible to a dart:io ban.
dart2js accepts dart:io, linking stubs that throw when called, so
the breakage would arrive as a crash in a browser rather than a failed
build.
Implementation
final Set<String> bannedUris;