@shopify/hydrogen-react
Version:
React components, hooks, and utilities for creating custom Shopify storefronts
51 lines (50 loc) • 1.59 kB
JavaScript
;
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