tests/httptest/link/package_compound/wrong.R

structure(list(method = "GET", url = "https://package_compound/wrong", 
    status_code = 404L, headers = structure(list(Server = "nginx/1.24.0 (Ubuntu)", 
        Date = "Thu, 01 Oct 2026 02:05:30 GMT", `Content-Type` = "text/html; charset=utf-8", 
        `Transfer-Encoding` = "chunked", Connection = "keep-alive", 
        Vary = "Authorization, Cookie", `X-Frame-Options` = "DENY", 
        `X-Content-Type-Options` = "nosniff", `Referrer-Policy` = "same-origin", 
        `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=jbKz8jrQ5jD9akE1MIVnlSQL3pyhdL4S; expires=Thu, 30 Sep 2027 02:05:30 GMT; Max-Age=31449600; Path=/; SameSite=Lax", 
        `Content-Encoding` = "gzip"), class = "httr2_headers"), 
    body = charToRaw("<!doctype html>\n<html data-theme=\"envipath\" lang=\"en\">\n  \n  <head>\n    <title>enviPath</title>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <meta name=\"csrf-token\" content=\"3dgi9lgFiqWGDj7dFdvS82K6KfYCcsLfceQH7uxldzpFDtB4hLg5jKqHDumJf3FX\" />\n\n    \n    <link\n      rel=\"shortcut icon\"\n      type=\"image/png\"\n      href=\"/static/images/favicon.ico\"\n    />\n\n    \n    <link\n      href=\"/static/css/output.css\"\n      rel=\"stylesheet\"\n      type=\"text/css\"\n    />\n\n    \n    <script src=\"https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js\"></script>\n    <script src=\"/static/js/utils/timeseries-chart.js\"></script>\n\n    \n    <script\n      defer\n      src=\"https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js\"\n    ></script>\n    <script src=\"/static/js/alpine/index.js\"></script>\n    <script src=\"/static/js/alpine/search.js\"></script>\n    <script src=\"/static/js/alpine/pagination.js\"></script>\n    <script src=\"/static/js/alpine/pathway.js\"></script>\n    <script src=\"/static/js/alpine/components/schema-form.js\"></script>\n    <script src=\"/static/js/alpine/components/widgets.js\"></script>\n\n    \n    <link\n      href=\"https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css\"\n      rel=\"stylesheet\"\n    />\n\n    \n    <script src=\"https://community.envipath.org/javascripts/embed-topics.js\"></script>\n\n    <script>\n      const csrftoken = document.querySelector(\"[name=csrf-token]\").content;\n    </script>\n\n    \n    <script src=\"/static/js/pps.js\"></script>\n\n    \n      <!-- Matomo -->\n      <script>\n        var _paq = (window._paq = window._paq || []);\n        _paq.push([\"trackPageView\"]);\n        _paq.push([\"enableLinkTracking\"]);\n        (function () {\n          var u = \"//matomo.envipath.com/\";\n          _paq.push([\"setTrackerUrl\", u + \"matomo.php\"]);\n          _paq.push([\"setSiteId\", \"1\"]);\n          var d = document,\n            g = d.createElement(\"script\"),\n            s = d.getElementsByTagName(\"script\")[0];\n          g.async = true;\n          g.src = u + \"matomo.js\";\n          s.parentNode.insertBefore(g, s);\n        })();\n      </script>\n      <!-- End Matomo Code -->\n    \n  </head>\n  <body class=\"bg-base-300 min-h-screen\">\n    \n\n<div class=\"drawer drawer-mobile\">\n  <input id=\"drawer-toggle\" type=\"checkbox\" class=\"drawer-toggle\" />\n  <div class=\"drawer-content flex flex-col\">\n    \n    <div class=\"navbar x-50 bg-neutral-50 text-neutral-950 shadow-lg\">\n      <div class=\"navbar-start\">\n        \n        \n        <a\n          href=\"https://envipath.org\"\n          class=\"btn btn-ghost text-xl normal-case\"\n        >\n          <svg class=\"fill-base-content h-8\" viewBox=\"0 0 104 26\" role=\"img\">\n            <use href=\"/static/images/logo-name.svg#ep-logo-name\" />\n          </svg>\n        </a>\n      </div>\n\n      \n\n      <div class=\"navbar-end\">\n        \n        \n          <div class=\"dropdown dropdown-end\">\n            <div\n              tabindex=\"0\"\n              role=\"button\"\n              class=\"btn btn-ghost btn-circle m-1\"\n              id=\"loggedInButton\"\n            >\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                width=\"24\"\n                height=\"24\"\n                viewBox=\"0 0 24 24\"\n                fill=\"none\"\n                stroke=\"currentColor\"\n                stroke-width=\"2\"\n                stroke-linecap=\"round\"\n                stroke-linejoin=\"round\"\n                class=\"lucide lucide-circle-user-icon lucide-circle-user\"\n              >\n                <circle cx=\"12\" cy=\"12\" r=\"10\" />\n                <circle cx=\"12\" cy=\"10\" r=\"3\" />\n                <path d=\"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662\" />\n              </svg>\n            </div>\n            <ul\n              tabindex=\"-1\"\n              class=\"dropdown-content menu bg-base-100 rounded-box z-50 w-52 p-2 shadow-sm\"\n            >\n              <li>\n                <a href=\"https://envipath.org/user/f3ce2e6a-b8c4-46d2-a6ed-6be4d8ae23fa\" id=\"accountbutton\">Settings</a>\n              </li>\n              <li>\n                <form\n                  id=\"logoutForm\"\n                  action=\"/logout\"\n                  method=\"post\"\n                  style=\"display: none;\"\n                >\n                  <input type=\"hidden\" name=\"csrfmiddlewaretoken\" value=\"3dgi9lgFiqWGDj7dFdvS82K6KfYCcsLfceQH7uxldzpFDtB4hLg5jKqHDumJf3FX\">\n                  <input type=\"hidden\" name=\"logout\" value=\"true\" />\n                </form>\n                <a\n                  href=\"#\"\n                  id=\"logoutButton\"\n                  onclick=\"event.preventDefault(); document.getElementById('logoutForm').submit();\"\n                  >Logout</a\n                >\n              </li>\n            </ul>\n          </div>\n        \n      </div>\n    </div>\n  </div>\n  \n  <div class=\"drawer-side\">\n    <label for=\"drawer-toggle\" class=\"drawer-overlay\"></label>\n    <ul class=\"menu min-h-full w-80 bg-base-200 p-4 text-base-content\">\n      \n      <li class=\"mb-4\">\n        <div class=\"flex items-center justify-between\">\n          <span class=\"font-bold text-lg\">Menu</span>\n          <label\n            for=\"drawer-toggle\"\n            class=\"btn btn-sm btn-circle btn-ghost\"\n            aria-label=\"Close menu\"\n          >\n            <svg\n              xmlns=\"http://www.w3.org/2000/svg\"\n              class=\"h-6 w-6\"\n              fill=\"none\"\n              viewBox=\"0 0 24 24\"\n              stroke=\"currentColor\"\n            >\n              <path\n                stroke-linecap=\"round\"\n                stroke-linejoin=\"round\"\n                stroke-width=\"2\"\n                d=\"M6 18L18 6M6 6l12 12\"\n              />\n            </svg>\n          </label>\n        </div>\n      </li>\n      \n    </ul>\n  </div>\n</div>\n\n<script>\n  // OS-aware search shortcut display\n  (function () {\n    const isMac = /Mac/.test(navigator.platform);\n    const shortcutElement = document.getElementById(\"search-shortcut\");\n    if (shortcutElement) {\n      shortcutElement.textContent = isMac ? \"⌘K\" : \"Ctrl+K\";\n    }\n  })();\n</script>\n\n\n    \n    <main class=\"w-full\">\n      \n        \n        \n\n        \n        <div\n          id=\"docContent\"\n          class=\"bg-base-100 mx-auto md:my-8 md:max-w-6xl md:rounded-lg md:shadow-xl\"\n        >\n          \n          \n\n          \n          \n  <div class=\"flex min-h-[60vh] flex-col items-center justify-center p-8\">\n    <div class=\"w-full max-w-2xl\">\n      <div class=\"alert alert-info mb-6 shadow-lg\">\n        <svg\n          xmlns=\"http://www.w3.org/2000/svg\"\n          class=\"h-8 w-8 shrink-0 stroke-current\"\n          fill=\"none\"\n          viewBox=\"0 0 24 24\"\n        >\n          <path\n            stroke-linecap=\"round\"\n            stroke-linejoin=\"round\"\n            stroke-width=\"2\"\n            d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n          />\n        </svg>\n        <div class=\"flex flex-col\">\n          <h3 class=\"text-lg font-bold\">Page Not Found</h3>\n          <p class=\"text-sm\">The page you're looking for doesn't exist.</p>\n        </div>\n      </div>\n\n      <div class=\"card bg-base-100 shadow-xl\">\n        <div class=\"card-body\">\n          <h2 class=\"card-title mb-4 text-2xl\">404 Error</h2>\n          <p class=\"text-base-content/70 mb-4\">\n            The page or resource you requested could not be found. It may have\n            been moved, deleted, or the URL might be incorrect.\n          </p>\n          <div class=\"card-actions mt-6 justify-end\">\n            <a href=\"/\" class=\"btn btn-primary\">\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                class=\"mr-2 h-5 w-5\"\n                fill=\"none\"\n                viewBox=\"0 0 24 24\"\n                stroke=\"currentColor\"\n              >\n                <path\n                  stroke-linecap=\"round\"\n                  stroke-linejoin=\"round\"\n                  stroke-width=\"2\"\n                  d=\"M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6\"\n                />\n              </svg>\n              Go Home\n            </a>\n            <a\n              href=\"https://wiki.envipath.org/index.php/packages\"\n              target=\"_blank\"\n              class=\"btn btn-outline\"\n            >\n              Learn More\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                class=\"ml-2 h-5 w-5\"\n                fill=\"none\"\n                viewBox=\"0 0 24 24\"\n                stroke=\"currentColor\"\n              >\n                <path\n                  stroke-linecap=\"round\"\n                  stroke-linejoin=\"round\"\n                  stroke-width=\"2\"\n                  d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n                />\n              </svg>\n            </a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n          \n          \n        </div>\n      \n    </main>\n\n    \n<div class=\"bg-base-300 text-base-content mx-auto mt-10 lg:max-w-5xl\">\n  <footer class=\"footer sm:footer-horizontal p-10\">\n    \n    <nav>\n      <h6 class=\"footer-title\">Company</h6>\n      <a class=\"link link-hover\" href=\"/about\" target=\"_blank\">About us</a>\n    </nav>\n    <nav>\n      <h6 class=\"footer-title\">Legal</h6>\n      <a class=\"link link-hover\" href=\"/terms\">Terms of use</a>\n      <a class=\"link link-hover\" href=\"/privacy\">Privacy policy</a>\n      <a class=\"link link-hover\" href=\"/cookie-policy\">Cookie policy</a>\n      <a class=\"link link-hover\" href=\"/cite\">Cite enviPath</a>\n    </nav>\n  </footer>\n  <footer class=\"footer border-t-2 border-neutral-300 px-10 py-4\">\n    <div class=\"flex w-full flex-row items-start justify-between\">\n      <aside class=\"grid-flow-col items-center\">\n        <svg\n          class=\"fill-neutral-content m-2 h-14 flex-shrink-0\"\n          viewbox=\"0 0 65 65\"\n        >\n          <use\n            href=\"/static/images/logo-square.svg#ep-logo-square\"\n          ></use>\n        </svg>\n\n        enviPath Ltd.\n        <br />\n        Biodegredation prediction since 2015.\n      </aside>\n      <aside class=\"text-base-200 mt-2 text-sm\">\n        <span class=\"text-xs tracking-tight\">Version</span>\n        <span class=\"text-base font-bold\">0.0.1</span>\n      </aside>\n    </div>\n    <nav class=\"md:place-self-center md:justify-self-end\">\n      <div class=\"grid grid-flow-col gap-4\">\n        <a href=\"https://www.youtube.com/@envipath7231\" target=\"_blank\">\n          <svg\n            role=\"img\"\n            viewBox=\"0 0 24 24\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            class=\"h-6 w-6 fill-current\"\n          >\n            <title>YouTube</title>\n            <path\n              d=\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\"\n            />\n          </svg>\n        </a>\n        <a href=\"https://community.envipath.org/\" target=\"_blank\">\n          <svg\n            role=\"img\"\n            viewBox=\"0 0 24 24\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            class=\"h-6 w-6 fill-current\"\n          >\n            <title>Discourse</title>\n            <path\n              d=\"M12.103 0C18.666 0 24 5.485 24 11.997c0 6.51-5.33 11.99-11.9 11.99L0 24V11.79C0 5.28 5.532 0 12.103 0zm.116 4.563c-2.593-.003-4.996 1.352-6.337 3.57-1.33 2.208-1.387 4.957-.148 7.22L4.4 19.61l4.794-1.074c2.745 1.225 5.965.676 8.136-1.39 2.17-2.054 2.86-5.228 1.737-7.997-1.135-2.778-3.84-4.59-6.84-4.585h-.008z\"\n            />\n          </svg>\n        </a>\n        <a href=\"https://www.linkedin.com/company/envipath/\" target=\"_blank\">\n          <img\n            src=\"/static/images/linkedin.png\"\n            alt=\"LinkedIn\"\n            class=\"h-6 w-6\"\n          />\n        </a>\n      </div>\n    </nav>\n  </footer>\n</div>\n\n\n    \n    \n\n    \n      <dialog\n  id=\"search_modal\"\n  class=\"modal items-start sm:items-center\"\n  x-data=\"searchModal()\"\n  @close=\"reset()\"\n>\n  <div class=\"modal-box mt-4 sm:mt-0 p-1 sm:h-8/12 sm:w-[85vw] sm:max-w-5xl\">\n    <!-- Search Input and Mode Selector -->\n    <div class=\"form-control mb-4 w-full shrink-0\">\n      <div class=\"join m-0 w-full items-center p-3\">\n        <label class=\"input join-item input-ghost grow\">\n          <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width=\"16\"\n            height=\"16\"\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            stroke-width=\"2\"\n            stroke-linecap=\"round\"\n            stroke-linejoin=\"round\"\n            class=\"lucide lucide-search-icon lucide-search\"\n          >\n            <path d=\"m21 21-4.34-4.34\" />\n            <circle cx=\"11\" cy=\"11\" r=\"8\" />\n          </svg>\n          <input\n            type=\"text\"\n            autofocus\n            x-ref=\"searchbar\"\n            x-model=\"query\"\n            @keydown.enter=\"performSearch('')\"\n            placeholder=\"Benfuracarb\"\n            class=\"grow\"\n            aria-label=\"Search\"\n          />\n        </label>\n\n        <!-- Mode Dropdown -->\n        <div>\n          <button\n            type=\"button\"\n            tabindex=\"0\"\n            popovertarget=\"search_dropdown_menu\"\n            style=\"anchor-name: --anchor-mode\"\n            class=\"btn join-item btn-ghost\"\n          >\n            <span x-text=\"searchModeLabel\"></span>\n            <svg\n              class=\"ml-1 h-4 w-4\"\n              fill=\"none\"\n              stroke=\"currentColor\"\n              viewBox=\"0 0 24 24\"\n            >\n              <path\n                stroke-linecap=\"round\"\n                stroke-linejoin=\"round\"\n                stroke-width=\"2\"\n                d=\"M19 9l-7 7-7-7\"\n              />\n            </svg>\n          </button>\n          <ul\n            tabindex=\"0\"\n            class=\"dropdown dropdown-end menu bg-base-200 rounded-box w-64 p-2 shadow-lg\"\n            popover\n            x-ref=\"modeDropdown\"\n            id=\"search_dropdown_menu\"\n            style=\"position-anchor: --anchor-mode\"\n          >\n            <li class=\"menu-title\">Text</li>\n            <li>\n              <a\n                @click.prevent=\"setSearchMode('text', 'Text')\"\n                class=\"tooltip tooltip-left\"\n                data-tip=\"Search on object names and descriptions\"\n              >\n                Text\n              </a>\n            </li>\n            <li class=\"menu-title\">SMILES</li>\n            <li>\n              <a\n                @click.prevent=\"setSearchMode('smiles_default', 'Default')\"\n                class=\"tooltip tooltip-left\"\n                data-tip=\"Ignores stereochemistry and charge\"\n              >\n                Default\n              </a>\n            </li>\n            <li>\n              <a\n                @click.prevent=\"setSearchMode('smiles_canonical', 'Canonical')\"\n                class=\"tooltip tooltip-left\"\n                data-tip=\"Ignores stereochemistry, preserves charge\"\n              >\n                Canonical\n              </a>\n            </li>\n            <li>\n              <a\n                @click.prevent=\"setSearchMode('smiles_exact', 'Exact')\"\n                class=\"tooltip tooltip-left\"\n                data-tip=\"Exact match for stereochemistry and charge\"\n              >\n                Exact\n              </a>\n            </li>\n            <li class=\"menu-title\">InChI</li>\n            <li>\n              <a\n                @click.prevent=\"setSearchMode('inchikey', 'InChIKey')\"\n                class=\"tooltip tooltip-left\"\n                data-tip=\"Search by InChIKey\"\n              >\n                InChIKey\n              </a>\n            </li>\n          </ul>\n        </div>\n\n        <button\n          type=\"button\"\n          @click=\"performSearch('')\"\n          class=\"btn btn-xs btn-ghost join-item\"\n        >\n          <kbd class=\"kbd kbd-sm text-base-content/50 p-1\">\n            <svg\n              xmlns=\"http://www.w3.org/2000/svg\"\n              width=\"16\"\n              height=\"16\"\n              viewBox=\"0 0 24 24\"\n              fill=\"none\"\n              stroke=\"currentColor\"\n              stroke-width=\"2\"\n              stroke-linecap=\"round\"\n              stroke-linejoin=\"round\"\n              class=\"lucide lucide-corner-down-left-icon lucide-corner-down-left\"\n            >\n              <path d=\"M20 4v7a4 4 0 0 1-4 4H4\" />\n              <path d=\"m9 10-5 5 5 5\" />\n            </svg>\n          </kbd>\n        </button>\n      </div>\n    </div>\n\n    <!-- Package Selector with Pills -->\n    <div class=\"form-control mb-4 shrink-0\">\n      <!-- Pills Container -->\n      <div\n        class=\"border-base-300 m-3 flex min-h-12 flex-wrap items-center gap-2 rounded-lg border-2 border-dashed p-3\"\n      >\n        <!-- Dynamic Pills -->\n        <template x-for=\"pkg in selectedPackages\" :key=\"pkg.url\">\n          <span class=\"badge badge-outline gap-2 max-w-xs\">\n            <span class=\"truncate\" :title=\"pkg.name\" x-text=\"pkg.name\"></span>\n            <svg\n              xmlns=\"http://www.w3.org/2000/svg\"\n              class=\"h-4 w-4 cursor-pointer hover:text-error shrink-0 rotate-45\"\n              viewBox=\"0 0 24 24\"\n              fill=\"none\"\n              stroke=\"currentColor\"\n              stroke-width=\"2\"\n              stroke-linecap=\"round\"\n              stroke-linejoin=\"round\"\n              @click=\"removePackage(pkg.url)\"\n            >\n              <path d=\"M5 12h14\" />\n              <path d=\"M12 5v14\" />\n            </svg>\n          </span>\n        </template>\n\n        <!-- Add Package Button -->\n        <button\n          type=\"button\"\n          popovertarget=\"package_dropdown_menu\"\n          style=\"anchor-name: --anchor-packages\"\n          class=\"btn btn-sm btn-ghost gap-2 text-base-content/50\"\n        >\n          <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width=\"16\"\n            height=\"16\"\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            stroke-width=\"2\"\n            stroke-linecap=\"round\"\n            stroke-linejoin=\"round\"\n            class=\"lucide lucide-plus-icon lucide-plus\"\n          >\n            <path d=\"M5 12h14\" />\n            <path d=\"M12 5v14\" />\n          </svg>\n          Add Package\n        </button>\n      </div>\n\n      <!-- Package Dropdown Menu -->\n      <ul\n        class=\"dropdown dropdown-center menu bg-base-200 rounded-box max-h-96 w-80 overflow-y-auto p-2 shadow-lg\"\n        popover\n        x-ref=\"packageDropdown\"\n        id=\"package_dropdown_menu\"\n        style=\"position-anchor: --anchor-packages\"\n      >\n        \n          <li class=\"menu-title\">Reviewed Packages</li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\"\n                data-package-name=\"EAWAG-BBD\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/32de3cf4-e3e6-4168-956e-32fa5ddb0ce1', 'EAWAG-BBD')\"\n              >\n                <span>EAWAG-BBD</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/32de3cf4-e3e6-4168-956e-32fa5ddb0ce1') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/f05e38d8-e9b4-4c3e-b0d8-9ab29966eccf\"\n                data-package-name=\"EAWAG-SEDIMENT\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/f05e38d8-e9b4-4c3e-b0d8-9ab29966eccf', 'EAWAG-SEDIMENT')\"\n              >\n                <span>EAWAG-SEDIMENT</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/f05e38d8-e9b4-4c3e-b0d8-9ab29966eccf') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/521c547a-fd2a-491c-ad5b-7eaa1577fb65\"\n                data-package-name=\"EAWAG-SLUDGE\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/521c547a-fd2a-491c-ad5b-7eaa1577fb65', 'EAWAG-SLUDGE')\"\n              >\n                <span>EAWAG-SLUDGE</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/521c547a-fd2a-491c-ad5b-7eaa1577fb65') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/5882df9c-dae1-4d80-a40e-db4724271456\"\n                data-package-name=\"EAWAG-SOIL\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/5882df9c-dae1-4d80-a40e-db4724271456', 'EAWAG-SOIL')\"\n              >\n                <span>EAWAG-SOIL</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/5882df9c-dae1-4d80-a40e-db4724271456') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/134886bb-b52e-4ad6-91d3-a02cecde6d95\"\n                data-package-name=\"Public Prediction Models\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/134886bb-b52e-4ad6-91d3-a02cecde6d95', 'Public Prediction Models')\"\n              >\n                <span>Public Prediction Models</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/134886bb-b52e-4ad6-91d3-a02cecde6d95') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/87a49584-d937-482c-9c33-25928dcb02a8\"\n                data-package-name=\"enviPath-PFAS\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/87a49584-d937-482c-9c33-25928dcb02a8', 'enviPath-PFAS')\"\n              >\n                <span>enviPath-PFAS</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/87a49584-d937-482c-9c33-25928dcb02a8') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n          <li class=\"menu-title\">Unreviewed Packages</li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/5b594bf6-56a8-4ce5-9a63-5fd4b525756e\"\n                data-package-name=\"Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/5b594bf6-56a8-4ce5-9a63-5fd4b525756e', 'Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620')\"\n              >\n                <span>Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/5b594bf6-56a8-4ce5-9a63-5fd4b525756e') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/aee2524b-79f3-4640-a519-aac543ac05e3\"\n                data-package-name=\"RiboRings’ Package\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/aee2524b-79f3-4640-a519-aac543ac05e3', 'RiboRings’ Package')\"\n              >\n                <span>RiboRings’ Package</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/aee2524b-79f3-4640-a519-aac543ac05e3') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/7a3bddd7-c1a2-4699-a885-8b9044fd4fe2\"\n                data-package-name=\"Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/7a3bddd7-c1a2-4699-a885-8b9044fd4fe2', 'Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194')\"\n              >\n                <span>Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/7a3bddd7-c1a2-4699-a885-8b9044fd4fe2') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/d1898032-350b-438a-a702-63906c7ed76a\"\n                data-package-name=\"32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/d1898032-350b-438a-a702-63906c7ed76a', '32de3cf4-e3e6-4168-956e-32fa5ddb0ce1')\"\n              >\n                <span>32de3cf4-e3e6-4168-956e-32fa5ddb0ce1</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/d1898032-350b-438a-a702-63906c7ed76a') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/995230c9-167a-4108-8002-d8fadd242dff\"\n                data-package-name=\"Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/995230c9-167a-4108-8002-d8fadd242dff', 'Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931')\"\n              >\n                <span>Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/995230c9-167a-4108-8002-d8fadd242dff') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/c3c6699a-8c78-4987-af4d-4a041ffc448d\"\n                data-package-name=\"Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/c3c6699a-8c78-4987-af4d-4a041ffc448d', 'Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909')\"\n              >\n                <span>Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/c3c6699a-8c78-4987-af4d-4a041ffc448d') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n            <li>\n              <a\n                class=\"package-option flex items-center justify-between\"\n                data-package-url=\"https://envipath.org/package/7245f711-51d0-4b1e-b49d-99a9d9744c96\"\n                data-package-name=\"32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\"\n                @click.prevent.stop=\"togglePackage('https://envipath.org/package/7245f711-51d0-4b1e-b49d-99a9d9744c96', '32de3cf4-e3e6-4168-956e-32fa5ddb0ce1')\"\n              >\n                <span>32de3cf4-e3e6-4168-956e-32fa5ddb0ce1</span>\n                <svg\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                  class=\"h-4 w-4\"\n                  :class=\"isPackageSelected('https://envipath.org/package/7245f711-51d0-4b1e-b49d-99a9d9744c96') ? '' : 'hidden'\"\n                  fill=\"none\"\n                  viewBox=\"0 0 24 24\"\n                  stroke=\"currentColor\"\n                >\n                  <path\n                    stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M5 13l4 4L19 7\"\n                  />\n                </svg>\n              </a>\n            </li>\n          \n        \n      </ul>\n    </div>\n\n    <!-- Loading Indicator -->\n    <div x-show=\"isSearching\" class=\"flex shrink-0 justify-center py-8\">\n      <span class=\"loading loading-spinner loading-lg text-primary\"></span>\n    </div>\n\n    <!-- Results Container -->\n    <div class=\"min-h-0 flex-1 overflow-y-auto p-2\">\n      <!-- No packages selected error -->\n      <template x-if=\"results && results.error === 'no_packages'\">\n        <div class=\"alert alert-info\">\n          <svg\n            class=\"w-6 h-6\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            viewBox=\"0 0 24 24\"\n          >\n            <path\n              stroke-linecap=\"round\"\n              stroke-linejoin=\"round\"\n              stroke-width=\"2\"\n              d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n            />\n          </svg>\n          <span>Please select at least one package</span>\n        </div>\n      </template>\n\n      <!-- Search error -->\n      <template x-if=\"error\">\n        <div class=\"alert alert-error\">\n          <svg\n            class=\"w-6 h-6\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            viewBox=\"0 0 24 24\"\n          >\n            <path\n              stroke-linecap=\"round\"\n              stroke-linejoin=\"round\"\n              stroke-width=\"2\"\n              d=\"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n            />\n          </svg>\n          <span x-text=\"error\"></span>\n        </div>\n      </template>\n\n      <!-- No results -->\n      <template x-if=\"results && !results.error && !hasResults()\">\n        <div class=\"alert alert-warning\">\n          <svg\n            class=\"w-6 h-6\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            viewBox=\"0 0 24 24\"\n          >\n            <path\n              stroke-linecap=\"round\"\n              stroke-linejoin=\"round\"\n              stroke-width=\"2\"\n              d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n            />\n          </svg>\n          <span>No results found</span>\n        </div>\n      </template>\n\n      <!-- Results display -->\n      <template x-if=\"results && !results.error && hasResults()\">\n        <div class=\"mb-2\">\n          <div class=\"text-sm font-semibold text-base-content/70 mb-2\">\n            Results\n          </div>\n\n          <!-- Compounds -->\n          <template x-if=\"results.Compounds && results.Compounds.length > 0\">\n            <div class=\"collapse collapse-arrow bg-base-200 mb-2\">\n              <input type=\"checkbox\" checked />\n              <div class=\"collapse-title font-medium\">\n                Compounds\n                <span\n                  class=\"badge badge-neutral badge-sm ml-2\"\n                  x-text=\"results.Compounds.length\"\n                ></span>\n              </div>\n              <div class=\"collapse-content\">\n                <template x-for=\"item in results.Compounds\" :key=\"item.url\">\n                  <a\n                    :href=\"item.url\"\n                    class=\"block px-4 py-2 hover:bg-base-300 rounded-lg transition-colors\"\n                    x-text=\"item.name\"\n                  ></a>\n                </template>\n              </div>\n            </div>\n          </template>\n\n          <!-- Compound Structures -->\n          <template\n            x-if=\"results['Compound Structures'] && results['Compound Structures'].length > 0\"\n          >\n            <div class=\"collapse collapse-arrow bg-base-200 mb-2\">\n              <input type=\"checkbox\" checked />\n              <div class=\"collapse-title font-medium\">\n                Compound Structures\n                <span\n                  class=\"badge badge-neutral badge-sm ml-2\"\n                  x-text=\"results['Compound Structures'].length\"\n                ></span>\n              </div>\n              <div class=\"collapse-content\">\n                <template\n                  x-for=\"item in results['Compound Structures']\"\n                  :key=\"item.url\"\n                >\n                  <a\n                    :href=\"item.url\"\n                    class=\"block px-4 py-2 hover:bg-base-300 rounded-lg transition-colors\"\n                    x-text=\"item.name\"\n                  ></a>\n                </template>\n              </div>\n            </div>\n          </template>\n\n          <!-- Rules -->\n          <template x-if=\"results.Rules && results.Rules.length > 0\">\n            <div class=\"collapse collapse-arrow bg-base-200 mb-2\">\n              <input type=\"checkbox\" checked />\n              <div class=\"collapse-title font-medium\">\n                Rules\n                <span\n                  class=\"badge badge-neutral badge-sm ml-2\"\n                  x-text=\"results.Rules.length\"\n                ></span>\n              </div>\n              <div class=\"collapse-content\">\n                <template x-for=\"item in results.Rules\" :key=\"item.url\">\n                  <a\n                    :href=\"item.url\"\n                    class=\"block px-4 py-2 hover:bg-base-300 rounded-lg transition-colors\"\n                    x-text=\"item.name\"\n                  ></a>\n                </template>\n              </div>\n            </div>\n          </template>\n\n          <!-- Reactions -->\n          <template x-if=\"results.Reactions && results.Reactions.length > 0\">\n            <div class=\"collapse collapse-arrow bg-base-200 mb-2\">\n              <input type=\"checkbox\" checked />\n              <div class=\"collapse-title font-medium\">\n                Reactions\n                <span\n                  class=\"badge badge-neutral badge-sm ml-2\"\n                  x-text=\"results.Reactions.length\"\n                ></span>\n              </div>\n              <div class=\"collapse-content\">\n                <template x-for=\"item in results.Reactions\" :key=\"item.url\">\n                  <a\n                    :href=\"item.url\"\n                    class=\"block px-4 py-2 hover:bg-base-300 rounded-lg transition-colors\"\n                    x-text=\"item.name\"\n                  ></a>\n                </template>\n              </div>\n            </div>\n          </template>\n\n          <!-- Pathways -->\n          <template x-if=\"results.Pathways && results.Pathways.length > 0\">\n            <div class=\"collapse collapse-arrow bg-base-200 mb-2\">\n              <input type=\"checkbox\" checked />\n              <div class=\"collapse-title font-medium\">\n                Pathways\n                <span\n                  class=\"badge badge-neutral badge-sm ml-2\"\n                  x-text=\"results.Pathways.length\"\n                ></span>\n              </div>\n              <div class=\"collapse-content\">\n                <template x-for=\"item in results.Pathways\" :key=\"item.url\">\n                  <a\n                    :href=\"item.url\"\n                    class=\"block px-4 py-2 hover:bg-base-300 rounded-lg transition-colors\"\n                    x-text=\"item.name\"\n                  ></a>\n                </template>\n              </div>\n            </div>\n          </template>\n        </div>\n      </template>\n    </div>\n  </div>\n\n  <form method=\"dialog\" class=\"modal-backdrop\">\n    <button aria-label=\"close\"></button>\n  </form>\n</dialog>\n\n    \n\n    <script>\n      document.addEventListener(\"DOMContentLoaded\", function () {\n        // Show actions button if there are actions defined\n        const actionsButtonUl = document.querySelector(\"#actionsButton ul\");\n        if (actionsButtonUl && actionsButtonUl.children.length > 0) {\n          document.getElementById(\"actionsButton\").style.display = \"\";\n        }\n      });\n\n      // Open search modal function\n      function openSearchModal() {\n        const searchModal = document.getElementById(\"search_modal\");\n        if (searchModal) {\n          searchModal.showModal();\n        }\n      }\n\n      // Click handler for search badge\n      const searchTrigger = document.getElementById(\"search-trigger\");\n      if (searchTrigger) {\n        searchTrigger.addEventListener(\"click\", function (event) {\n          event.preventDefault();\n          openSearchModal();\n        });\n      }\n\n      // Global keyboard shortcut for search (Cmd+K on Mac, Ctrl+K on Windows/Linux)\n      document.addEventListener(\"keydown\", function (event) {\n        // Check if user is typing in an input field\n        const activeElement = document.activeElement;\n        const isInputField =\n          activeElement &&\n          (activeElement.tagName === \"INPUT\" ||\n            activeElement.tagName === \"TEXTAREA\" ||\n            activeElement.contentEditable === \"true\");\n\n        if (isInputField) {\n          return; // Don't trigger shortcut when typing in input fields\n        }\n\n        // Check for Cmd+K (Mac) or Ctrl+K (Windows/Linux)\n        const isMac = /Mac/.test(navigator.platform);\n        const isCorrectModifier = isMac ? event.metaKey : event.ctrlKey;\n\n        if (isCorrectModifier && event.key === \"k\") {\n          event.preventDefault();\n          openSearchModal();\n        }\n      });\n    </script>\n  </body>\n</html>\n"), 
    timing = c(redirect = 0, namelookup = 0.020328, connect = 0.232652, 
    pretransfer = 0.441409, starttransfer = 0.714779, total = 0.715411
    ), cache = new.env(parent = emptyenv())), class = "httr2_response")

Try the enviPathR package in your browser

Any scripts or data that you put into this service are public.

enviPathR documentation built on Oct. 14, 2026, 5:07 p.m.