def METHOD_NAME(advisory_html, snyk_id, affected, purl) -> VendorData:
    aliases = []
    fixed_versions = []
    advisory_soup = BeautifulSoup(advisory_html, "html.parser")
    cve_span = advisory_soup.find("span", class_="cve")
    if cve_span:
        cve_anchor = cve_span.find("a", class_="vue--anchor")
        aliases.append(cve_anchor["id"])
    how_to_fix = advisory_soup.find(
        "div", class_="vue--block vuln-page__instruction-block vue--block--instruction"
    )
    if how_to_fix:
        fixed = how_to_fix.find("p").text.split(" ")
        if "Upgrade" in fixed:
            lower = fixed.index("version") if "version" in fixed else fixed.index("versions")
            upper = fixed.index("or")
            fixed_versions = "".join(fixed[lower + 1 : upper]).split(",")
    aliases.append(snyk_id)
    return VendorData(
        purl=PackageURL(purl.type, purl.namespace, purl.name),
        aliases=aliases,
        affected_versions=affected,
        fixed_versions=fixed_versions,
    )