@rebuy/rebuy 2.2.0-rc.1 → 2.2.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +628 -1
- package/dist/index.js.map +4 -4
- package/dist/index.mjs +628 -1
- package/dist/index.mjs.map +4 -4
- package/dist/schema/button.d.ts +5 -5
- package/dist/schema/button.d.ts.map +1 -1
- package/dist/schema/common.d.ts +1 -1
- package/dist/schema/common.d.ts.map +1 -1
- package/dist/schema/constants.d.ts +1 -1
- package/dist/schema/constants.d.ts.map +1 -1
- package/dist/schema/data-source.d.ts +1 -1
- package/dist/schema/data-source.d.ts.map +1 -1
- package/dist/schema/image.d.ts +1 -1
- package/dist/schema/image.d.ts.map +1 -1
- package/dist/schema/index.d.ts +19 -19
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/layout.d.ts +1 -1
- package/dist/schema/layout.d.ts.map +1 -1
- package/dist/schema/offers.d.ts +1 -1
- package/dist/schema/offers.d.ts.map +1 -1
- package/dist/schema/product.d.ts +2 -2
- package/dist/schema/product.d.ts.map +1 -1
- package/dist/schema/products.d.ts +2 -2
- package/dist/schema/products.d.ts.map +1 -1
- package/dist/schema/quantity.d.ts +1 -1
- package/dist/schema/quantity.d.ts.map +1 -1
- package/dist/schema/reviews.d.ts +1 -1
- package/dist/schema/reviews.d.ts.map +1 -1
- package/dist/schema/root.d.ts +1 -1
- package/dist/schema/root.d.ts.map +1 -1
- package/dist/schema/shared.d.ts +1 -1
- package/dist/schema/shared.d.ts.map +1 -1
- package/dist/schema/subscription.d.ts +1 -1
- package/dist/schema/subscription.d.ts.map +1 -1
- package/dist/schema/table.d.ts +1 -1
- package/dist/schema/table.d.ts.map +1 -1
- package/dist/schema/text.d.ts +5 -5
- package/dist/schema/text.d.ts.map +1 -1
- package/dist/schema/variants.d.ts +1 -1
- package/dist/schema/variants.d.ts.map +1 -1
- package/package.json +2 -6
- package/dist/schema/index.mjs +0 -629
- package/dist/schema/index.mjs.map +0 -7
package/dist/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/utilities.ts", "../src/api.ts", "../src/cookie.ts", "../src/geolocation.ts", "../src/session.ts", "../src/identity.ts", "../src/client.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Returns true if the string is a valid base64 encoded string.\n *\n * @param {string} str - The string to check.\n *\n * @returns {boolean} True if the string is a valid base64 encoded string.\n */\nexport function isBase64Encoded(str: string): boolean {\n const base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n\n return base64Regex.test(str) ? true : false;\n}\n\n/**\n * Returns a string as a JSON object.\n *\n * @param {string} data - The string to convert to a JSON object.\n * @param {boolean} decode - Whether to decode the string. *\n *\n * @returns {any} The JSON object.\n */\nexport function stringToData(data: string, decode: boolean): any {\n let response = data;\n\n // Base64 decode\n if (decode === true) {\n response = atob(response);\n }\n\n try {\n response = JSON.parse(response);\n } catch (e) {\n // failure to parse cookie\n response = data;\n }\n\n return response;\n}\n\n/**\n * Returns a JSON object as a string.\n *\n * @param {any} data - The JSON object to convert to a string.\n * @param {boolean} encode - Whether to encode the string. *\n *\n * @returns {string} The string.\n */\nexport function dataToString(data: any, encode: boolean): string {\n let response = data;\n\n if (typeof response != 'string') {\n response = JSON.stringify(response);\n }\n\n // Base64 encode\n if (encode === true) {\n response = btoa(response);\n }\n\n return response;\n}\n\n/**\n * Returns a string with HTML tags removed.\n *\n * @param {string} str - The string to strip HTML tags from.\n *\n * @returns {string} The string with HTML tags removed.\n */\nexport function stripHtml(str: string): string {\n return str?.replace(/<(.|\\n)*?>/g, '') ?? '';\n}\n\n/**\n * Returns the ID from a GraphQL URL.\n *\n * @param {string} graphId - The GraphQL URL.\n * @param {string} objectType - The object type.\n *\n * @returns {number | null} The ID.\n */\nexport function getIdFromGraphUrl(graphId: string, objectType: string): number | null {\n let id: number | null = null;\n\n const regex = new RegExp(`gid://shopify/${objectType}/(.*)`);\n const matches = graphId.match(regex);\n\n if (matches != null) {\n const matchedId = matches[1];\n\n if (!isNaN(Number(matchedId))) {\n id = Number(matchedId);\n }\n }\n\n return id;\n}\n\n/**\n * Returns true if the variant is available.\n *\n * @param {any} variant - The variant.\n *\n * @returns {boolean} True if the variant is available.\n */\nexport function variantAvailable(variant: any): boolean {\n return !(variant.inventory_management && variant.inventory_policy === 'deny' && variant.inventory_quantity <= 0);\n}\n\n/**\n * Returns the first available variant.\n *\n * @param {any} product - The product.\n *\n * @returns {any} The first available variant.\n */\nexport function firstAvailableVariant(product: any): any {\n // Select first variant\n let selectedVariant = product.variants[0];\n\n // Upgrade to first available\n for (let i = 0; i < product.variants.length; i++) {\n if (variantAvailable(product.variants[i])) {\n selectedVariant = product.variants[i];\n break;\n }\n }\n\n return selectedVariant;\n}\n\n/**\n * Returns a UUID.\n *\n * @returns {string} The UUID.\n */\nexport function uuid(): string {\n let d = new Date().getTime();\n let d2 = (performance && performance.now && performance.now() * 1000) || 0;\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n let r = Math.random() * 16;\n\n if (d > 0) {\n r = (d + r) % 16 | 0;\n d = Math.floor(d / 16);\n } else {\n r = (d2 + r) % 16 | 0;\n d2 = Math.floor(d2 / 16);\n }\n\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n}\n\n/**\n * Returns a session ID.\n *\n * @returns {string} The session ID.\n */\nexport function sessionId(): string {\n const config = {\n chars: '0123456789',\n length: 12,\n };\n\n let sessionId = '';\n const sessionStart = new Date().getTime();\n\n for (let i = config.length; i > 0; i--) {\n sessionId += config.chars[Math.floor(Math.random() * config.chars.length)];\n }\n\n return `REBUY.${sessionStart}.${sessionId}`;\n}\n\n/**\n * Converts a product to the storefront format.\n *\n * @param {any} product - The product.\n *\n * @returns {any} The product in the storefront format.\n */\nexport function convertProductToStorefrontFormat(product: any): any {\n const defaultVariant = firstAvailableVariant(product);\n const minVariantPrice = variantMinMaxPriceObject(product, 'price', 'min');\n const maxVariantPrice = variantMinMaxPriceObject(product, 'price', 'max');\n const minVariantCompareAtPrice = variantMinMaxPriceObject(product, 'compare_at_price', 'min');\n const maxVariantCompareAtPrice = variantMinMaxPriceObject(product, 'compare_at_price', 'max');\n const selectedOptions = selectedVariantOptions(product, defaultVariant);\n\n const variants = product.variants.map((variant: any) => convertVariantToStorefrontFormat(product, variant));\n\n return {\n collections: null,\n compareAtPriceRange: {\n maxVariantCompareAtPrice,\n minVariantCompareAtPrice,\n },\n description: stripHtml(product.body_html),\n descriptionHtml: product.body_html,\n featuredImage: productImageObject(product, null),\n handle: product.handle,\n id: `gid://shopify/Product/${product.id}`,\n images: null,\n media: [],\n metafields: [],\n options: [\n ...product.options.map((option: any) => {\n return { name: option.name, values: option.values };\n }),\n ],\n priceRange: {\n maxVariantPrice,\n minVariantPrice,\n },\n selectedOptions,\n selectedSellingPlan: null,\n selectedSellingPlanAllocation: null,\n sellingPlanGroups: [],\n seo: { description: null, title: null },\n title: product.title,\n variants: convertToNodes(variants),\n vendor: product.vendor,\n };\n}\n\n/**\n * Converts an array to a nodes object.\n *\n * @param {any} arr - The array to convert to a nodes object.\n *\n * @returns {any} The nodes object.\n */\nexport function convertToNodes(arr: any): any {\n return {\n edges: [\n ...arr.map((node: any) => {\n return { node };\n }),\n ],\n };\n}\n\n/**\n * Converts a variant to the storefront format.\n *\n * @param {any} product - The product.\n * @param {any} variant - The variant.\n *\n * @returns {any} The variant in the storefront format.\n */\nexport function convertVariantToStorefrontFormat(product: any, variant: any): any {\n const selectedOptions = selectedVariantOptions(product, variant);\n const image = productImageObject(product, variant.image_id);\n\n return {\n availableForSale: variantAvailable(variant),\n compareAtPriceV2: variantPriceObject(variant, 'compare_at_price'),\n id: `gid://shopify/ProductVariant/${variant.id}`,\n image: image,\n priceV2: variantPriceObject(variant, 'price'),\n product: {\n handle: product.handle,\n id: product.id,\n title: product.title,\n vendor: product.vendor,\n },\n selectedOptions: [selectedOptions],\n sku: variant.sku,\n title: variant.title,\n };\n}\n\n/**\n * Returns the minimum or maximum price object for a variant.\n *\n * @param {any} product - The product.\n * @param {string} key - The key to get the price object for.\n * @param {string} operator - The operator to use. *\n *\n * @returns {any} The price object.\n */\nexport function variantMinMaxPriceObject(product: any, key: string = 'price', operator: string = 'min'): any {\n let priceObject = variantPriceObject(product.variants[0], key);\n\n for (let i = 0; i < product.variants.length; i++) {\n const variantPrice = variantPriceObject(product.variants[i], key);\n\n if (variantPrice != null) {\n const variantPriceAmount = Number(variantPrice.amount);\n const currentPriceAmount = priceObject != null ? Number(priceObject.amount) : null;\n\n if (\n currentPriceAmount == null ||\n (operator === 'min' && variantPriceAmount < currentPriceAmount) ||\n (operator === 'max' && variantPriceAmount > currentPriceAmount)\n ) {\n priceObject = variantPrice;\n }\n }\n }\n\n return priceObject;\n}\n\n/**\n * Returns the price object for a variant.\n *\n * @param {any} variant - The variant.\n * @param {string} key - The key to get the price object for.\n *\n * @returns {any} The price object.\n */\nexport function variantPriceObject(variant: any, key: string = 'price'): any {\n if (variant[key] != null) {\n return {\n amount: variant[key],\n currencyCode: 'USD',\n };\n }\n\n return null;\n}\n\n/**\n * Returns the selected variant options.\n *\n * @param {any} product - The product.\n * @param {any} variant - The variant.\n *\n * @returns {any} The selected variant options.\n */\nexport function selectedVariantOptions(product: any, variant: any): any {\n const selectedOptions: Record<string, any> = {};\n\n if (variant.option1 != null) {\n selectedOptions[product.options[0].name] = variant.option1;\n }\n\n if (variant.option2 != null) {\n selectedOptions[product.options[1].name] = variant.option2;\n }\n\n if (variant.option3 != null) {\n selectedOptions[product.options[2].name] = variant.option3;\n }\n\n return selectedOptions;\n}\n\n/**\n * Returns the product image object.\n *\n * @param {any} product - The product.\n * @param {number | null} id - The ID of the image. *\n *\n * @returns {any} The product image object.\n */\nexport function productImageObject(product: any, id: number | null): any {\n let image = null;\n\n if (product.image) {\n image = {\n altText: product.image.alt,\n height: product.image.height,\n id: `gid://shopify/ProductImage/${product.image.id}`,\n url: product.image.src,\n width: product.image.width,\n };\n }\n\n if (product.images && product.images.length > 0 && id != null) {\n const matchingImage = product.images.find((i: any) => i.id === id);\n\n if (matchingImage) {\n image = {\n altText: matchingImage.alt,\n height: matchingImage.height,\n id: `gid://shopify/ProductImage/${matchingImage.id}`,\n url: matchingImage.src,\n width: matchingImage.width,\n };\n }\n }\n\n return image;\n}\n\n/**\n * Returns a query string as an object.\n *\n * @param {string} str - The query string to convert to an object.\n *\n * @returns {any} The object.\n */\nexport function queryStringToObject(str: string): any {\n const params = new URLSearchParams(str);\n\n return Object.fromEntries(params.entries());\n}\n\n/**\n * Returns a UTM object from a string.\n *\n * @param {string} str - The string to convert to a UTM object.\n *\n * @returns {any} The UTM object.\n */\nexport function utmObjectFromString(str: string): any {\n const utmKeys = ['utm_campaign', 'utm_medium', 'utm_source', 'utm_term', 'utm_content'];\n\n const matches: Record<string, any> = {};\n\n const url = new URL(str);\n const queryObject = queryStringToObject(url.search);\n\n for (const [key, value] of Object.entries(queryObject)) {\n if (utmKeys.includes(key)) {\n matches[key] = value;\n }\n }\n\n return Object.keys(matches).length > 0 ? matches : null;\n}\n\n/**\n * Returns the amount in cents.\n *\n * @param {number} amount - The amount to convert to cents.\n *\n * @returns {number} The amount in cents.\n */\nexport function amountToCents(amount: number | string): number {\n let normalizedAmount: number = 0;\n\n if (typeof amount === 'string') {\n if (amount.indexOf('.') !== -1) {\n normalizedAmount = Math.round(parseFloat(amount) * 100);\n } else {\n normalizedAmount = parseInt(amount, 10);\n }\n } else if (typeof amount === 'number') {\n normalizedAmount = Math.round(amount * 100);\n }\n\n if (isNaN(normalizedAmount)) {\n normalizedAmount = 0;\n }\n\n return normalizedAmount;\n}\n\n/**\n * Serializes an object.\n *\n * @param {Record<string, unknown>} obj - The object to serialize.\n *\n * @returns {string} The serialized object.\n */\nexport function serialize(obj: Record<string, unknown>): string {\n const serialized: string[] = [];\n\n const add = (key: string, value: any) => {\n value = typeof value === 'function' ? value() : value;\n value = value === null ? '' : value === undefined ? '' : value;\n serialized[serialized.length] = encodeURIComponent(key) + '=' + encodeURIComponent(value);\n };\n\n const buildParameters = (prefix: string, obj: any) => {\n let i, key, len;\n\n if (prefix) {\n if (Array.isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n buildParameters(prefix + '[' + (typeof obj[i] === 'object' && obj[i] ? i : '') + ']', obj[i]);\n }\n } else if (Object.prototype.toString.call(obj) === '[object Object]') {\n for (key in obj) {\n buildParameters(prefix + '[' + key + ']', obj[key]);\n }\n } else {\n add(prefix, obj);\n }\n } else if (Array.isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n add(obj[i].name, obj[i].value);\n }\n } else {\n for (key in obj) {\n buildParameters(key, obj[key]);\n }\n }\n\n return serialized;\n };\n\n return buildParameters('', obj).join('&');\n}\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { serialize } from '~/utilities';\n\n// Type definitions\n\ntype Config = {\n /**\n * @deprecated\n */\n cdnDomain: string;\n domain: string;\n eventDomain: string;\n geoDomain: string;\n key: string | null;\n shieldDomain: string;\n shop: string | null;\n staticDomain: string;\n};\n\ntype Staging = Omit<Config, 'key' | 'shop'>;\n\ntype FetchOptions = {\n fetch?: RequestInit & { strictErrors?: boolean };\n};\n\ntype RequestData = Record<string, any> | null;\n\nconst staging: Staging = {\n /**\n * @deprecated\n */\n cdnDomain: 'https://cdn.enigneyuber.com',\n domain: 'https://enigneyuber.com',\n eventDomain: 'https://enigneyuber.com',\n geoDomain: 'https://geo.enigneyuber.com',\n shieldDomain: 'https://cached.enigneyuber.com',\n staticDomain: 'https://cdn.enigneyuber.com',\n};\n\nconst stagingDomains: string[] = [\n 'enigneyuber.com',\n 'rebuy-engine-regression.myshopify.com',\n 'rebuy-stage-currency-test.myshopify.com',\n 'rebuy-staging-automation.myshopify.com',\n 'rebuy-staging-regression.myshopify.com',\n 'rebuy-uat.myshopify.com',\n 'rebuy-regression-qa.myshopify.com',\n 'senator-staging.myshopify.com',\n 'mike-reids-test-store.myshopify.com',\n 'dash-ext-hoke.myshopify.com',\n];\n\nconst makeCall = async (\n key: string | null,\n method: string,\n path: string,\n data: RequestData,\n origin: string,\n options: FetchOptions = {}\n): Promise<any> => {\n const url = `${origin}${path}`;\n const requestUrl = new URL(url);\n const fetchOptions = options?.fetch ?? {};\n\n const requestData: RequestData = {};\n\n if (typeof data == 'object' && data != null) {\n Object.assign(requestData, data);\n }\n\n if (typeof key == 'string' && key.length > 0) {\n Object.assign(requestData, { key: key });\n }\n\n const requestObject: RequestInit & { strictErrors?: boolean } = {\n method,\n ...fetchOptions,\n };\n\n if (method === 'GET') {\n requestUrl.search = serialize(requestData);\n } else if (method === 'POST') {\n requestObject.headers = {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n };\n requestObject.body = new URLSearchParams(requestData) as any;\n }\n\n const request = await fetch(requestUrl.toString(), requestObject);\n const response = await request.json();\n\n if (!request.ok && fetchOptions.strictErrors === true) {\n const message = `An error has occurred: ${request.status}`;\n throw new Error(message, { cause: response });\n }\n\n return response;\n};\n\nexport class Api {\n private config: Config;\n\n constructor(options: string | Partial<Config> | null) {\n this.config = {\n /**\n * @deprecated\n */\n cdnDomain: 'https://cdn.rebuyengine.com',\n domain: 'https://rebuyengine.com',\n eventDomain: 'https://rebuyengine.com',\n geoDomain: 'https://geo.rebuyengine.com',\n key: null,\n shieldDomain: 'https://cached.rebuyengine.com',\n shop: null,\n staticDomain: 'https://cdn.rebuyengine.com',\n };\n\n if (typeof options == 'string') {\n this.config.key = options;\n } else if (typeof options == 'object' && options != null) {\n Object.assign(this.config, options);\n }\n\n for (const domain of stagingDomains) {\n if (typeof location === 'object' && (location as any)?.host?.includes(domain)) {\n Object.assign(this.config, staging);\n break;\n }\n\n if (typeof this.config.shop === 'string' && this.config.shop.includes(domain)) {\n Object.assign(this.config, staging);\n break;\n }\n }\n }\n\n async callEvent(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.eventDomain, options);\n }\n\n async callShield(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.shieldDomain, options);\n }\n\n async callStatic(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.staticDomain, options);\n }\n\n async callGeo(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.geoDomain, options);\n }\n\n async callCdn(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.cdnDomain, options);\n }\n\n async callApi(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.domain, options);\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default Api;\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { dataToString, isBase64Encoded, stringToData } from '~/utilities';\n\n/**\n * Get a cookie by name\n *\n * @param {string} name - The name of the cookie to get\n *\n * @returns {any} The value of the cookie or null if the cookie is not found\n */\nexport function get(name: string): any | null {\n if (typeof document == 'undefined' || !document.cookie) {\n return null;\n }\n\n // Get cookie\n const cookie = document.cookie.match('(^|;) ?' + decodeURIComponent(name) + '=([^;]*)(;|$)');\n\n let value: any = null;\n\n if (cookie != null) {\n // Get data\n const data = decodeURIComponent(cookie[2]);\n\n // Auto decode\n const decode = isBase64Encoded(data) ? true : false;\n\n // Convert to data object\n value = stringToData(data, decode);\n }\n\n return value;\n}\n\n/**\n * Get all cookies\n *\n * @returns {Record<string, any>} All cookies\n */\nexport function getAll(): Record<string, any> {\n const cookies: Record<string, any> = {};\n\n if (document && document.cookie && document.cookie !== '') {\n const split = document.cookie.split(';');\n\n for (let i = 0; i < split.length; i++) {\n const pairs = split[i].split('=');\n\n pairs[0] = pairs[0].replace(/^ /, '');\n\n const key = decodeURIComponent(pairs[0]);\n const value = decodeURIComponent(pairs[1]);\n\n // Auto decode\n const decode = isBase64Encoded(value) ? true : false;\n\n cookies[key] = stringToData(value, decode);\n }\n }\n\n return cookies;\n}\n\n/**\n * Set a cookie\n *\n * @param {string} name - The name of the cookie\n * @param {any} value - The value of the cookie\n * @param {any} config - The configuration of the cookie\n *\n * @returns {void}\n */\nexport function set(name: string, value: any, config: any): void {\n if (typeof document == 'undefined' || !document.cookie) {\n return;\n }\n\n const attributes = ['path', 'domain', 'maxAge', 'expires', 'secure', 'sameSite'];\n const convenienceTimes = ['seconds', 'minutes', 'hours', 'days', 'weeks', 'months', 'years'];\n\n const cookieAttributes: Record<string, any> = {\n path: '/',\n };\n\n if (typeof config != 'undefined' && Number.isInteger(config)) {\n cookieAttributes['max-age'] = config;\n } else if (typeof config === 'object' && config !== null) {\n for (const key in config) {\n if (attributes.includes(key)) {\n if (key === 'maxAge') {\n cookieAttributes['max-age'] = config[key];\n } else if (key === 'sameSite') {\n cookieAttributes['samesite'] = config[key];\n } else if (key === 'expires') {\n cookieAttributes[key] = new Date(config[key]).toUTCString();\n } else {\n cookieAttributes[key] = config[key];\n }\n } else if (convenienceTimes.includes(key)) {\n let duration = config[key];\n\n if (key === 'seconds') {\n duration = duration * 1;\n } else if (key === 'minutes') {\n duration = duration * 60;\n } else if (key === 'hours') {\n duration = duration * 60 * 60;\n } else if (key === 'days') {\n duration = duration * 60 * 60 * 24;\n } else if (key === 'weeks') {\n duration = duration * 60 * 60 * 24 * 7;\n } else if (key === 'months') {\n duration = duration * 60 * 60 * 24 * 30;\n } else if (key === 'years') {\n duration = duration * 60 * 60 * 24 * 365;\n }\n\n cookieAttributes['max-age'] = duration;\n }\n }\n }\n\n // Convert data to string\n value = dataToString(value, config?.encode);\n\n // Define cookie\n let cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n\n // Add optional cookie attributes\n for (const key in cookieAttributes) {\n cookie += ';' + key + '=' + cookieAttributes[key];\n }\n\n // Write cookie\n document.cookie = cookie;\n}\n\n/**\n * Find all cookies that match a name\n *\n * @param {string} name - The name of the cookie to find\n *\n * @returns {Array<{ name: string; value: any }>} All cookies that match the name\n */\nexport function find(name: string): { name: string; value: any }[] {\n const matches: { name: string; value: any }[] = [];\n const cookies = getAll();\n\n for (const key in cookies) {\n if (key.includes(name)) {\n matches.push({\n name: key,\n value: cookies[key],\n });\n }\n }\n\n return matches;\n}\n\n/**\n * Destroy a cookie\n *\n * @param {string} name - The name of the cookie to destroy\n */\nexport function destroy(name: string): void {\n set(name, '', { encode: false, seconds: 0 });\n}\n\n/**\n * Check if cookies are enabled\n *\n * @returns {boolean} True if cookies are enabled, false otherwise\n */\nexport function enabled(): boolean {\n const test = {\n key: '__cookie_test',\n value: 1,\n };\n\n set(test.key, test.value, { encode: false });\n\n const enabled = get(test.key) === test.value ? true : false;\n\n if (enabled) {\n destroy(test.key);\n }\n\n return enabled;\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default { destroy, enabled, find, get, getAll, set };\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport Api from '~/api';\nimport Cookie from '~/cookie';\n\ntype Config = {\n geolocation: any;\n geolocationCookie: string;\n geolocationDuration: {\n minutes: number;\n };\n key: string | null;\n};\n\nexport class Geolocation {\n private config: Config;\n\n constructor(key: string | null) {\n this.config = {\n geolocation: null,\n geolocationCookie: '_rebuyGeolocation',\n geolocationDuration: {\n minutes: 30,\n },\n key: null,\n };\n\n if (typeof document == 'undefined' || !document.cookie) {\n return;\n }\n\n if (typeof key == 'string') {\n this.config.key = key;\n }\n\n this.config.geolocation = Cookie.get(this.config.geolocationCookie);\n\n // Create a new geolocation (if needed)\n if (this.config.geolocation === null) {\n this._fetchGeolocation();\n }\n }\n\n async _fetchGeolocation(): Promise<any> {\n const api = new Api({ key: this.config.key });\n const response = await api.callGeo('GET', '/', null);\n\n if (response.data) {\n // Update instance config with geolocation\n this.config.geolocation = response.data;\n\n // Write cookie with geolocation\n const cookieOptions: Record<string, any> = {\n secure: true,\n };\n\n // Merge cookie options with geolocation config\n Object.assign(cookieOptions, this.config.geolocationDuration);\n\n // Write cookie with geolocation\n Cookie.set(this.config.geolocationCookie, this.config.geolocation, { ...cookieOptions, encode: false });\n }\n\n return this.config.geolocation;\n }\n\n async geolocation(): Promise<any> {\n if (this.config.geolocation == null) {\n await this._fetchGeolocation();\n }\n\n return this.config.geolocation;\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default Geolocation;\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport Cookie from '~/cookie';\nimport { sessionId } from '~/utilities';\n\ntype Config = {\n now: number | null;\n sessionDuration: {\n minutes: number;\n };\n sessionId: string | null;\n sessionIdCookie: string;\n};\n\nconst config: Config = {\n now: null,\n sessionDuration: {\n minutes: 30,\n },\n sessionId: null,\n sessionIdCookie: '_rebuySessionId',\n};\n\nexport class Session {\n constructor() {\n if (typeof document == 'undefined' || !document.cookie) {\n return;\n }\n\n config.now = new Date().getTime();\n config.sessionId = Cookie.get(config.sessionIdCookie);\n\n // Create a new session (if needed)\n if (config.sessionId === null) {\n config.sessionId = sessionId();\n }\n\n // Write cookie with session ID\n const cookieOptions: Record<string, any> = {\n secure: true,\n };\n\n // Merge cookie options with session config\n Object.assign(cookieOptions, config.sessionDuration);\n\n // Write cookie with session ID\n Cookie.set(config.sessionIdCookie, config.sessionId, cookieOptions);\n }\n\n sessionId(): string | null {\n return config.sessionId;\n }\n\n sessionStart(): number {\n return config.sessionId ? Number(config.sessionId.split('.')[1]) : 0;\n }\n\n sessionDuration(): number {\n return config.now !== null ? parseInt(((config.now - this.sessionStart()) / 1000 / 60).toString()) : 0;\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default Session;\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport Cookie from '~/cookie';\nimport Geolocation from '~/geolocation';\nimport Session from '~/session';\nimport { uuid } from '~/utilities';\n\ntype Config = {\n geolocation?: any;\n key: string | null;\n session: any;\n visitorDuration: {\n years: number;\n };\n visitorId: string | null;\n visitorIdCookie: string;\n};\n\nexport class Identity {\n private config: Config;\n\n constructor(key: string | null) {\n this.config = {\n geolocation: null,\n key: null,\n session: null,\n visitorDuration: {\n years: 1,\n },\n visitorId: null,\n visitorIdCookie: '_rebuyVisitorId',\n };\n\n if (typeof document == 'undefined' || !document.cookie) {\n return;\n }\n\n if (typeof key == 'string') {\n this.config.key = key;\n }\n\n this.config.visitorId = Cookie.get(this.config.visitorIdCookie);\n\n // Create a new identifier (if needed)\n if (this.config.visitorId === null) {\n this.config.visitorId = uuid();\n }\n\n // Write cookie with visitor ID\n const cookieOptions: Record<string, any> = {\n secure: true,\n };\n\n // Merge cookie options with visitor config\n Object.assign(cookieOptions, this.config.visitorDuration);\n\n // Write cookie with session ID\n Cookie.set(this.config.visitorIdCookie, this.config.visitorId, cookieOptions);\n\n // Create visitor session\n this.config.session = new Session();\n\n // Create visitor geolocation, passing the key\n this.config.geolocation = new Geolocation(this.config.key);\n }\n\n visitorId(): string | null {\n return this.config.visitorId;\n }\n\n sessionId(): string | null {\n return this.config.session ? this.config.session.sessionId() : null;\n }\n\n sessionStart(): string | null {\n return this.config.session ? this.config.session.sessionStart() : null;\n }\n\n sessionDuration(): string | null {\n return this.config.session ? this.config.session.sessionDuration() : null;\n }\n\n async geolocation(): Promise<any> {\n return this.config.geolocation ? await this.config.geolocation.geolocation() : null;\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default Identity;\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport Api from '~/api';\nimport Identity from '~/identity';\nimport { convertProductToStorefrontFormat } from '~/utilities';\n\ntype Config = {\n api: any;\n contextParameters: Record<string, any> | null;\n defaultParameters: Record<string, any> | null;\n identity: any;\n key: string | null;\n shop: string | null;\n};\n\nconst trackEvent = async (config: Config, eventData: Record<string, any>): Promise<any> => {\n if (config.identity && config.identity.visitorId()) {\n eventData.uuid = config.identity.visitorId();\n }\n\n return await config.api.callEvent('POST', '/api/v1/analytics/event', eventData);\n};\n\nconst makeShieldCall = async (\n config: Config,\n endpoint: string,\n params: Record<string, any>,\n format: string | null,\n options: Record<string, any> = {}\n): Promise<any> => {\n return await makeCall(config, endpoint, params, format, { ...options, shield: true });\n};\n\nconst makeStaticCall = async (\n config: Config,\n endpoint: string,\n params: Record<string, any>,\n format: string | null,\n options: Record<string, any> = {}\n): Promise<any> => {\n return await makeCall(config, endpoint, params, format, { ...options, static: true });\n};\n\nconst makeCDNCall = async (\n config: Config,\n endpoint: string,\n params: Record<string, any>,\n format: string | null,\n options: Record<string, any> = {}\n): Promise<any> => {\n return await makeCall(config, endpoint, params, format, { ...options, cdn: true });\n};\n\nconst makeCall = async (\n config: Config,\n endpoint: string,\n params: Record<string, any>,\n format: string | null,\n options: Record<string, any> = {}\n): Promise<any> => {\n const query: Record<string, any> = {};\n\n if (config.defaultParameters != null) {\n Object.assign(query, config.defaultParameters);\n }\n\n if (config.contextParameters != null) {\n Object.assign(query, config.contextParameters);\n }\n\n if (typeof params == 'object' && params != null) {\n Object.assign(query, params);\n }\n\n if (typeof options != 'object' || options == null) {\n console.warn('Unsupported fetch options provided.', options);\n options = {};\n }\n\n if (config.identity && config.identity.visitorId()) {\n query.uuid = config.identity.visitorId();\n }\n\n // Origin or dedicated edge?\n const source = options.cdn ? 'callCdn' : options.shield ? 'callShield' : options.static ? 'callStatic' : 'callApi';\n const response = await config.api[source]('GET', endpoint, query, options);\n\n if (response.data && format === 'storefront') {\n for (let i = 0; i < response.data.length; i++) {\n response.data[i] = convertProductToStorefrontFormat(response.data[i]);\n }\n }\n\n return response;\n};\n\nexport class RebuyClient {\n private config: Config;\n\n constructor(key?: string, defaultParameters?: Record<string, any>, shop?: string) {\n this.config = {\n api: null,\n contextParameters: null,\n defaultParameters: null,\n identity: null,\n key: null,\n shop: null,\n };\n\n if (typeof key == 'string') {\n this.config.key = key;\n }\n\n if (typeof defaultParameters == 'object' && defaultParameters != null) {\n this.config.defaultParameters = defaultParameters;\n }\n\n if (typeof shop == 'string' && shop.endsWith('.myshopify.com')) {\n this.config.shop = shop;\n }\n\n this.config.api = new Api({ key: this.config.key, shop: this.config.shop });\n this.config.identity = new Identity(this.config.key);\n }\n\n setDefaultParameters(defaultParameters: Record<string, any>): void {\n if (typeof defaultParameters == 'object' && defaultParameters != null) {\n this.config.defaultParameters = defaultParameters;\n }\n }\n\n setContextParameters(contextParameters: Record<string, any>): void {\n if (typeof contextParameters == 'object' && contextParameters != null) {\n this.config.contextParameters = contextParameters;\n }\n }\n\n async getData(endpoint: string, params: Record<string, any>, options: Record<string, any> = {}): Promise<any> {\n return await makeCall(this.config, endpoint, params, null, options);\n }\n\n async getDataFromCDN(\n endpoint: string,\n params: Record<string, any>,\n options: Record<string, any> = {}\n ): Promise<any> {\n return await makeCDNCall(this.config, endpoint, params, null, options);\n }\n\n async getShieldedAsset(\n endpoint: string,\n params: Record<string, any>,\n options: Record<string, any> = {}\n ): Promise<any> {\n return await makeShieldCall(this.config, endpoint, params, null, options);\n }\n\n async getStaticAsset(\n endpoint: string,\n params: Record<string, any>,\n options: Record<string, any> = {}\n ): Promise<any> {\n return await makeStaticCall(this.config, endpoint, params, null, options);\n }\n\n async getStorefrontData(\n endpoint: string,\n params: Record<string, any>,\n options: Record<string, any> = {}\n ): Promise<any> {\n return await makeCall(this.config, endpoint, params, 'storefront', options);\n }\n\n async trackProductViewed(data: Record<string, any>): Promise<any> {\n const requiredKeys = ['shopify_product_id', 'shopify_product_handle'];\n\n const defaultData = {\n noun: 'product',\n subject: 'user',\n verb: 'viewed',\n };\n\n if (typeof data != 'undefined' && data != null) {\n const dataKeys = Object.keys(data);\n\n if (dataKeys.some((key) => requiredKeys.includes(key))) {\n const payload = Object.assign(data, defaultData);\n\n return await trackEvent(this.config, payload);\n }\n }\n\n return null;\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default RebuyClient;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["config", "sessionId", "obj", "config", "enabled", "config", "makeCall"]
|
|
3
|
+
"sources": ["../src/utilities.ts", "../src/api.ts", "../src/cookie.ts", "../src/geolocation.ts", "../src/session.ts", "../src/identity.ts", "../src/client.ts", "../src/schema/button.ts", "../src/schema/common.ts", "../src/schema/image.ts", "../src/schema/regex.ts", "../src/schema/shared.ts", "../src/schema/data-source.ts", "../src/schema/constants.ts", "../src/schema/layout.ts", "../src/schema/offers.ts", "../src/schema/products.ts", "../src/schema/product.ts", "../src/schema/text.ts", "../src/schema/utils.ts", "../src/schema/quantity.ts", "../src/schema/reviews.ts", "../src/schema/subscription.ts", "../src/schema/table.ts", "../src/schema/variants.ts", "../src/schema/root.ts"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Returns true if the string is a valid base64 encoded string.\n *\n * @param {string} str - The string to check.\n *\n * @returns {boolean} True if the string is a valid base64 encoded string.\n */\nexport function isBase64Encoded(str: string): boolean {\n const base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n\n return base64Regex.test(str) ? true : false;\n}\n\n/**\n * Returns a string as a JSON object.\n *\n * @param {string} data - The string to convert to a JSON object.\n * @param {boolean} decode - Whether to decode the string. *\n *\n * @returns {any} The JSON object.\n */\nexport function stringToData(data: string, decode: boolean): any {\n let response = data;\n\n // Base64 decode\n if (decode === true) {\n response = atob(response);\n }\n\n try {\n response = JSON.parse(response);\n } catch (e) {\n // failure to parse cookie\n response = data;\n }\n\n return response;\n}\n\n/**\n * Returns a JSON object as a string.\n *\n * @param {any} data - The JSON object to convert to a string.\n * @param {boolean} encode - Whether to encode the string. *\n *\n * @returns {string} The string.\n */\nexport function dataToString(data: any, encode: boolean): string {\n let response = data;\n\n if (typeof response != 'string') {\n response = JSON.stringify(response);\n }\n\n // Base64 encode\n if (encode === true) {\n response = btoa(response);\n }\n\n return response;\n}\n\n/**\n * Returns a string with HTML tags removed.\n *\n * @param {string} str - The string to strip HTML tags from.\n *\n * @returns {string} The string with HTML tags removed.\n */\nexport function stripHtml(str: string): string {\n return str?.replace(/<(.|\\n)*?>/g, '') ?? '';\n}\n\n/**\n * Returns the ID from a GraphQL URL.\n *\n * @param {string} graphId - The GraphQL URL.\n * @param {string} objectType - The object type.\n *\n * @returns {number | null} The ID.\n */\nexport function getIdFromGraphUrl(graphId: string, objectType: string): number | null {\n let id: number | null = null;\n\n const regex = new RegExp(`gid://shopify/${objectType}/(.*)`);\n const matches = graphId.match(regex);\n\n if (matches != null) {\n const matchedId = matches[1];\n\n if (!isNaN(Number(matchedId))) {\n id = Number(matchedId);\n }\n }\n\n return id;\n}\n\n/**\n * Returns true if the variant is available.\n *\n * @param {any} variant - The variant.\n *\n * @returns {boolean} True if the variant is available.\n */\nexport function variantAvailable(variant: any): boolean {\n return !(variant.inventory_management && variant.inventory_policy === 'deny' && variant.inventory_quantity <= 0);\n}\n\n/**\n * Returns the first available variant.\n *\n * @param {any} product - The product.\n *\n * @returns {any} The first available variant.\n */\nexport function firstAvailableVariant(product: any): any {\n // Select first variant\n let selectedVariant = product.variants[0];\n\n // Upgrade to first available\n for (let i = 0; i < product.variants.length; i++) {\n if (variantAvailable(product.variants[i])) {\n selectedVariant = product.variants[i];\n break;\n }\n }\n\n return selectedVariant;\n}\n\n/**\n * Returns a UUID.\n *\n * @returns {string} The UUID.\n */\nexport function uuid(): string {\n let d = new Date().getTime();\n let d2 = (performance && performance.now && performance.now() * 1000) || 0;\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n let r = Math.random() * 16;\n\n if (d > 0) {\n r = (d + r) % 16 | 0;\n d = Math.floor(d / 16);\n } else {\n r = (d2 + r) % 16 | 0;\n d2 = Math.floor(d2 / 16);\n }\n\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n}\n\n/**\n * Returns a session ID.\n *\n * @returns {string} The session ID.\n */\nexport function sessionId(): string {\n const config = {\n chars: '0123456789',\n length: 12,\n };\n\n let sessionId = '';\n const sessionStart = new Date().getTime();\n\n for (let i = config.length; i > 0; i--) {\n sessionId += config.chars[Math.floor(Math.random() * config.chars.length)];\n }\n\n return `REBUY.${sessionStart}.${sessionId}`;\n}\n\n/**\n * Converts a product to the storefront format.\n *\n * @param {any} product - The product.\n *\n * @returns {any} The product in the storefront format.\n */\nexport function convertProductToStorefrontFormat(product: any): any {\n const defaultVariant = firstAvailableVariant(product);\n const minVariantPrice = variantMinMaxPriceObject(product, 'price', 'min');\n const maxVariantPrice = variantMinMaxPriceObject(product, 'price', 'max');\n const minVariantCompareAtPrice = variantMinMaxPriceObject(product, 'compare_at_price', 'min');\n const maxVariantCompareAtPrice = variantMinMaxPriceObject(product, 'compare_at_price', 'max');\n const selectedOptions = selectedVariantOptions(product, defaultVariant);\n\n const variants = product.variants.map((variant: any) => convertVariantToStorefrontFormat(product, variant));\n\n return {\n collections: null,\n compareAtPriceRange: {\n maxVariantCompareAtPrice,\n minVariantCompareAtPrice,\n },\n description: stripHtml(product.body_html),\n descriptionHtml: product.body_html,\n featuredImage: productImageObject(product, null),\n handle: product.handle,\n id: `gid://shopify/Product/${product.id}`,\n images: null,\n media: [],\n metafields: [],\n options: [\n ...product.options.map((option: any) => {\n return { name: option.name, values: option.values };\n }),\n ],\n priceRange: {\n maxVariantPrice,\n minVariantPrice,\n },\n selectedOptions,\n selectedSellingPlan: null,\n selectedSellingPlanAllocation: null,\n sellingPlanGroups: [],\n seo: { description: null, title: null },\n title: product.title,\n variants: convertToNodes(variants),\n vendor: product.vendor,\n };\n}\n\n/**\n * Converts an array to a nodes object.\n *\n * @param {any} arr - The array to convert to a nodes object.\n *\n * @returns {any} The nodes object.\n */\nexport function convertToNodes(arr: any): any {\n return {\n edges: [\n ...arr.map((node: any) => {\n return { node };\n }),\n ],\n };\n}\n\n/**\n * Converts a variant to the storefront format.\n *\n * @param {any} product - The product.\n * @param {any} variant - The variant.\n *\n * @returns {any} The variant in the storefront format.\n */\nexport function convertVariantToStorefrontFormat(product: any, variant: any): any {\n const selectedOptions = selectedVariantOptions(product, variant);\n const image = productImageObject(product, variant.image_id);\n\n return {\n availableForSale: variantAvailable(variant),\n compareAtPriceV2: variantPriceObject(variant, 'compare_at_price'),\n id: `gid://shopify/ProductVariant/${variant.id}`,\n image: image,\n priceV2: variantPriceObject(variant, 'price'),\n product: {\n handle: product.handle,\n id: product.id,\n title: product.title,\n vendor: product.vendor,\n },\n selectedOptions: [selectedOptions],\n sku: variant.sku,\n title: variant.title,\n };\n}\n\n/**\n * Returns the minimum or maximum price object for a variant.\n *\n * @param {any} product - The product.\n * @param {string} key - The key to get the price object for.\n * @param {string} operator - The operator to use. *\n *\n * @returns {any} The price object.\n */\nexport function variantMinMaxPriceObject(product: any, key: string = 'price', operator: string = 'min'): any {\n let priceObject = variantPriceObject(product.variants[0], key);\n\n for (let i = 0; i < product.variants.length; i++) {\n const variantPrice = variantPriceObject(product.variants[i], key);\n\n if (variantPrice != null) {\n const variantPriceAmount = Number(variantPrice.amount);\n const currentPriceAmount = priceObject != null ? Number(priceObject.amount) : null;\n\n if (\n currentPriceAmount == null ||\n (operator === 'min' && variantPriceAmount < currentPriceAmount) ||\n (operator === 'max' && variantPriceAmount > currentPriceAmount)\n ) {\n priceObject = variantPrice;\n }\n }\n }\n\n return priceObject;\n}\n\n/**\n * Returns the price object for a variant.\n *\n * @param {any} variant - The variant.\n * @param {string} key - The key to get the price object for.\n *\n * @returns {any} The price object.\n */\nexport function variantPriceObject(variant: any, key: string = 'price'): any {\n if (variant[key] != null) {\n return {\n amount: variant[key],\n currencyCode: 'USD',\n };\n }\n\n return null;\n}\n\n/**\n * Returns the selected variant options.\n *\n * @param {any} product - The product.\n * @param {any} variant - The variant.\n *\n * @returns {any} The selected variant options.\n */\nexport function selectedVariantOptions(product: any, variant: any): any {\n const selectedOptions: Record<string, any> = {};\n\n if (variant.option1 != null) {\n selectedOptions[product.options[0].name] = variant.option1;\n }\n\n if (variant.option2 != null) {\n selectedOptions[product.options[1].name] = variant.option2;\n }\n\n if (variant.option3 != null) {\n selectedOptions[product.options[2].name] = variant.option3;\n }\n\n return selectedOptions;\n}\n\n/**\n * Returns the product image object.\n *\n * @param {any} product - The product.\n * @param {number | null} id - The ID of the image. *\n *\n * @returns {any} The product image object.\n */\nexport function productImageObject(product: any, id: number | null): any {\n let image = null;\n\n if (product.image) {\n image = {\n altText: product.image.alt,\n height: product.image.height,\n id: `gid://shopify/ProductImage/${product.image.id}`,\n url: product.image.src,\n width: product.image.width,\n };\n }\n\n if (product.images && product.images.length > 0 && id != null) {\n const matchingImage = product.images.find((i: any) => i.id === id);\n\n if (matchingImage) {\n image = {\n altText: matchingImage.alt,\n height: matchingImage.height,\n id: `gid://shopify/ProductImage/${matchingImage.id}`,\n url: matchingImage.src,\n width: matchingImage.width,\n };\n }\n }\n\n return image;\n}\n\n/**\n * Returns a query string as an object.\n *\n * @param {string} str - The query string to convert to an object.\n *\n * @returns {any} The object.\n */\nexport function queryStringToObject(str: string): any {\n const params = new URLSearchParams(str);\n\n return Object.fromEntries(params.entries());\n}\n\n/**\n * Returns a UTM object from a string.\n *\n * @param {string} str - The string to convert to a UTM object.\n *\n * @returns {any} The UTM object.\n */\nexport function utmObjectFromString(str: string): any {\n const utmKeys = ['utm_campaign', 'utm_medium', 'utm_source', 'utm_term', 'utm_content'];\n\n const matches: Record<string, any> = {};\n\n const url = new URL(str);\n const queryObject = queryStringToObject(url.search);\n\n for (const [key, value] of Object.entries(queryObject)) {\n if (utmKeys.includes(key)) {\n matches[key] = value;\n }\n }\n\n return Object.keys(matches).length > 0 ? matches : null;\n}\n\n/**\n * Returns the amount in cents.\n *\n * @param {number} amount - The amount to convert to cents.\n *\n * @returns {number} The amount in cents.\n */\nexport function amountToCents(amount: number | string): number {\n let normalizedAmount: number = 0;\n\n if (typeof amount === 'string') {\n if (amount.indexOf('.') !== -1) {\n normalizedAmount = Math.round(parseFloat(amount) * 100);\n } else {\n normalizedAmount = parseInt(amount, 10);\n }\n } else if (typeof amount === 'number') {\n normalizedAmount = Math.round(amount * 100);\n }\n\n if (isNaN(normalizedAmount)) {\n normalizedAmount = 0;\n }\n\n return normalizedAmount;\n}\n\n/**\n * Serializes an object.\n *\n * @param {Record<string, unknown>} obj - The object to serialize.\n *\n * @returns {string} The serialized object.\n */\nexport function serialize(obj: Record<string, unknown>): string {\n const serialized: string[] = [];\n\n const add = (key: string, value: any) => {\n value = typeof value === 'function' ? value() : value;\n value = value === null ? '' : value === undefined ? '' : value;\n serialized[serialized.length] = encodeURIComponent(key) + '=' + encodeURIComponent(value);\n };\n\n const buildParameters = (prefix: string, obj: any) => {\n let i, key, len;\n\n if (prefix) {\n if (Array.isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n buildParameters(prefix + '[' + (typeof obj[i] === 'object' && obj[i] ? i : '') + ']', obj[i]);\n }\n } else if (Object.prototype.toString.call(obj) === '[object Object]') {\n for (key in obj) {\n buildParameters(prefix + '[' + key + ']', obj[key]);\n }\n } else {\n add(prefix, obj);\n }\n } else if (Array.isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n add(obj[i].name, obj[i].value);\n }\n } else {\n for (key in obj) {\n buildParameters(key, obj[key]);\n }\n }\n\n return serialized;\n };\n\n return buildParameters('', obj).join('&');\n}\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { serialize } from '~/utilities';\n\n// Type definitions\n\ntype Config = {\n /**\n * @deprecated\n */\n cdnDomain: string;\n domain: string;\n eventDomain: string;\n geoDomain: string;\n key: string | null;\n shieldDomain: string;\n shop: string | null;\n staticDomain: string;\n};\n\ntype Staging = Omit<Config, 'key' | 'shop'>;\n\ntype FetchOptions = {\n fetch?: RequestInit & { strictErrors?: boolean };\n};\n\ntype RequestData = Record<string, any> | null;\n\nconst staging: Staging = {\n /**\n * @deprecated\n */\n cdnDomain: 'https://cdn.enigneyuber.com',\n domain: 'https://enigneyuber.com',\n eventDomain: 'https://enigneyuber.com',\n geoDomain: 'https://geo.enigneyuber.com',\n shieldDomain: 'https://cached.enigneyuber.com',\n staticDomain: 'https://cdn.enigneyuber.com',\n};\n\nconst stagingDomains: string[] = [\n 'enigneyuber.com',\n 'rebuy-engine-regression.myshopify.com',\n 'rebuy-stage-currency-test.myshopify.com',\n 'rebuy-staging-automation.myshopify.com',\n 'rebuy-staging-regression.myshopify.com',\n 'rebuy-uat.myshopify.com',\n 'rebuy-regression-qa.myshopify.com',\n 'senator-staging.myshopify.com',\n 'mike-reids-test-store.myshopify.com',\n 'dash-ext-hoke.myshopify.com',\n];\n\nconst makeCall = async (\n key: string | null,\n method: string,\n path: string,\n data: RequestData,\n origin: string,\n options: FetchOptions = {}\n): Promise<any> => {\n const url = `${origin}${path}`;\n const requestUrl = new URL(url);\n const fetchOptions = options?.fetch ?? {};\n\n const requestData: RequestData = {};\n\n if (typeof data == 'object' && data != null) {\n Object.assign(requestData, data);\n }\n\n if (typeof key == 'string' && key.length > 0) {\n Object.assign(requestData, { key: key });\n }\n\n const requestObject: RequestInit & { strictErrors?: boolean } = {\n method,\n ...fetchOptions,\n };\n\n if (method === 'GET') {\n requestUrl.search = serialize(requestData);\n } else if (method === 'POST') {\n requestObject.headers = {\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n };\n requestObject.body = new URLSearchParams(requestData) as any;\n }\n\n const request = await fetch(requestUrl.toString(), requestObject);\n const response = await request.json();\n\n if (!request.ok && fetchOptions.strictErrors === true) {\n const message = `An error has occurred: ${request.status}`;\n throw new Error(message, { cause: response });\n }\n\n return response;\n};\n\nexport class Api {\n private config: Config;\n\n constructor(options: string | Partial<Config> | null) {\n this.config = {\n /**\n * @deprecated\n */\n cdnDomain: 'https://cdn.rebuyengine.com',\n domain: 'https://rebuyengine.com',\n eventDomain: 'https://rebuyengine.com',\n geoDomain: 'https://geo.rebuyengine.com',\n key: null,\n shieldDomain: 'https://cached.rebuyengine.com',\n shop: null,\n staticDomain: 'https://cdn.rebuyengine.com',\n };\n\n if (typeof options == 'string') {\n this.config.key = options;\n } else if (typeof options == 'object' && options != null) {\n Object.assign(this.config, options);\n }\n\n for (const domain of stagingDomains) {\n if (typeof location === 'object' && (location as any)?.host?.includes(domain)) {\n Object.assign(this.config, staging);\n break;\n }\n\n if (typeof this.config.shop === 'string' && this.config.shop.includes(domain)) {\n Object.assign(this.config, staging);\n break;\n }\n }\n }\n\n async callEvent(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.eventDomain, options);\n }\n\n async callShield(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.shieldDomain, options);\n }\n\n async callStatic(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.staticDomain, options);\n }\n\n async callGeo(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.geoDomain, options);\n }\n\n async callCdn(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.cdnDomain, options);\n }\n\n async callApi(method: string, path: string, data: RequestData, options?: FetchOptions): Promise<any> {\n return await makeCall(this.config.key, method, path, data, this.config.domain, options);\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default Api;\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { dataToString, isBase64Encoded, stringToData } from '~/utilities';\n\n/**\n * Get a cookie by name\n *\n * @param {string} name - The name of the cookie to get\n *\n * @returns {any} The value of the cookie or null if the cookie is not found\n */\nexport function get(name: string): any | null {\n if (typeof document == 'undefined' || !document.cookie) {\n return null;\n }\n\n // Get cookie\n const cookie = document.cookie.match('(^|;) ?' + decodeURIComponent(name) + '=([^;]*)(;|$)');\n\n let value: any = null;\n\n if (cookie != null) {\n // Get data\n const data = decodeURIComponent(cookie[2]);\n\n // Auto decode\n const decode = isBase64Encoded(data) ? true : false;\n\n // Convert to data object\n value = stringToData(data, decode);\n }\n\n return value;\n}\n\n/**\n * Get all cookies\n *\n * @returns {Record<string, any>} All cookies\n */\nexport function getAll(): Record<string, any> {\n const cookies: Record<string, any> = {};\n\n if (document && document.cookie && document.cookie !== '') {\n const split = document.cookie.split(';');\n\n for (let i = 0; i < split.length; i++) {\n const pairs = split[i].split('=');\n\n pairs[0] = pairs[0].replace(/^ /, '');\n\n const key = decodeURIComponent(pairs[0]);\n const value = decodeURIComponent(pairs[1]);\n\n // Auto decode\n const decode = isBase64Encoded(value) ? true : false;\n\n cookies[key] = stringToData(value, decode);\n }\n }\n\n return cookies;\n}\n\n/**\n * Set a cookie\n *\n * @param {string} name - The name of the cookie\n * @param {any} value - The value of the cookie\n * @param {any} config - The configuration of the cookie\n *\n * @returns {void}\n */\nexport function set(name: string, value: any, config: any): void {\n if (typeof document == 'undefined' || !document.cookie) {\n return;\n }\n\n const attributes = ['path', 'domain', 'maxAge', 'expires', 'secure', 'sameSite'];\n const convenienceTimes = ['seconds', 'minutes', 'hours', 'days', 'weeks', 'months', 'years'];\n\n const cookieAttributes: Record<string, any> = {\n path: '/',\n };\n\n if (typeof config != 'undefined' && Number.isInteger(config)) {\n cookieAttributes['max-age'] = config;\n } else if (typeof config === 'object' && config !== null) {\n for (const key in config) {\n if (attributes.includes(key)) {\n if (key === 'maxAge') {\n cookieAttributes['max-age'] = config[key];\n } else if (key === 'sameSite') {\n cookieAttributes['samesite'] = config[key];\n } else if (key === 'expires') {\n cookieAttributes[key] = new Date(config[key]).toUTCString();\n } else {\n cookieAttributes[key] = config[key];\n }\n } else if (convenienceTimes.includes(key)) {\n let duration = config[key];\n\n if (key === 'seconds') {\n duration = duration * 1;\n } else if (key === 'minutes') {\n duration = duration * 60;\n } else if (key === 'hours') {\n duration = duration * 60 * 60;\n } else if (key === 'days') {\n duration = duration * 60 * 60 * 24;\n } else if (key === 'weeks') {\n duration = duration * 60 * 60 * 24 * 7;\n } else if (key === 'months') {\n duration = duration * 60 * 60 * 24 * 30;\n } else if (key === 'years') {\n duration = duration * 60 * 60 * 24 * 365;\n }\n\n cookieAttributes['max-age'] = duration;\n }\n }\n }\n\n // Convert data to string\n value = dataToString(value, config?.encode);\n\n // Define cookie\n let cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n\n // Add optional cookie attributes\n for (const key in cookieAttributes) {\n cookie += ';' + key + '=' + cookieAttributes[key];\n }\n\n // Write cookie\n document.cookie = cookie;\n}\n\n/**\n * Find all cookies that match a name\n *\n * @param {string} name - The name of the cookie to find\n *\n * @returns {Array<{ name: string; value: any }>} All cookies that match the name\n */\nexport function find(name: string): { name: string; value: any }[] {\n const matches: { name: string; value: any }[] = [];\n const cookies = getAll();\n\n for (const key in cookies) {\n if (key.includes(name)) {\n matches.push({\n name: key,\n value: cookies[key],\n });\n }\n }\n\n return matches;\n}\n\n/**\n * Destroy a cookie\n *\n * @param {string} name - The name of the cookie to destroy\n */\nexport function destroy(name: string): void {\n set(name, '', { encode: false, seconds: 0 });\n}\n\n/**\n * Check if cookies are enabled\n *\n * @returns {boolean} True if cookies are enabled, false otherwise\n */\nexport function enabled(): boolean {\n const test = {\n key: '__cookie_test',\n value: 1,\n };\n\n set(test.key, test.value, { encode: false });\n\n const enabled = get(test.key) === test.value ? true : false;\n\n if (enabled) {\n destroy(test.key);\n }\n\n return enabled;\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default { destroy, enabled, find, get, getAll, set };\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport Api from '~/api';\nimport Cookie from '~/cookie';\n\ntype Config = {\n geolocation: any;\n geolocationCookie: string;\n geolocationDuration: {\n minutes: number;\n };\n key: string | null;\n};\n\nexport class Geolocation {\n private config: Config;\n\n constructor(key: string | null) {\n this.config = {\n geolocation: null,\n geolocationCookie: '_rebuyGeolocation',\n geolocationDuration: {\n minutes: 30,\n },\n key: null,\n };\n\n if (typeof document == 'undefined' || !document.cookie) {\n return;\n }\n\n if (typeof key == 'string') {\n this.config.key = key;\n }\n\n this.config.geolocation = Cookie.get(this.config.geolocationCookie);\n\n // Create a new geolocation (if needed)\n if (this.config.geolocation === null) {\n this._fetchGeolocation();\n }\n }\n\n async _fetchGeolocation(): Promise<any> {\n const api = new Api({ key: this.config.key });\n const response = await api.callGeo('GET', '/', null);\n\n if (response.data) {\n // Update instance config with geolocation\n this.config.geolocation = response.data;\n\n // Write cookie with geolocation\n const cookieOptions: Record<string, any> = {\n secure: true,\n };\n\n // Merge cookie options with geolocation config\n Object.assign(cookieOptions, this.config.geolocationDuration);\n\n // Write cookie with geolocation\n Cookie.set(this.config.geolocationCookie, this.config.geolocation, { ...cookieOptions, encode: false });\n }\n\n return this.config.geolocation;\n }\n\n async geolocation(): Promise<any> {\n if (this.config.geolocation == null) {\n await this._fetchGeolocation();\n }\n\n return this.config.geolocation;\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default Geolocation;\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport Cookie from '~/cookie';\nimport { sessionId } from '~/utilities';\n\ntype Config = {\n now: number | null;\n sessionDuration: {\n minutes: number;\n };\n sessionId: string | null;\n sessionIdCookie: string;\n};\n\nconst config: Config = {\n now: null,\n sessionDuration: {\n minutes: 30,\n },\n sessionId: null,\n sessionIdCookie: '_rebuySessionId',\n};\n\nexport class Session {\n constructor() {\n if (typeof document == 'undefined' || !document.cookie) {\n return;\n }\n\n config.now = new Date().getTime();\n config.sessionId = Cookie.get(config.sessionIdCookie);\n\n // Create a new session (if needed)\n if (config.sessionId === null) {\n config.sessionId = sessionId();\n }\n\n // Write cookie with session ID\n const cookieOptions: Record<string, any> = {\n secure: true,\n };\n\n // Merge cookie options with session config\n Object.assign(cookieOptions, config.sessionDuration);\n\n // Write cookie with session ID\n Cookie.set(config.sessionIdCookie, config.sessionId, cookieOptions);\n }\n\n sessionId(): string | null {\n return config.sessionId;\n }\n\n sessionStart(): number {\n return config.sessionId ? Number(config.sessionId.split('.')[1]) : 0;\n }\n\n sessionDuration(): number {\n return config.now !== null ? parseInt(((config.now - this.sessionStart()) / 1000 / 60).toString()) : 0;\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default Session;\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport Cookie from '~/cookie';\nimport Geolocation from '~/geolocation';\nimport Session from '~/session';\nimport { uuid } from '~/utilities';\n\ntype Config = {\n geolocation?: any;\n key: string | null;\n session: any;\n visitorDuration: {\n years: number;\n };\n visitorId: string | null;\n visitorIdCookie: string;\n};\n\nexport class Identity {\n private config: Config;\n\n constructor(key: string | null) {\n this.config = {\n geolocation: null,\n key: null,\n session: null,\n visitorDuration: {\n years: 1,\n },\n visitorId: null,\n visitorIdCookie: '_rebuyVisitorId',\n };\n\n if (typeof document == 'undefined' || !document.cookie) {\n return;\n }\n\n if (typeof key == 'string') {\n this.config.key = key;\n }\n\n this.config.visitorId = Cookie.get(this.config.visitorIdCookie);\n\n // Create a new identifier (if needed)\n if (this.config.visitorId === null) {\n this.config.visitorId = uuid();\n }\n\n // Write cookie with visitor ID\n const cookieOptions: Record<string, any> = {\n secure: true,\n };\n\n // Merge cookie options with visitor config\n Object.assign(cookieOptions, this.config.visitorDuration);\n\n // Write cookie with session ID\n Cookie.set(this.config.visitorIdCookie, this.config.visitorId, cookieOptions);\n\n // Create visitor session\n this.config.session = new Session();\n\n // Create visitor geolocation, passing the key\n this.config.geolocation = new Geolocation(this.config.key);\n }\n\n visitorId(): string | null {\n return this.config.visitorId;\n }\n\n sessionId(): string | null {\n return this.config.session ? this.config.session.sessionId() : null;\n }\n\n sessionStart(): string | null {\n return this.config.session ? this.config.session.sessionStart() : null;\n }\n\n sessionDuration(): string | null {\n return this.config.session ? this.config.session.sessionDuration() : null;\n }\n\n async geolocation(): Promise<any> {\n return this.config.geolocation ? await this.config.geolocation.geolocation() : null;\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default Identity;\n", "/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport Api from '~/api';\nimport Identity from '~/identity';\nimport { convertProductToStorefrontFormat } from '~/utilities';\n\ntype Config = {\n api: any;\n contextParameters: Record<string, any> | null;\n defaultParameters: Record<string, any> | null;\n identity: any;\n key: string | null;\n shop: string | null;\n};\n\nconst trackEvent = async (config: Config, eventData: Record<string, any>): Promise<any> => {\n if (config.identity && config.identity.visitorId()) {\n eventData.uuid = config.identity.visitorId();\n }\n\n return await config.api.callEvent('POST', '/api/v1/analytics/event', eventData);\n};\n\nconst makeShieldCall = async (\n config: Config,\n endpoint: string,\n params: Record<string, any>,\n format: string | null,\n options: Record<string, any> = {}\n): Promise<any> => {\n return await makeCall(config, endpoint, params, format, { ...options, shield: true });\n};\n\nconst makeStaticCall = async (\n config: Config,\n endpoint: string,\n params: Record<string, any>,\n format: string | null,\n options: Record<string, any> = {}\n): Promise<any> => {\n return await makeCall(config, endpoint, params, format, { ...options, static: true });\n};\n\nconst makeCDNCall = async (\n config: Config,\n endpoint: string,\n params: Record<string, any>,\n format: string | null,\n options: Record<string, any> = {}\n): Promise<any> => {\n return await makeCall(config, endpoint, params, format, { ...options, cdn: true });\n};\n\nconst makeCall = async (\n config: Config,\n endpoint: string,\n params: Record<string, any>,\n format: string | null,\n options: Record<string, any> = {}\n): Promise<any> => {\n const query: Record<string, any> = {};\n\n if (config.defaultParameters != null) {\n Object.assign(query, config.defaultParameters);\n }\n\n if (config.contextParameters != null) {\n Object.assign(query, config.contextParameters);\n }\n\n if (typeof params == 'object' && params != null) {\n Object.assign(query, params);\n }\n\n if (typeof options != 'object' || options == null) {\n console.warn('Unsupported fetch options provided.', options);\n options = {};\n }\n\n if (config.identity && config.identity.visitorId()) {\n query.uuid = config.identity.visitorId();\n }\n\n // Origin or dedicated edge?\n const source = options.cdn ? 'callCdn' : options.shield ? 'callShield' : options.static ? 'callStatic' : 'callApi';\n const response = await config.api[source]('GET', endpoint, query, options);\n\n if (response.data && format === 'storefront') {\n for (let i = 0; i < response.data.length; i++) {\n response.data[i] = convertProductToStorefrontFormat(response.data[i]);\n }\n }\n\n return response;\n};\n\nexport class RebuyClient {\n private config: Config;\n\n constructor(key?: string, defaultParameters?: Record<string, any>, shop?: string) {\n this.config = {\n api: null,\n contextParameters: null,\n defaultParameters: null,\n identity: null,\n key: null,\n shop: null,\n };\n\n if (typeof key == 'string') {\n this.config.key = key;\n }\n\n if (typeof defaultParameters == 'object' && defaultParameters != null) {\n this.config.defaultParameters = defaultParameters;\n }\n\n if (typeof shop == 'string' && shop.endsWith('.myshopify.com')) {\n this.config.shop = shop;\n }\n\n this.config.api = new Api({ key: this.config.key, shop: this.config.shop });\n this.config.identity = new Identity(this.config.key);\n }\n\n setDefaultParameters(defaultParameters: Record<string, any>): void {\n if (typeof defaultParameters == 'object' && defaultParameters != null) {\n this.config.defaultParameters = defaultParameters;\n }\n }\n\n setContextParameters(contextParameters: Record<string, any>): void {\n if (typeof contextParameters == 'object' && contextParameters != null) {\n this.config.contextParameters = contextParameters;\n }\n }\n\n async getData(endpoint: string, params: Record<string, any>, options: Record<string, any> = {}): Promise<any> {\n return await makeCall(this.config, endpoint, params, null, options);\n }\n\n async getDataFromCDN(\n endpoint: string,\n params: Record<string, any>,\n options: Record<string, any> = {}\n ): Promise<any> {\n return await makeCDNCall(this.config, endpoint, params, null, options);\n }\n\n async getShieldedAsset(\n endpoint: string,\n params: Record<string, any>,\n options: Record<string, any> = {}\n ): Promise<any> {\n return await makeShieldCall(this.config, endpoint, params, null, options);\n }\n\n async getStaticAsset(\n endpoint: string,\n params: Record<string, any>,\n options: Record<string, any> = {}\n ): Promise<any> {\n return await makeStaticCall(this.config, endpoint, params, null, options);\n }\n\n async getStorefrontData(\n endpoint: string,\n params: Record<string, any>,\n options: Record<string, any> = {}\n ): Promise<any> {\n return await makeCall(this.config, endpoint, params, 'storefront', options);\n }\n\n async trackProductViewed(data: Record<string, any>): Promise<any> {\n const requiredKeys = ['shopify_product_id', 'shopify_product_handle'];\n\n const defaultData = {\n noun: 'product',\n subject: 'user',\n verb: 'viewed',\n };\n\n if (typeof data != 'undefined' && data != null) {\n const dataKeys = Object.keys(data);\n\n if (dataKeys.some((key) => requiredKeys.includes(key))) {\n const payload = Object.assign(data, defaultData);\n\n return await trackEvent(this.config, payload);\n }\n }\n\n return null;\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default RebuyClient;\n", "import { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport { buttonActions, ButtonStyle, buttonStyles, SectionType } from '~/schema/common';\nimport { CABImageSection } from '~/schema/image';\nimport { HEX_COLOR_REGEX } from '~/schema/regex';\nimport { CABTextSection } from '~/schema/text';\n\nexport const CABButtonContent = z.discriminatedUnion('sectionType', [CABImageSection, CABTextSection]);\n\nexport type CABButtonContent = z.infer<typeof CABButtonContent>;\n\nexport const CABButtonSection = z.strictObject({\n action: z.union([z.literal(''), z.enum(buttonActions)]).default(''),\n buttonStyle: z.enum(buttonStyles).default(ButtonStyle.primary),\n custom: z\n .strictObject({\n color: z.string().regex(HEX_COLOR_REGEX).default('#005bd3'),\n height: z.number().default(52),\n width: z.number().default(300),\n })\n .default({\n color: '#005bd3',\n height: 52,\n width: 300,\n }),\n name: z.string().optional(),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sections: z.array(CABButtonContent).default(() => []),\n sectionType: z.literal(SectionType.button).default(SectionType.button),\n});\n\nexport type CABButtonSection = z.infer<typeof CABButtonSection>;\n", "import { z } from 'zod/v4';\n\nexport const borderRadii = ['none', 'small', 'base', 'large', 'fullyRounded'] as const;\nconst borderRadius = z.enum(borderRadii);\n\nexport const BorderRadius = borderRadius.enum;\nexport type BorderRadius = z.infer<typeof borderRadius>;\n\nexport const borderStyles = ['none', 'base', 'dotted', 'dashed'] as const;\nconst borderStyle = z.enum(borderStyles);\n\nexport const BorderStyle = borderStyle.enum;\nexport type BorderStyle = z.infer<typeof borderStyle>;\n\nexport const borderWidths = ['base', 'medium', 'thick'] as const;\nconst borderWidth = z.enum(borderWidths);\n\nexport const BorderWidth = borderWidth.enum;\nexport type BorderWidth = z.infer<typeof borderWidth>;\n\nexport const buttonActions = [\n 'addToOrder',\n 'declineAllOffers',\n 'declineOffer',\n 'goToRebuyApp',\n 'goToRebuyVault',\n 'goToURL',\n 'removeFromCart',\n 'showVariants',\n 'switchToSubscription',\n] as const;\n\nconst buttonAction = z.enum(buttonActions);\n\nexport const ButtonAction = buttonAction.enum;\nexport type ButtonAction = z.infer<typeof buttonAction>;\n\nexport const buttonFields = [\n 'addedToCart',\n 'addingToCart',\n 'addToCart',\n 'buttonLabel',\n 'declineAllOffers',\n 'declineOffer',\n 'destinationUrl',\n 'payNow',\n 'removeFromCart',\n 'showVariant',\n 'showVariants',\n 'soldOut',\n 'switchToOneTimeAction',\n 'switchToOneTimePurchase',\n 'switchToSubscriptionAction',\n 'switchToSubscriptionNoDiscount',\n 'switchToSubscriptionWithDiscount',\n] as const;\n\nconst buttonField = z.enum(buttonFields);\n\nexport const ButtonField = buttonField.enum;\nexport type ButtonField = z.infer<typeof buttonField>;\n\nexport const buttonStyles = ['primary', 'secondary', 'plain', 'custom'] as const;\nconst buttonStyle = z.enum(buttonStyles);\n\nexport const ButtonStyle = buttonStyle.enum;\nexport type ButtonStyle = z.infer<typeof buttonStyle>;\n\nexport const directions = ['columns', 'rows'] as const;\nconst direction = z.enum(directions);\n\nexport const Direction = direction.enum;\nexport type Direction = z.infer<typeof direction>;\n\nexport const editorModes = [\n 'checkoutExtension',\n 'postPurchaseOffer',\n 'thankYouPage',\n 'orderStatusPage',\n 'ordersIndexPage',\n 'customerProfilePage',\n] as const;\n\nconst editorMode = z.enum(editorModes);\n\nexport const EditorMode = editorMode.enum;\nexport type EditorMode = z.infer<typeof editorMode>;\n\nexport const horizontalAlignments = ['start', 'center', 'end'] as const;\nconst horizontalAlignment = z.enum(horizontalAlignments);\n\nexport const HorizontalAlignment = horizontalAlignment.enum;\nexport type HorizontalAlignment = z.infer<typeof horizontalAlignment>;\n\nexport const languageKeys = [\n 'ar',\n 'cs',\n 'da',\n 'de',\n 'en',\n 'es',\n 'fi',\n 'fr',\n 'ga',\n 'he',\n 'hi',\n 'id',\n 'it',\n 'ja',\n 'ko',\n 'nl',\n 'no',\n 'pl',\n 'pt',\n 'ru',\n 'sv',\n 'th',\n 'tr',\n 'uk',\n 'vi',\n 'zh',\n] as const;\n\nconst languageKey = z.enum(languageKeys);\n\nexport const LanguageKey = languageKey.enum;\nexport type LanguageKey = z.infer<typeof languageKey>;\n\nexport const objectFits = ['cover', 'contain'] as const;\nconst objectFit = z.enum(objectFits);\n\nexport const ObjectFit = objectFit.enum;\nexport type ObjectFit = z.infer<typeof objectFit>;\n\nexport const quantityInputs = ['select', 'number'] as const;\nconst quantityInput = z.enum(quantityInputs);\n\nexport const QuantityInput = quantityInput.enum;\nexport type QuantityInput = z.infer<typeof quantityInput>;\n\nexport const sectionTypes = [\n 'button',\n 'dataSource',\n 'image',\n 'layout',\n 'offers',\n 'product',\n 'products',\n 'quantity',\n 'reviews',\n 'subscription',\n 'table',\n 'text',\n 'variants',\n] as const;\n\nconst sectionType = z.enum(sectionTypes);\n\nexport const SectionType = sectionType.enum;\nexport type SectionType = z.infer<typeof sectionType>;\n\nexport const spacings = ['none', 'extraTight', 'tight', 'base', 'loose', 'extraLoose'] as const;\nconst spacing = z.enum(spacings);\n\nexport const Spacing = spacing.enum;\nexport type Spacing = z.infer<typeof spacing>;\n\nexport const textAlignments = ['start', 'center', 'end'] as const;\nconst textAlignment = z.enum(textAlignments);\n\nexport const TextAlignment = textAlignment.enum;\nexport type TextAlignment = z.infer<typeof textAlignment>;\n\nexport const textColorNames = ['base', 'subdued', 'accent', 'decorative', 'success', 'warning', 'critical'] as const;\nconst textColorName = z.enum(textColorNames);\n\nexport const TextColorName = textColorName.enum;\nexport type TextColorName = z.infer<typeof textColorName>;\n\nexport const textSizeNames = ['extraSmall', 'small', 'base', 'medium', 'large', 'extraLarge'] as const;\nconst textSizeName = z.enum(textSizeNames);\n\nexport const TextSizeName = textSizeName.enum;\nexport type TextSizeName = z.infer<typeof textSizeName>;\n\nexport const variantSelectors = ['menu', 'button', 'radio', 'color', 'image'] as const;\nconst variantSelector = z.enum(variantSelectors);\n\nexport const VariantSelector = variantSelector.enum;\nexport type VariantSelector = z.infer<typeof variantSelector>;\n\nexport const verticalAlignments = ['top', 'middle', 'bottom'] as const;\nconst verticalAlignment = z.enum(verticalAlignments);\n\nexport const VerticalAlignment = verticalAlignment.enum;\nexport type VerticalAlignment = z.infer<typeof verticalAlignment>;\n", "import { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport { buttonFields, ObjectFit, objectFits, SectionType } from '~/schema/common';\nimport { DYNAMIC_TOKEN_REGEX } from '~/schema/regex';\nimport { CABBorder } from '~/schema/shared';\nimport { checkForHTML, NO_HTML } from '~/schema/utils';\n\nexport const CABImageSection = z.strictObject({\n altText: z.string().refine(checkForHTML, NO_HTML).default(''),\n aspectRatio: z.literal(1).nullable().default(null),\n border: CABBorder,\n buttonField: z.enum(buttonFields).optional(),\n category: z.enum(['gallery', 'icons', 'payment-methods', 'secure-checkout']).nullable().default(null),\n name: z.string().optional(),\n naturalHeight: z.number().default(0),\n naturalWidth: z.number().default(0),\n objectFit: z.enum(objectFits).default(ObjectFit.cover),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sectionType: z.literal(SectionType.image).default(SectionType.image),\n source: z.union([z.url(), z.literal(''), z.string().regex(DYNAMIC_TOKEN_REGEX)]).default(''),\n width: z.number().default(100),\n});\n\nexport type CABImageSection = z.infer<typeof CABImageSection>;\n", "/** Matches a dynamic token. */\nexport const DYNAMIC_TOKEN_REGEX = /^\\{\\{\\s*[A-Za-z]+\\s*\\}\\}$/;\n\n/** Matches a valid hex color code. */\nexport const HEX_COLOR_REGEX = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;\n\n/** Matches any HTML tags. */\nexport const HTML_TAGS_REGEX = /<[^>]*>/gi;\n", "import { z, type ZodType } from 'zod/v4';\n\nimport { CABButtonSection } from '~/schema/button';\nimport { borderRadii, BorderRadius, BorderStyle, borderStyles, BorderWidth, borderWidths } from '~/schema/common';\nimport { CABDataSourceSection } from '~/schema/data-source';\nimport { CABImageSection } from '~/schema/image';\nimport { CABLayoutSection } from '~/schema/layout';\nimport { CABOffersSection } from '~/schema/offers';\nimport { CABProductSection } from '~/schema/product';\nimport { CABProductsSection } from '~/schema/products';\nimport { CABQuantitySection } from '~/schema/quantity';\nimport { CABReviewsSection } from '~/schema/reviews';\nimport { CABSubscriptionSection } from '~/schema/subscription';\nimport { CABTableSection } from '~/schema/table';\nimport { CABTextSection } from '~/schema/text';\nimport { CABVariantsSection } from '~/schema/variants';\n\nexport const CABBorder = z\n .strictObject({\n radius: z.enum(borderRadii).default(BorderRadius.base),\n style: z.enum(borderStyles).default(BorderStyle.none),\n width: z.enum(borderWidths).default(BorderWidth.base),\n })\n .default({\n radius: BorderRadius.base,\n style: BorderStyle.none,\n width: BorderWidth.base,\n });\n\nexport type CABBorder = z.infer<typeof CABBorder>;\n\nexport const CABSection: ZodType<CABSection> = z.lazy(() =>\n z.discriminatedUnion('sectionType', [\n CABButtonSection,\n CABDataSourceSection,\n CABImageSection,\n CABLayoutSection,\n CABOffersSection,\n CABProductSection,\n CABProductsSection,\n CABQuantitySection,\n CABReviewsSection,\n CABSubscriptionSection,\n CABTableSection,\n CABTextSection,\n CABVariantsSection,\n ])\n);\n\nexport type CABSection =\n | CABButtonSection\n | CABDataSourceSection\n | CABImageSection\n | CABLayoutSection\n | CABOffersSection\n | CABProductSection\n | CABProductsSection\n | CABQuantitySection\n | CABReviewsSection\n | CABSubscriptionSection\n | CABTableSection\n | CABTextSection\n | CABVariantsSection;\n", "import { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport { SectionType } from '~/schema/common';\nimport { DEFAULT_ENDPOINTS } from '~/schema/constants';\n\nexport const CABDataSourceSection = z.strictObject({\n dataSourceId: z.number().nullable().default(null),\n dataSourcePath: z.string().default(DEFAULT_ENDPOINTS[0].value),\n limit: z.number().default(1),\n name: z.string().default(DEFAULT_ENDPOINTS[0].label),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sectionType: z.literal(SectionType.dataSource).default(SectionType.dataSource),\n});\n\nexport type CABDataSourceSection = z.infer<typeof CABDataSourceSection>;\n", "import { uniqBy } from 'lodash-es';\nimport { z } from 'zod/v4';\n\nimport { EditorMode } from '~/schema/common';\nimport { type TargetArea } from '~/schema/root';\n\nexport const DEFAULT_ENDPOINTS = [\n { label: 'Recommended (AI)', value: '/products/recommended' },\n { label: 'Top Sellers', value: '/products/top_sellers' },\n { label: 'Buy It Again', value: '/products/purchased' },\n { label: 'Recently Viewed', value: '/products/viewed' },\n { label: 'Products Search', value: '/products/search' },\n { label: 'Collection Products', value: '/products/collections' },\n { label: 'Similar Products (AI)', value: '/products/similar_products' },\n] as const;\n\nexport const STATIC_ENDPOINTS = [\n { label: 'Recommended (AI)', value: '/products/recommended' },\n { label: 'Top Sellers', value: '/products/top_sellers' },\n { label: 'Trending Products', value: '/products/trending_products' },\n { label: 'Buy It Again', value: '/products/purchased' },\n { label: 'Collection Products', value: '/products/collections' },\n { label: 'Recently Viewed', value: '/products/viewed' },\n { label: 'Static Products', value: '/products/static' },\n { label: 'Products Search', value: '/products/search' },\n { label: 'Similar Products (AI)', value: '/products/similar_products' },\n] as const;\n\nexport const COMBINED_ENDPOINTS = uniqBy([...DEFAULT_ENDPOINTS, ...STATIC_ENDPOINTS], 'value');\n\nexport const targetAreas = {\n [EditorMode.checkoutExtension]: [\n { icon: 'splitscreen_top', label: 'Header Area', width: '984px' },\n { icon: 'splitscreen_left', label: 'Main Column', width: '503px' },\n { icon: 'splitscreen_right', label: 'Summary Column', width: '404px' },\n ] satisfies TargetArea[],\n [EditorMode.postPurchaseOffer]: null,\n [EditorMode.thankYouPage]: [\n { icon: 'splitscreen_top', label: 'Header Area', width: '984px' },\n { icon: 'splitscreen_left', label: 'Main Column', width: '503px' },\n { icon: 'splitscreen_right', label: 'Summary Column', width: '404px' },\n ] satisfies TargetArea[],\n [EditorMode.orderStatusPage]: [\n // { fill: true, flip: 'vertical', icon: 'bottom_navigation', label: 'Announcement Bar' },\n { icon: 'splitscreen_top', label: 'Header Area', width: '1124px' },\n { fill: true, icon: 'view_column_2', label: 'Main Area', width: '646px' },\n { icon: 'splitscreen_bottom', label: 'Footer Area', width: '1124px' },\n ] satisfies TargetArea[],\n [EditorMode.ordersIndexPage]: [\n // { fill: true, flip: 'vertical', icon: 'bottom_navigation', label: 'Announcement Bar' },\n { icon: 'splitscreen_top', label: 'Main Area', width: '1124px' },\n ] satisfies TargetArea[],\n [EditorMode.customerProfilePage]: [\n // { fill: true, flip: 'vertical', icon: 'bottom_navigation', label: 'Announcement Bar' },\n { icon: 'splitscreen_top', label: 'Main Area', width: '1124px' },\n ] satisfies TargetArea[],\n} as const;\n\nexport const widgetTypes = [\n 'bundle_builder',\n 'cart',\n 'cart_subscription',\n 'dynamic_bundle',\n 'gift_with_purchase',\n 'pre_purchase',\n 'product',\n 'product_addon',\n 'product_upsell',\n 'recharge_checkout',\n 'recharge_customer_portal',\n 'recharge_post_purchase',\n 'shopify_checkout',\n 'shopify_checkout_extension',\n 'shopify_post_purchase',\n 'shopify_post_purchase_extension',\n 'switch_to_subscription',\n 'ui_extension_ad',\n 'ui_extension_button',\n 'ui_extension_content_block',\n 'ui_extension_line_item_editor',\n 'ui_extension_progress_bar',\n] as const;\n\nconst widgetType = z.enum(widgetTypes);\n\nexport const WidgetType = widgetType.enum;\nexport type WidgetType = z.infer<typeof widgetType>;\n", "import { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport {\n Direction,\n directions,\n HorizontalAlignment,\n horizontalAlignments,\n SectionType,\n Spacing,\n spacings,\n VerticalAlignment,\n verticalAlignments,\n} from '~/schema/common';\nimport { CABBorder, CABSection } from '~/schema/shared';\n\nexport const CABLayoutSection = z.strictObject({\n alignment: z\n .strictObject({\n horizontal: z.enum(horizontalAlignments).default(HorizontalAlignment.start),\n vertical: z.enum(verticalAlignments).default(VerticalAlignment.top),\n })\n .default({\n horizontal: HorizontalAlignment.start,\n vertical: VerticalAlignment.top,\n }),\n border: CABBorder,\n direction: z.enum(directions).default(Direction.rows),\n name: z.string().optional(),\n padding: z.enum(spacings).default(Spacing.none),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sections: z.array(z.lazy(() => CABSection)).default(() => []),\n sectionType: z.literal(SectionType.layout).default(SectionType.layout),\n spacing: z.enum(spacings).default(Spacing.base),\n width: z.number().default(100),\n});\n\nexport type CABLayoutSection = {\n alignment: {\n horizontal: HorizontalAlignment;\n vertical: VerticalAlignment;\n };\n border: CABBorder;\n direction: Direction;\n name?: string;\n padding: Spacing;\n sectionId: string;\n sections: CABSection[];\n sectionType: typeof SectionType.layout;\n spacing: Spacing;\n width: number;\n};\n", "import { z } from 'zod/v4';\n\nimport { SectionType } from '~/schema/common';\nimport { CABDataSourceSection } from '~/schema/data-source';\nimport { CABLayoutSection } from '~/schema/layout';\nimport { CABProductsSection } from '~/schema/products';\nimport { CABSection } from '~/schema/shared';\n\nexport const CABOffersSection = CABLayoutSection.omit({ sections: true, sectionType: true }).extend(\n z.strictObject({\n sections: z\n .array(z.lazy(() => CABSection))\n .default(() => [CABDataSourceSection.parse({}), CABProductsSection.parse({})]),\n sectionType: z.literal(SectionType.offers).default(SectionType.offers),\n }).shape\n);\n\nexport type CABOffersSection = Omit<CABLayoutSection, 'sectionType'> & {\n sectionType: typeof SectionType.offers;\n};\n", "import { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport { SectionType } from '~/schema/common';\nimport { CABProductSection } from '~/schema/product';\n\nexport const CABProductsSection = z.strictObject({\n name: z.string().optional(),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sections: z.array(CABProductSection).default(() => []),\n sectionType: z.literal(SectionType.products).default(SectionType.products),\n});\n\nexport type CABProductsSection = z.infer<typeof CABProductsSection>;\n", "import { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport { SectionType, VariantSelector, variantSelectors } from '~/schema/common';\nimport { CABImageSection } from '~/schema/image';\nimport { CABTextSection } from '~/schema/text';\n\nexport const CABProductSection = z.strictObject({\n name: z.string().optional(),\n options: z\n .array(\n z.strictObject({\n /** `name` represents `Color`, `Size`, etc. */\n name: z.string(),\n optionId: z.number(),\n selector: z.enum(variantSelectors).default(VariantSelector.menu),\n values: z.array(\n z.strictObject({\n color: z.string().optional(),\n image: CABImageSection.optional(),\n /** `name` represents `Red`, `Blue`, etc. */\n name: z.string(),\n text: CABTextSection.optional(),\n })\n ),\n })\n )\n .default(() => []),\n productId: z.number().nullable().default(null),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sectionType: z.literal(SectionType.product).default(SectionType.product),\n});\n\nexport type CABProductSection = z.infer<typeof CABProductSection>;\n", "import { forEach, isString } from 'lodash-es';\nimport { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport {\n ButtonField,\n buttonFields,\n SectionType,\n Spacing,\n spacings,\n TextAlignment,\n textAlignments,\n TextColorName,\n textColorNames,\n TextSizeName,\n textSizeNames,\n} from '~/schema/common';\nimport { DYNAMIC_TOKEN_REGEX } from '~/schema/regex';\nimport { checkForHTML, NO_HTML } from '~/schema/utils';\n\nconst enumOrOmit = <T extends readonly [string, ...string[]]>(...vals: T) =>\n z\n .string()\n .transform((val) => (vals.includes(val as T[number]) ? (val as T[number]) : undefined))\n .optional();\n\nexport const TiptapText = z.strictObject({\n marks: z\n .array(\n z.discriminatedUnion('type', [\n z.strictObject({ type: z.literal('bold') }),\n z.strictObject({ type: z.literal('italic') }),\n z.strictObject({\n attrs: z.strictObject({\n class: z.string().nullable(),\n href: z.union([z.url(), z.string().regex(DYNAMIC_TOKEN_REGEX)]),\n rel: z.string().default('noopener noreferrer nofollow'),\n target: z.string().default('_blank'),\n }),\n type: z.literal('link'),\n }),\n z.strictObject({ type: z.literal('strike') }),\n z.strictObject({\n attrs: z.strictObject({\n color: enumOrOmit(...textColorNames).default(TextColorName.base),\n fontSize: enumOrOmit(...textSizeNames).default(TextSizeName.base),\n }),\n type: z.literal('textStyle'),\n }),\n ])\n )\n .optional(),\n text: z.string().default(''),\n type: z.literal('text').default('text'),\n});\n\nexport type TiptapText = z.infer<typeof TiptapText>;\n\nexport const TiptapParagraph = z.strictObject({\n attrs: z\n .strictObject({\n textAlign: enumOrOmit(...textAlignments),\n })\n .default({ textAlign: TextAlignment.start }),\n content: z.array(TiptapText).default([]),\n type: z.literal('paragraph').default('paragraph'),\n});\n\nexport type TiptapParagraph = z.infer<typeof TiptapParagraph>;\n\nexport const TiptapDocument = z.strictObject({\n attrs: z\n .strictObject({\n blockSpacing: enumOrOmit(...spacings),\n })\n .default({ blockSpacing: Spacing.base }),\n content: z.array(TiptapParagraph).default([TiptapParagraph.parse({})]),\n type: z.literal('doc').default('doc'),\n});\n\nexport type TiptapDocument = z.infer<typeof TiptapDocument>;\n\nexport const CABTextSection = z\n .strictObject({\n buttonField: z.enum(buttonFields).optional(),\n content: z\n .record(z.string(), z.union([z.string(), TiptapDocument]).refine(checkForHTML, NO_HTML).optional())\n .default({ en: TiptapDocument.parse({}) })\n .optional(),\n name: z.string().optional(),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sectionType: z.literal(SectionType.text).default(SectionType.text),\n })\n .superRefine(({ buttonField, content }, ctx) => {\n if (buttonField === ButtonField.destinationUrl && content) {\n forEach(content, (value, lang) => {\n if (value && isString(value)) {\n if (DYNAMIC_TOKEN_REGEX.test(value)) return;\n\n try {\n new URL(value);\n } catch {\n ctx.addIssue({\n code: 'custom',\n message: 'Invalid URL',\n path: ['content', lang],\n });\n }\n }\n });\n }\n });\n\nexport type CABTextSection = z.infer<typeof CABTextSection>;\n", "import { isPlainObject, isString } from 'lodash-es';\n\nimport { HTML_TAGS_REGEX } from '~/schema/regex';\nimport { type TiptapDocument } from '~/schema/text';\n\nexport const isHTML = (html: string | undefined = ''): boolean => {\n if (typeof window !== 'undefined') {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/html');\n\n const hasHTML = (nodeList: NodeList) => Array.from(nodeList).some((node) => node.nodeType === 1);\n\n return hasHTML(doc.body.childNodes) || hasHTML(doc.head.childNodes);\n }\n\n return HTML_TAGS_REGEX.test(html);\n};\n\nexport const hasHTMLInDoc = (doc: TiptapDocument): boolean =>\n doc.content.some(({ content = [] }) => content.some(({ text }) => isHTML(text)));\n\nexport const checkForHTML = (input: string | TiptapDocument): boolean =>\n !((isString(input) && isHTML(input)) || (isPlainObject(input) && hasHTMLInDoc(input as TiptapDocument)));\n\nexport const NO_HTML = { message: 'HTML is not supported' };\n", "import { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport { QuantityInput, quantityInputs, SectionType } from '~/schema/common';\n\nexport const CABQuantitySection = z.strictObject({\n errorMessages: z\n .record(\n z.string(),\n z.strictObject({\n max: z.string().optional(),\n min: z.string().optional(),\n neg: z.string().optional(),\n })\n )\n .default({\n en: {\n max: 'Maximum quantity allowed is {{max}}',\n min: 'Minimum quantity required is {{min}}',\n neg: 'Quantity cannot be negative',\n },\n }),\n inputType: z.enum(quantityInputs).default(QuantityInput.select),\n max: z.number().min(1).max(100).default(10),\n min: z.number().min(1).default(1),\n name: z.string().optional(),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sectionType: z.literal(SectionType.quantity).default(SectionType.quantity),\n});\n\nexport type CABQuantitySection = z.infer<typeof CABQuantitySection>;\n", "import { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport { SectionType } from '~/schema/common';\n\nexport const CABReviewsSection = z.strictObject({\n name: z.string().optional(),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sectionType: z.literal(SectionType.reviews).default(SectionType.reviews),\n});\n\nexport type CABReviewsSection = z.infer<typeof CABReviewsSection>;\n", "import { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport { SectionType } from '~/schema/common';\n\nexport const CABSubscriptionSection = z.strictObject({\n name: z.string().optional(),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sectionType: z.literal(SectionType.subscription).default(SectionType.subscription),\n});\n\nexport type CABSubscriptionSection = z.infer<typeof CABSubscriptionSection>;\n", "import { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport { SectionType } from '~/schema/common';\n\nexport const CABTableSection = z.strictObject({\n name: z.string().optional(),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sectionType: z.literal(SectionType.table).default(SectionType.table),\n});\n\nexport type CABTableSection = z.infer<typeof CABTableSection>;\n", "import { slice } from 'lodash-es';\nimport { v7 as uuidv7 } from 'uuid';\nimport { z } from 'zod/v4';\n\nimport { SectionType, VariantSelector, variantSelectors } from '~/schema/common';\n\nexport const CABVariantsSection = z.strictObject({\n name: z.string().optional(),\n sectionId: z.uuidv7().default(() => uuidv7()),\n sectionType: z.literal(SectionType.variants).default(SectionType.variants),\n selector: z.enum(slice(variantSelectors, 0, 3)).default(VariantSelector.menu),\n});\n\nexport type CABVariantsSection = z.infer<typeof CABVariantsSection>;\n", "import { z } from 'zod/v4';\n\nimport { EditorMode, editorModes } from '~/schema/common';\nimport { targetAreas, WidgetType, widgetTypes } from '~/schema/constants';\nimport { CABLayoutSection } from '~/schema/layout';\n\nconst TargetArea = z\n .strictObject({\n fill: z.boolean().optional(),\n flip: z.enum(['both', 'horizontal', 'vertical']).optional(),\n icon: z.string(),\n label: z.string(),\n width: z.string(),\n })\n .default(targetAreas[EditorMode.checkoutExtension][1]);\n\nexport type TargetArea = {\n fill?: boolean;\n flip?: 'horizontal' | 'vertical' | 'both';\n icon: string;\n label: string;\n width: string;\n};\n\nexport const CABRootSection = CABLayoutSection.extend(\n z.strictObject({\n editorMode: z.enum(editorModes).default(EditorMode.checkoutExtension),\n previewMode: z.boolean().default(false),\n storeId: z.number().nullable().default(null),\n targetArea: TargetArea.nullable(),\n type: z.enum(widgetTypes).default(WidgetType.ui_extension_content_block),\n version: z.literal(2).default(2),\n widgetId: z.number().nullable().default(null),\n }).shape\n);\n\nexport type CABRootSection = CABLayoutSection & {\n editorMode: EditorMode;\n previewMode: boolean;\n storeId: number | null;\n targetArea: TargetArea | null;\n type: WidgetType;\n version: number;\n widgetId: number | null;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["config", "sessionId", "obj", "config", "enabled", "config", "makeCall", "uuidv7", "z", "uuidv7", "z", "z", "z", "z", "z", "z", "uuidv7", "z", "z", "uuidv7", "z", "uuidv7", "z", "uuidv7", "z", "isString", "uuidv7", "z", "z", "uuidv7", "buttonField", "isString", "z", "uuidv7", "z", "uuidv7", "z", "uuidv7", "z", "z", "uuidv7", "uuidv7", "z", "z", "uuidv7", "uuidv7", "z", "z", "uuidv7", "uuidv7", "z", "z", "uuidv7", "uuidv7", "z", "z", "uuidv7", "z", "z", "uuidv7", "z", "uuidv7", "z", "z"]
|
|
7
7
|
}
|
package/dist/schema/button.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
2
|
export declare const CABButtonContent: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3
3
|
altText: z.ZodDefault<z.ZodString>;
|
|
4
4
|
aspectRatio: z.ZodDefault<z.ZodNullable<z.ZodLiteral<1>>>;
|
|
@@ -107,7 +107,7 @@ export declare const CABButtonContent: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
107
107
|
fontSize: z.ZodDefault<z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<"small" | "base" | "large" | "medium" | "extraSmall" | "extraLarge" | undefined, string>>>>;
|
|
108
108
|
}, z.core.$strict>;
|
|
109
109
|
type: z.ZodLiteral<"textStyle">;
|
|
110
|
-
}, z.core.$strict>]
|
|
110
|
+
}, z.core.$strict>]>>>;
|
|
111
111
|
text: z.ZodDefault<z.ZodString>;
|
|
112
112
|
type: z.ZodDefault<z.ZodLiteral<"text">>;
|
|
113
113
|
}, z.core.$strict>>>;
|
|
@@ -118,7 +118,7 @@ export declare const CABButtonContent: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
118
118
|
name: z.ZodOptional<z.ZodString>;
|
|
119
119
|
sectionId: z.ZodDefault<z.ZodUUID>;
|
|
120
120
|
sectionType: z.ZodDefault<z.ZodLiteral<"text">>;
|
|
121
|
-
}, z.core.$strict>]
|
|
121
|
+
}, z.core.$strict>]>;
|
|
122
122
|
export type CABButtonContent = z.infer<typeof CABButtonContent>;
|
|
123
123
|
export declare const CABButtonSection: z.ZodObject<{
|
|
124
124
|
action: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodEnum<{
|
|
@@ -253,7 +253,7 @@ export declare const CABButtonSection: z.ZodObject<{
|
|
|
253
253
|
fontSize: z.ZodDefault<z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<"small" | "base" | "large" | "medium" | "extraSmall" | "extraLarge" | undefined, string>>>>;
|
|
254
254
|
}, z.core.$strict>;
|
|
255
255
|
type: z.ZodLiteral<"textStyle">;
|
|
256
|
-
}, z.core.$strict>]
|
|
256
|
+
}, z.core.$strict>]>>>;
|
|
257
257
|
text: z.ZodDefault<z.ZodString>;
|
|
258
258
|
type: z.ZodDefault<z.ZodLiteral<"text">>;
|
|
259
259
|
}, z.core.$strict>>>;
|
|
@@ -264,7 +264,7 @@ export declare const CABButtonSection: z.ZodObject<{
|
|
|
264
264
|
name: z.ZodOptional<z.ZodString>;
|
|
265
265
|
sectionId: z.ZodDefault<z.ZodUUID>;
|
|
266
266
|
sectionType: z.ZodDefault<z.ZodLiteral<"text">>;
|
|
267
|
-
}, z.core.$strict>]
|
|
267
|
+
}, z.core.$strict>]>>>;
|
|
268
268
|
sectionType: z.ZodDefault<z.ZodLiteral<"button">>;
|
|
269
269
|
}, z.core.$strict>;
|
|
270
270
|
export type CABButtonSection = z.infer<typeof CABButtonSection>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/schema/button.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/schema/button.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAO3B,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAyE,CAAC;AAEvG,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkB3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
package/dist/schema/common.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schema/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schema/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/schema/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/schema/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAQpB,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUnB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA+D,CAAC;AAE/F,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Bd,CAAC;AAEX,eAAO,MAAM,WAAW,yfAuBd,CAAC;AAEX,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;EAAsB,CAAC;AAEvC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;CAAkB,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-source.d.ts","sourceRoot":"","sources":["../../src/schema/data-source.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"data-source.d.ts","sourceRoot":"","sources":["../../src/schema/data-source.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B,eAAO,MAAM,oBAAoB;;;;;;;kBAO/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
package/dist/schema/image.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/schema/image.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/schema/image.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAO3B,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAc1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
package/dist/schema/index.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
export * from '
|
|
2
|
-
export * from '
|
|
3
|
-
export * from '
|
|
4
|
-
export * from '
|
|
5
|
-
export * from '
|
|
6
|
-
export * from '
|
|
7
|
-
export * from '
|
|
8
|
-
export * from '
|
|
9
|
-
export * from '
|
|
10
|
-
export * from '
|
|
11
|
-
export * from '
|
|
12
|
-
export * from '
|
|
13
|
-
export * from '
|
|
14
|
-
export * from '
|
|
15
|
-
export * from '
|
|
16
|
-
export * from '
|
|
17
|
-
export * from '
|
|
18
|
-
export * from '
|
|
19
|
-
export * from '
|
|
1
|
+
export * from './button';
|
|
2
|
+
export * from './common';
|
|
3
|
+
export * from './constants';
|
|
4
|
+
export * from './data-source';
|
|
5
|
+
export * from './image';
|
|
6
|
+
export * from './layout';
|
|
7
|
+
export * from './offers';
|
|
8
|
+
export * from './product';
|
|
9
|
+
export * from './products';
|
|
10
|
+
export * from './quantity';
|
|
11
|
+
export * from './regex';
|
|
12
|
+
export * from './reviews';
|
|
13
|
+
export * from './root';
|
|
14
|
+
export * from './shared';
|
|
15
|
+
export * from './subscription';
|
|
16
|
+
export * from './table';
|
|
17
|
+
export * from './text';
|
|
18
|
+
export * from './utils';
|
|
19
|
+
export * from './variants';
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
|
package/dist/schema/layout.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
2
|
import { Direction, HorizontalAlignment, SectionType, Spacing, VerticalAlignment } from '~/schema/common';
|
|
3
3
|
import { CABBorder, CABSection } from '~/schema/shared';
|
|
4
4
|
export declare const CABLayoutSection: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/schema/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/schema/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EACH,SAAS,EAET,mBAAmB,EAEnB,WAAW,EACX,OAAO,EAEP,iBAAiB,EAEpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmB3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,SAAS,EAAE;QACP,UAAU,EAAE,mBAAmB,CAAC;QAChC,QAAQ,EAAE,iBAAiB,CAAC;KAC/B,CAAC;IACF,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,WAAW,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
package/dist/schema/offers.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../src/schema/offers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../src/schema/offers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAO5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG;IACnE,WAAW,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC;CAC1C,CAAC"}
|