// Intentionally called CookiesStore instead of CookieStore // Calling it CookieStore causes issues when the Experimental Web Platform features flag is enabled in Chrome // Related issue: https://github.com/freeCodeCamp/devdocs/issues/932 class CookiesStore { static INT = /^\d+$/; static onBlocked() {} get(key) { let value = Cookies.get(key); if (value != null && CookiesStore.INT.test(value)) { value = parseInt(value, 10); } return value; } set(key, value) { if (value === false) { this.del(key); return; } if (value === true) { value = 1; } if ( value && (typeof CookiesStore.INT.test === "function" ? CookiesStore.INT.test(value) : undefined) ) { value = parseInt(value, 10); } Cookies.set(key, "" + value, { path: "/", expires: 1e8 }); if (this.get(key) !== value) { CookiesStore.onBlocked(key, value, this.get(key)); } } del(key) { Cookies.expire(key); } reset() { try { for (var cookie of document.cookie.split(/;\s?/)) { Cookies.expire(cookie.split("=")[0]); } return; } catch (error) {} } dump() { const result = {}; for (var cookie of document.cookie.split(/;\s?/)) { if (cookie[0] !== "_") { cookie = cookie.split("="); result[cookie[0]] = cookie[1]; } } return result; } }