Private/Provider/Invoke-ProviderGetInfo.ps1

function Invoke-ProviderGetInfo {
    param(
        [string]$Name,
        [string]$Repository = 'PSGallery'
    )

    $provider = Get-ModuleProvider

    try {
        Import-ActiveProvider -Provider $provider

        $raw = if ($provider -eq 'PSResourceGet') {
            Find-PSResource -Name $Name -Repository $Repository -Type Module -ErrorAction Stop |
                Sort-Object -Property Version -Descending |
                Select-Object -First 1
        } else {
            Find-Module -Name $Name -Repository $Repository -ErrorAction Stop
        }

        if (-not $raw) {
            Write-Error "Module '$Name' not found in repository '$Repository'."
            return $null
        }

        return $raw | ConvertTo-ModuleInfo -ProviderType $provider
    } catch {
        Write-Error "Failed to retrieve info for '$Name': $_"
        return $null
    }
}