{"version":3,"file":"siteMetadata.D8c-eGoh.mjs","names":[],"sources":["https:/framerusercontent.com/modules/boyWKo9PK9nctKfIb0Us/ffIORe5iD8vvbNDWZAWb/siteMetadata.js"],"sourcesContent":["// Generated by Framer (c2a8602)\nexport default function metadata(params,activeLocale){return{customHTMLBodyStart:'<!-- Google Tag Manager (noscript) -->\\n<noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-W4W3DP6\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe></noscript>\\n<!-- End Google Tag Manager (noscript) -->',customHTMLHeadEnd:'<script>\\n  const utmKeys = [\"source\", \"medium\", \"campaign\", \"term\", \"content\"];\\n\\n// read a cookie (null if missing)\\nfunction getCookie(name) {\\n  const cookies = document.cookie.split(\";\");\\n  for (let cookie of cookies) {\\n    const [key, ...valueParts] = cookie.trim().split(\"=\");\\n    if (key === name) {\\n      return decodeURIComponent(valueParts.join(\"=\"));\\n    }\\n  }\\n  return null;\\n}\\n\\n// write a cookie with proper attributes\\n// - works on HTTPS and HTTP (Secure only on HTTPS)\\n// - adds Domain so the cookie is available to sibling sub‑domains\\nfunction setCookie(name, value, days = 30, options = {}) {\\n  const d = new Date();\\n  d.setTime(d.getTime() + days * 24 * 60 * 60 * 1000);\\n\\n  const opts = {\\n    Path: \"/\",\\n    Expires: d.toUTCString(),\\n    Secure: window.location.protocol === \"https:\",\\n    SameSite: \"Strict\",\\n    // cross‑subdomain: default to the current host, caller can override\\n    Domain: options.domain || window.location.hostname,\\n    ...options,\\n  };\\n\\n  let cookieStr = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\\n  for (const [k, v] of Object.entries(opts)) {\\n    cookieStr += v === true ? `; ${k}` : `; ${k}=${v}`;\\n  }\\n  document.cookie = cookieStr;\\n}\\n\\n// collect only UTM cookies, keep referrer separate\\nfunction getTrackingCookies() {\\n  const utmCookies = {};\\n\\n  utmKeys.forEach((key) => {\\n    utmCookies[`utm_${key}`] = getCookie(`utm_${key}`);\\n  });\\n\\n  return {\\n    utm: utmCookies,\\n    referrer: getCookie(\"referrer\"),\\n  };\\n}\\n\\n// add tracking parameters to a URL and return the modified URL\\nfunction addTrackingParamsToUrl(url, { utm, referrer }) {\\n  try {\\n    const urlObj = new URL(url, window.location.href);\\n\\n    // append only UTM parameters\\n    Object.entries(utm).forEach(([key, value]) => {\\n      if (value && !urlObj.searchParams.has(key)) {\\n        urlObj.searchParams.set(key, value);\\n      }\\n    });\\n\\n    // fallback: referrer -> utm_source\\n    if (referrer && !urlObj.searchParams.has(\"utm_source\")) {\\n      urlObj.searchParams.set(\"utm_source\", referrer);\\n    }\\n\\n    return urlObj.toString();\\n  } catch (e) {\\n    // console.error(\"Error adding tracking params to URL:\", e, url);\\n    return url; // return original URL if there\\'s an error\\n  }\\n}\\n\\n// update all Calendly links\\nfunction updateCalendlyLinks(trackingData) {\\n  document.querySelectorAll(\"a[href*=\\'calendly.com\\']\").forEach((el) => {\\n    el.href = addTrackingParamsToUrl(el.href, trackingData);\\n  });\\n}\\n\\n// update all HubSpot links\\nfunction updateHubSpotLinks(trackingData) {\\n  document\\n    .querySelectorAll(\\n      \"a[href*=\\'hubspot.com\\'], a[href*=\\'hs-sites.com\\'], a[href*=\\'hubspotpagebuilder.com\\']\"\\n    )\\n    .forEach((el) => {\\n      el.href = addTrackingParamsToUrl(el.href, trackingData);\\n    });\\n}\\n\\nlet trackingCookies = null;\\n\\n// capture UTM params (set once) - can run immediately\\nconst params = new URLSearchParams(window.location.search);\\nutmKeys.forEach((key) => {\\n  const name = `utm_${key}`;\\n  const val = params.get(name);\\n  if (val && !getCookie(name)) {\\n    setCookie(name, val);\\n  }\\n});\\n\\n// capture referrer (clean hostname only) - can run immediately\\nif (document.referrer && !getCookie(\"referrer\")) {\\n  const { hostname } = new URL(document.referrer);\\n  const domain = hostname.replace(/^www\\\\./i, \"\");\\n  setCookie(\"referrer\", domain);\\n}\\n\\n// get tracking cookies - can run immediately after setting them\\ntrackingCookies = getTrackingCookies();\\n\\ndocument.addEventListener(\"DOMContentLoaded\", () => {\\n  // patch Calendly and HubSpot links - requires DOM to be loaded\\n  updateCalendlyLinks(trackingCookies);\\n  updateHubSpotLinks(trackingCookies);\\n});\\n\\n// expose to window with unique namespace\\nwindow.cksmTrackingCookies = trackingCookies;\\nwindow.cksmAddTrackingParamsToUrl = addTrackingParamsToUrl;\\n\\n  </script>',customHTMLHeadStart:\"<!-- Google Tag Manager -->\\n<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\\nnew Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\\nj=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\\n})(window,document,'script','dataLayer','GTM-W4W3DP6');</script>\\n<!-- End Google Tag Manager -->\",description:\"Checksum turns your user sessions into a full testing automation pipeline, so you can ship fast without reducing quality.\",favicon:\"https://framerusercontent.com/assets/t5ppdW3uAiIcbmKEY0LePQLk.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/FjCol2EYAPMuhZuyPZMd3ccMj5s.png\",title:\"Checksum.ai - E2E test automation based on real user behavior\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"2DACA,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,oBAAoB;;4CAAuP,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAA2yH,oBAAoB;;;;;;iCAA2a,YAAY,4HAA4H,QAAQ,oEAAoE,OAAO,0BAA0B,YAAY,uEAAuE,MAAM,gEAAgE"}