UNPKG

@shopify/hydrogen-react

Version:

React components, hooks, and utilities for creating custom Shopify storefronts

51 lines (50 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const cartConstants = require("./cart-constants.js"); const trackingUtils = require("./tracking-utils.js"); const tokenHash = "xxxx-4xxx-xxxx-xxxxxxxxxxxx"; function buildUUID() { let hash = ""; try { const crypto = window.crypto; const randomValuesArray = new Uint16Array(31); crypto.getRandomValues(randomValuesArray); let i = 0; hash = tokenHash.replace(/[x]/g, (c) => { const r = randomValuesArray[i] % 16; const v = c === "x" ? r : r & 3 | 8; i++; return v.toString(16); }).toUpperCase(); } catch (err) { hash = tokenHash.replace(/[x]/g, (c) => { const r = Math.random() * 16 | 0; const v = c === "x" ? r : r & 3 | 8; return v.toString(16); }).toUpperCase(); } return `${hexTime()}-${hash}`; } function hexTime() { let dateNumber = 0; let perfNumber = 0; dateNumber = (/* @__PURE__ */ new Date()).getTime() >>> 0; try { perfNumber = performance.now() >>> 0; } catch (err) { perfNumber = 0; } const output = Math.abs(dateNumber + perfNumber).toString(16).toLowerCase(); return output.padStart(8, "0"); } function getShopifyCookies(cookies) { const trackingValues = trackingUtils.getTrackingValues(cookies); return { [cartConstants.SHOPIFY_Y]: trackingValues.uniqueToken, [cartConstants.SHOPIFY_S]: trackingValues.visitToken }; } exports.buildUUID = buildUUID; exports.getShopifyCookies = getShopifyCookies; exports.hexTime = hexTime; //# sourceMappingURL=cookies-utils.js.map