public async Task <string> GetPackageVersion(
            [NotNull]
            string packageName)
        {
            if (packageName == null)
            {
                throw new ArgumentNullException(nameof(packageName));
            }

            if (PackageVersions.TryGetValue(packageName, out string version))
            {
                return(version);
            }
            else
            {
                dynamic apiQuery = JsonConvert.DeserializeObject(
                    await CurrentClient.DownloadStringTaskAsync(
                        $"https://api.cdnjs.com/libraries/{packageName}?fields=version"));

                version = apiQuery.version;

                if (string.IsNullOrWhiteSpace(version))
                {
                    throw new Exception("Parse API error");
                }

                PackageVersions.TryAdd(packageName, version);

                return(version);
            }
        }