cookie-muncher
Version:
Effortless cookie management for server and browser
2 lines (1 loc) • 2.45 kB
JavaScript
;var f=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var b=(e,o)=>{for(var r in o)f(e,r,{get:o[r],enumerable:!0})},v=(e,o,r,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let m of w(o))!x.call(e,m)&&m!==r&&f(e,m,{get:()=>o[m],enumerable:!(s=y(o,m))||s.enumerable});return e};var g=e=>v(f({},"__esModule",{value:!0}),e);var $={};b($,{CookieMaxAge:()=>a,domCookie:()=>E,httpCookie:()=>z});module.exports=g($);var p=e=>e?e.split(";").filter(o=>/^\s*([\w!#$%&'*+\-.^_`|~]+)\s*=\s*([^;]*)\s*$/u.test(o)).map(o=>{let[r,s]=o.split("=");if(typeof r>"u"||typeof s>"u")throw Error("Invalid cookie format (this should not reachable, open an issue)");let m=r.trim(),h=decodeURIComponent(s.trim());return{name:m,value:h}}):[];var l=e=>`${e.charAt(0).toUpperCase()}${e.slice(1)}`,C=e=>new TextEncoder().encode(e).byteLength;var i=(e,o={})=>{let r=[`${e.name}=${encodeURIComponent(e.value)}`];return typeof o.maxAge<"u"&&r.push(`Max-Age=${String(o.maxAge)}`),typeof o.expires<"u"&&r.push(`Expires=${o.expires.toUTCString()}`),typeof o.domain<"u"&&r.push(`Domain=${encodeURIComponent(o.domain)}`),r.push(`Path=${o.path??"/"}`),typeof o.secure<"u"&&r.push("Secure"),typeof o.httpOnly<"u"&&r.push("HttpOnly"),typeof o.sameSite<"u"&&r.push(`SameSite=${l(o.sameSite)}`),r.join("; ")};var z={parse:p,serialize:i};var n=()=>{if(!navigator.cookieEnabled)throw Error("Cookies are disabled by the browser")};var c=()=>(n(),p(document.cookie));var u=e=>(n(),p(document.cookie).find(o=>o.name===e)??null);var k=(e,o={})=>{if(n(),document.cookie.split(";").length>=50)throw new Error("You have more than 50 cookies, most browsers limit the number of cookies to 50");let s=i(e,o);if(C(s)>4096)throw new Error("The size of this cookie is greater than 4096 bytes, most browsers limit the number of cookies to this size");document.cookie=i(e,o)};var a=(t=>(t[t.Now=-1]="Now",t[t.OneHour=3600]="OneHour",t[t.SixHours=21600]="SixHours",t[t.TwlveHours=43200]="TwlveHours",t[t.OneDay=86400]="OneDay",t[t.OneWeek=604800]="OneWeek",t[t.TwoWeeks=1209600]="TwoWeeks",t[t.OneMonth=2592e3]="OneMonth",t[t.ThreeMonths=7776e3]="ThreeMonths",t[t.SixMonths=15552e3]="SixMonths",t[t.OneYear=31536e3]="OneYear",t))(a||{});var d=(e,o)=>{n(),document.cookie=i({name:e,value:""},{...o,maxAge:-1})};var E={getAll:c,get:u,set:k,remove:d};0&&(module.exports={CookieMaxAge,domCookie,httpCookie});