{"version":3,"file":"cookies-client-side.mjs","sources":["../../../packages/utils/cookies-client-side.ts"],"sourcesContent":["import { UAParser } from 'ua-parser-js'\nimport { getTopLevelDomain } from './get-top-level-domain.js'\n\nconst parser = new UAParser()\n\nconst setSecureCookie = (cookie: string) => {\n  // 1. we want this cookie to be available on HTTP websites too.\n  // 2. there is a bug on localhost which causes Chrome to ignore cookies set without Secure,\n  // and Safari when cookies are set with Secure, so we're forcing cookie into both\n  if (parser.getBrowser()?.name?.toLowerCase() === 'safari') {\n    if (window.location.protocol !== 'https:') {\n      document.cookie = cookie\n    } else {\n      document.cookie = `${cookie}Secure;`\n    }\n  } else {\n    document.cookie = `${cookie}Secure;`\n  }\n}\n\n// :)\nconst prepareForCookingCookie = (\n  key: string,\n  value: string,\n  expire = 365,\n): string => {\n  return `${key}=${value};expires=${expire};path=/;samesite=None;`\n}\n\nexport const setCrossDomainCookieClientSide = (\n  key: string,\n  value: string,\n  expire = 365,\n): void => {\n  if (typeof window === 'undefined') {\n    return\n  }\n\n  setSecureCookie(\n    `${prepareForCookingCookie(\n      key,\n      value,\n      expire,\n    )}domain=${getTopLevelDomain()};`,\n  )\n}\n\nexport const setDomainCookieClientSide = (\n  key: string,\n  value: string,\n  expire = 365,\n): void => {\n  if (typeof window === 'undefined') {\n    return\n  }\n\n  setSecureCookie(prepareForCookingCookie(key, value, expire))\n}\n\nexport const getCrossDomainCookieClientSide = (key: string): string | null => {\n  const defaultValue = null\n\n  if (typeof window === 'undefined') {\n    return defaultValue\n  }\n\n  const cookieMatcher = new RegExp(`(^| )${key}=([^;]+)`)\n  return (document.cookie.match(cookieMatcher)?.[2] as string) ?? defaultValue\n}\n\nexport const getDomainCookieClientSide = (key: string): string | null => {\n  return getCrossDomainCookieClientSide(key)\n}\n\nexport const removeCookiesClientSide = (key: string): void => {\n  document.cookie = `${key}= ; expires = Thu, 01 Jan 1970 00:00:00 GMT`\n}\n"],"names":["parser","UAParser","setSecureCookie","cookie","getBrowser","name","toLowerCase","window","location","protocol","document","prepareForCookingCookie","key","value","expire","arguments","length","undefined","setCrossDomainCookieClientSide","getTopLevelDomain","setDomainCookieClientSide","getCrossDomainCookieClientSide","defaultValue","cookieMatcher","RegExp","match","getDomainCookieClientSide","removeCookiesClientSide"],"mappings":"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"}