Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 37 additions & 27 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,83 +1,93 @@
version: 2
updates:
# Enable version updates for base npm
# Base npm
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
groups:
base-npm:
patterns:
- "*"
patterns: ["*"]
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-patch"]
# Enable version updates for GitHub Actions
update-types:
- "version-update:semver-minor"
- "version-update:semver-patch"
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
groups:
actions:
patterns:
- "*"
# Enable version updates for automations uv
patterns: ["*"]
ignore:
- dependency-name: "*"
update-types:
- "version-update:semver-minor"
- "version-update:semver-patch"
# Automations (uv)
- package-ecosystem: "uv"
directory: "/automations/"
schedule:
interval: "weekly"
groups:
automations-uv:
patterns:
- "*"
patterns: ["*"]
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-patch"]
# Enable version updates for examples uv
update-types:
- "version-update:semver-minor"
- "version-update:semver-patch"
# Examples (python / uv)
- package-ecosystem: "uv"
directory: "/examples/developer-hub-python/"
schedule:
interval: "weekly"
groups:
examples-uv:
patterns:
- "*"
patterns: ["*"]
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-patch"]
# Enable version updates for examples js
update-types:
- "version-update:semver-minor"
- "version-update:semver-patch"
# Examples (js / npm)
- package-ecosystem: "npm"
directory: "/examples/developer-hub-javascript/"
schedule:
interval: "weekly"
groups:
examples-js:
patterns:
- "*"
patterns: ["*"]
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-patch"]
# Enable version updates for examples go
update-types:
- "version-update:semver-minor"
- "version-update:semver-patch"
# Examples (go / gomod)
- package-ecosystem: "gomod"
directory: "/examples/developer-hub-go/"
schedule:
interval: "weekly"
groups:
examples-go:
patterns:
- "*"
patterns: ["*"]
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-patch"]
# Enable version updates for examples rust
update-types:
- "version-update:semver-minor"
- "version-update:semver-patch"
# Examples (rust / cargo)
- package-ecosystem: "cargo"
directory: "/examples/developer-hub-rust/"
schedule:
interval: "weekly"
groups:
examples-rust:
patterns:
- "*"
patterns: ["*"]
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-patch"]
update-types:
- "version-update:semver-minor"
- "version-update:semver-patch"
78 changes: 55 additions & 23 deletions static/js/cookie-loader.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,58 @@
// Wait for the page to be fully loaded and interactive
document.addEventListener("DOMContentLoaded", function () {
// Check if we already have consent to avoid showing the banner unnecessarily
if (document.cookie.indexOf("cookieyes-consent") !== -1) {
// If we already have consent, load the CookieYes script immediately
loadCookieScript();
return;
(function () {
const COOKIEYES_ID = "cookieyes";
const COOKIEYES_SRC =
"https://cdn-cookieyes.com/client_data/dedcd40fe7e8316d7512b294/script.js";
const FALLBACK_DELAY_MS = 2000;

function hasCookie(name) {
const cookies = document.cookie ? document.cookie.split(";") : [];
const prefix = `${encodeURIComponent(name)}=`;

for (const c of cookies) {
const trimmed = c.trim();
if (trimmed.startsWith(prefix)) return true;
}
return false;
}

// If we don't have consent yet, delay loading the cookie banner
// This ensures it doesn't compete with critical content
setTimeout(function () {
loadCookieScript();
}, 2000); // 2-second delay to improve LCP
});

// Function to load the CookieYes script
function loadCookieScript() {
const script = document.createElement("script");
script.defer = true;
script.id = "cookieyes";
script.src =
"https://cdn-cookieyes.com/client_data/dedcd40fe7e8316d7512b294/script.js";
function alreadyInjected() {
return (
document.getElementById(COOKIEYES_ID) != null ||
Array.from(document.scripts).some((s) => s.src === COOKIEYES_SRC)
);
}

function loadCookieScript() {
if (alreadyInjected()) return;

const script = document.createElement("script");
script.id = COOKIEYES_ID;
script.src = COOKIEYES_SRC;
script.async = true;

document.body.appendChild(script);
}
(document.head || document.documentElement).appendChild(script);
}

function scheduleLoad() {
if (hasCookie("cookieyes-consent")) {
loadCookieScript();
return;
}

// Minimize impact on LCP/INP
if (typeof window.requestIdleCallback === "function") {
window.requestIdleCallback(() => loadCookieScript(), {
timeout: FALLBACK_DELAY_MS,
});
} else {
window.setTimeout(loadCookieScript, FALLBACK_DELAY_MS);
}
}

// Handle all states safely
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", scheduleLoad, { once: true });
} else {
scheduleLoad();
}
})();
Loading