From 55acbc76b34d8b9a212e761c030ff501d03d178e Mon Sep 17 00:00:00 2001 From: a dinosaur Date: Sun, 6 Jul 2025 19:23:45 +1000 Subject: [PATCH] Search provides in index resolve --- Sources/apk/Index/ApkIndex.swift | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Sources/apk/Index/ApkIndex.swift b/Sources/apk/Index/ApkIndex.swift index d3ad40f..b62dd34 100644 --- a/Sources/apk/Index/ApkIndex.swift +++ b/Sources/apk/Index/ApkIndex.swift @@ -24,14 +24,22 @@ public extension ApkIndex { } func resolve(requirement: ApkVersionRequirement) -> ApkIndexPackage? { - self.packages.first { - $0.name == requirement.name && requirement.versionSpec.satisfied(by: $0.version) + self.packages.first { pkg in + guard pkg.name == requirement.name || + pkg.provides.contains(where: { $0.name == requirement.name }) else { + return false + } + return requirement.versionSpec.satisfied(by: pkg.version) } } func resolveIndex(requirement: ApkVersionRequirement) -> Index? { - self.packages.firstIndex { - $0.name == requirement.name && requirement.versionSpec.satisfied(by: $0.version) + self.packages.firstIndex { pkg in + guard pkg.name == requirement.name || + pkg.provides.contains(where: { $0.name == requirement.name }) else { + return false + } + return requirement.versionSpec.satisfied(by: pkg.version) } } }