const manifestUrl = "https://huggingface.co/datasets/boneylizardwizard/mirid-runtime-packs/resolve/main/runtime-packages.manifest.json"; const packageList = document.querySelector("#package-list"); const status = document.querySelector("#status"); const platformFilter = document.querySelector("#platform-filter"); const familyFilter = document.querySelector("#family-filter"); const acceleratorFilter = document.querySelector("#accelerator-filter"); let packages = []; function addOptions(select, values) { [...new Set(values)].sort().forEach((value) => { const option = document.createElement("option"); option.value = value; option.textContent = value; select.append(option); }); } function formatBytes(bytes) { const units = ["B", "KB", "MB", "GB"]; let value = bytes; let unitIndex = 0; while (value >= 1024 && unitIndex < units.length - 1) { value /= 1024; unitIndex += 1; } return `${value.toFixed(unitIndex > 1 ? 1 : 0)} ${units[unitIndex]}`; } function render() { const visible = packages.filter( (item) => { const family = item.family || "binding"; return ( (!platformFilter.value || item.platform === platformFilter.value) && (!familyFilter.value || family === familyFilter.value) && (!acceleratorFilter.value || item.accelerator === acceleratorFilter.value) ); }, ); packageList.replaceChildren(); visible.forEach((item) => { const article = document.createElement("article"); const family = item.family || "Python binding"; article.innerHTML = `
${item.source.sha256}