in lib/src/package_config_impl.dart [503:523]
SimplePackage? packageOf(Uri file) {
var currentTrieNode = _map[file.scheme];
if (currentTrieNode == null) return null;
var path = file.toString();
var potential = <SimplePackage>[];
if (_isMatch(path, currentTrieNode, potential)) {
return currentTrieNode.package;
}
var segments = file.pathSegments;
for (var i = 0; i < segments.length - 1; i++) {
var segment = segments[i];
currentTrieNode = currentTrieNode!.map[segment];
if (currentTrieNode == null) break;
if (_isMatch(path, currentTrieNode, potential)) {
return currentTrieNode.package;
}
}
if (potential.isEmpty) return null;
return potential.last;
}