From 3ff7ca4155f5e9f03e2304b33a89de4b0a6aaa2c Mon Sep 17 00:00:00 2001
From: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 28 Sep 2025 20:45:18 +0000
Subject: [PATCH] chore(deps): bump sigstore/cosign-installer in the ci-dependencies group (#2135)
---
quartz/components/scripts/util.ts | 27 ++++++++++++++++++++++++---
1 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/quartz/components/scripts/util.ts b/quartz/components/scripts/util.ts
index a97faa6..f717901 100644
--- a/quartz/components/scripts/util.ts
+++ b/quartz/components/scripts/util.ts
@@ -3,6 +3,7 @@
function click(this: HTMLElement, e: HTMLElementEventMap["click"]) {
if (e.target !== this) return
e.preventDefault()
+ e.stopPropagation()
cb()
}
@@ -12,10 +13,10 @@
cb()
}
- outsideContainer?.removeEventListener("click", click)
outsideContainer?.addEventListener("click", click)
- document.removeEventListener("keydown", esc)
- document.addEventListener('keydown', esc)
+ window.addCleanup(() => outsideContainer?.removeEventListener("click", click))
+ document.addEventListener("keydown", esc)
+ window.addCleanup(() => document.removeEventListener("keydown", esc))
}
export function removeAllChildren(node: HTMLElement) {
@@ -23,3 +24,23 @@
node.removeChild(node.firstChild)
}
}
+
+// AliasRedirect emits HTML redirects which also have the link[rel="canonical"]
+// containing the URL it's redirecting to.
+// Extracting it here with regex is _probably_ faster than parsing the entire HTML
+// with a DOMParser effectively twice (here and later in the SPA code), even if
+// way less robust - we only care about our own generated redirects after all.
+const canonicalRegex = /<link rel="canonical" href="([^"]*)">/
+
+export async function fetchCanonical(url: URL): Promise<Response> {
+ const res = await fetch(`${url}`)
+ if (!res.headers.get("content-type")?.startsWith("text/html")) {
+ return res
+ }
+
+ // reading the body can only be done once, so we need to clone the response
+ // to allow the caller to read it if it's was not a redirect
+ const text = await res.clone().text()
+ const [_, redirect] = text.match(canonicalRegex) ?? []
+ return redirect ? fetch(`${new URL(redirect, url)}`) : res
+}
--
Gitblit v1.10.0