{
  "version": 3,
  "sources": ["/cdn/shop/t/23/assets/cw-attribution-20261027-v1.js?cw=20261027-v1"],
  "sourcesContent": ["(function (root) {\r\n  'use strict';\r\n  const VERSION = '20261027-v1';\r\n  const ORIGIN = 'https://craftedwondersart.com';\r\n  const COOKIE = 'cw_attribution_v2';\r\n  const TTL = 30 * 24 * 60 * 60 * 1000;\r\n  // Register reviewed campaign/content/term values here and in the backend\r\n  // before issuing a link. Never accept arbitrary URL values as analytics data.\r\n  const registry = Object.freeze({\r\n    utm_source: Object.freeze(['shopify_email','google','bing','tiktok','instagram','pinterest','youtube','facebook','wechat','weixin','xiaohongshu','instagram_cigar','instagram_brand','reddit','email','newsletter','threads']),\r\n    utm_medium: Object.freeze(['email','cpc','paid_social','paid-social','organic','social','referral','organic_social','community','influencer','qr']),\r\n    utm_campaign: Object.freeze(['cw_retention_cigar_gifting','cw_retention_collection','cw_retention_story_co_creation','cw_qa_20260920','bf26_CG01','bf26_CG02','bf26_CG03','bf26_CG04','bf26_CG05','bf26_CO01','bf26_CO02','bf26_CO03','bf26_CU01','bf26_CU02','qa20261022','cw-edm-gifts-20261023','cw-edm-home-20261023','cw-social-20261023','cw-social-20261024','cw-social-20261027']),\r\n    utm_content: Object.freeze(['cigar_welcome','cigar_collection_story','cigar_private_viewing','collection_welcome','collection_story','collection_private_viewing','story_welcome','story_collection_story','story_private_viewing','qa_discount','ig_feed_hardest_man_v1','gift_checklist_v1','gift_match_v1','collection_notes_v1','story_custom_v1','holiday_guide_v1','corporate_brief_v1','collectors_passport_v1','story_to_brief_v1','cw_qa_campaign_20260922','attribution-first','attribution-later','gifts-v2-brand-footer','gifts-v2-image-1','gifts-v2-image-2','gifts-v2-image-3','gifts-v2-main-cta','home-v2-brand-footer','home-v2-image-1','home-v2-image-2','home-v2-image-3','home-v2-main-cta','post-v1','post-1027']),\r\n    utm_term: Object.freeze(['qa-term'])\r\n  });\r\n  const KEYS = Object.freeze(Object.keys(registry));\r\n  const PUBLIC_PATH = /^\\/(?:$|(?:pages|products|collections|blogs)\\/[a-z0-9/-]{1,180}$)/i;\r\n  function clean(raw) {\r\n    const out = {};\r\n    if (!raw || typeof raw !== 'object' || Array.isArray(raw)) return out;\r\n    for (const key of KEYS) if (typeof raw[key] === 'string' && registry[key].includes(raw[key])) out[key] = raw[key];\r\n    return out;\r\n  }\r\n  function query(search) {\r\n    const params = new URLSearchParams(search), values = {};\r\n    let mentioned = false, valid = true;\r\n    for (const key of params.keys()) if (key.startsWith('utm_') && !KEYS.includes(key)) { mentioned = true; valid = false; }\r\n    for (const key of KEYS) {\r\n      const all = params.getAll(key);\r\n      if (!all.length) continue;\r\n      mentioned = true;\r\n      if (all.length !== 1 || !registry[key].includes(all[0])) valid = false;\r\n      else values[key] = all[0];\r\n    }\r\n    if (mentioned && ['utm_source','utm_medium','utm_campaign'].some(key => !values[key])) valid = false;\r\n    return { mentioned, valid, values: valid ? values : {} };\r\n  }\r\n  function safePath(value) {\r\n    return typeof value === 'string' && PUBLIC_PATH.test(value) && !value.includes('..') && !value.includes('//');\r\n  }\r\n  function touch(href, referrer) {\r\n    let url;\r\n    try { url = new URL(href); } catch (_) { return null; }\r\n    if (url.origin !== ORIGIN || !safePath(url.pathname)) return null;\r\n    const out = { path: url.pathname, ...query(url.search).values };\r\n    try {\r\n      const ref = new URL(referrer);\r\n      if (/^https?:$/.test(ref.protocol) && ref.origin !== url.origin && /^(?=.{1,160}$)[A-Za-z0-9.-]+$/.test(ref.hostname)) out.referrer_host = ref.hostname.toLowerCase();\r\n    } catch (_) {}\r\n    return out;\r\n  }\r\n  function sanitizeTouch(value) {\r\n    if (!value || typeof value !== 'object' || Array.isArray(value) || !safePath(value.path)) return null;\r\n    const out = { path: value.path, ...clean(value) };\r\n    if (typeof value.referrer_host === 'string' && /^(?=.{1,160}$)[A-Za-z0-9.-]+$/.test(value.referrer_host)) out.referrer_host = value.referrer_host.toLowerCase();\r\n    return out;\r\n  }\r\n  function validRecord(raw, now) {\r\n    if (!raw || raw.version !== 2 || !Number.isSafeInteger(raw.createdAt) || !Number.isSafeInteger(raw.expiresAt) || raw.createdAt > now || raw.expiresAt !== raw.createdAt + TTL || raw.expiresAt <= now) return null;\r\n    const first = sanitizeTouch(raw.first), last = sanitizeTouch(raw.last);\r\n    if (!first || !last || ['utm_source','utm_medium','utm_campaign'].some(key => !first[key])) return null;\r\n    // Corrupted/tampered or now-unregistered values do not partially survive.\r\n    if (KEYS.some(key => raw.first[key] !== undefined && first[key] !== raw.first[key])) return null;\r\n    if (KEYS.some(key => raw.last[key] !== undefined && last[key] !== raw.last[key])) return null;\r\n    return { version: 2, createdAt: raw.createdAt, expiresAt: raw.expiresAt, first, last };\r\n  }\r\n  function nextRecord(previous, current, search, now) {\r\n    const prior = validRecord(previous, now), incoming = query(search);\r\n    if (!current) return prior;\r\n    if (!prior && (!incoming.valid || !Object.keys(incoming.values).length)) return null;\r\n    const first = prior ? prior.first : current;\r\n    const last = { ...current };\r\n    if (!incoming.mentioned && prior) Object.assign(last, clean(prior.last));\r\n    return { version: 2, createdAt: prior ? prior.createdAt : now, expiresAt: prior ? prior.expiresAt : now + TTL, first, last };\r\n  }\r\n  function contextFields(context = {}) {\r\n    const out = {};\r\n    if (['cigar','collection','story'].includes(context.businessLine)) out.business_line = context.businessLine;\r\n    if (/^CD-\\d{3}$/.test(context.productSku || '')) out.product_sku = context.productSku;\r\n    if (/^\\d{1,20}$/.test(context.articleId || '')) out.article_id = context.articleId;\r\n    if (/^\\d{1,20}$/.test(context.collectionId || '')) out.collection_id = context.collectionId;\r\n    return out;\r\n  }\r\n  function createController(page, now = Date.now) {\r\n    const doc = page.document;\r\n    let memory = null;\r\n    let consentRevision = 0, previousPrivacyState = 'unknown';\r\n    const bound = new Set();\r\n    function privacyState() {\r\n      try {\r\n        const fn = page.Shopify?.customerPrivacy?.analyticsProcessingAllowed;\r\n        if (typeof fn !== 'function') return 'unknown';\r\n        const value = fn.call(page.Shopify.customerPrivacy);\r\n        return value === true ? 'allowed' : value === false ? 'denied' : 'unknown';\r\n      } catch (_) { return 'unknown'; }\r\n    }\r\n    function removeLegacy() {\r\n      for (const key of ['cw-attribution-v1','cw-customer-attribution-v1']) try { page.sessionStorage?.removeItem(key); } catch (_) {}\r\n    }\r\n    function deleteCookie() {\r\n      for (const domain of ['', page.location.hostname, '.' + page.location.hostname]) {\r\n        try { doc.cookie = COOKIE + '=; Max-Age=0; Path=/; SameSite=Lax; Secure' + (domain ? '; Domain=' + domain : ''); } catch (_) {}\r\n      }\r\n    }\r\n    function readRecord() {\r\n      try {\r\n        const entries = doc.cookie.split(';').map(part => part.trim()).filter(part => part.startsWith(COOKIE + '='));\r\n        if (entries.length !== 1) { if (entries.length) deleteCookie(); return null; }\r\n        return validRecord(JSON.parse(decodeURIComponent(entries[0].slice(COOKIE.length + 1))), now());\r\n      } catch (_) { return null; }\r\n    }\r\n    function setField(form, name, value) {\r\n      let el = Array.from(form.elements || []).find(item => item.name === name);\r\n      if (!el) { el = doc.createElement('input'); el.type = 'hidden'; el.name = name; form.append(el); }\r\n      el.value = value;\r\n    }\r\n    function fill(form, record) {\r\n      const permit = privacyState() === 'allowed';\r\n      setField(form, 'contact[Attribution status]', !permit ? 'unavailable or not allowed' : record ? 'allowed' : 'no approved UTM');\r\n      setField(form, 'contact[First touch]', record ? JSON.stringify(record.first) : '');\r\n      setField(form, 'contact[Last touch]', record ? JSON.stringify(record.last) : '');\r\n      for (const key of KEYS) setField(form, 'contact[' + key + ']', record?.first[key] || '');\r\n    }\r\n    function sync() {\r\n      const state = privacyState();\r\n      if (state === 'denied' && previousPrivacyState !== 'denied') consentRevision += 1;\r\n      previousPrivacyState = state;\r\n      if (state !== 'allowed') {\r\n        memory = null;\r\n        if (state === 'denied') { deleteCookie(); removeLegacy(); }\r\n        bound.forEach(form => fill(form, null));\r\n        return null;\r\n      }\r\n      removeLegacy();\r\n      const current = touch(page.location.href, doc.referrer);\r\n      const previous = readRecord() || validRecord(memory, now());\r\n      memory = nextRecord(previous, current, page.location.search, now());\r\n      if (memory) {\r\n        const encoded = encodeURIComponent(JSON.stringify(memory));\r\n        if (encoded.length < 3800) {\r\n          try { doc.cookie = COOKIE + '=' + encoded + '; Max-Age=' + Math.max(1, Math.floor((memory.expiresAt - now()) / 1000)) + '; Path=/; SameSite=Lax; Secure'; } catch (_) {}\r\n        }\r\n      } else deleteCookie();\r\n      bound.forEach(form => fill(form, memory));\r\n      return memory ? JSON.parse(JSON.stringify(memory)) : null;\r\n    }\r\n    function getTouch(which = 'first', context = {}) {\r\n      if (privacyState() !== 'allowed') return null;\r\n      const record = sync();\r\n      const selected = record ? record[which === 'last' ? 'last' : 'first'] : touch(page.location.href, doc.referrer);\r\n      return selected ? { ...selected, ...contextFields(context) } : null;\r\n    }\r\n    function bindForm(form) {\r\n      if (!form || bound.has(form)) return;\r\n      bound.add(form);\r\n      form.addEventListener('submit', sync, true);\r\n      fill(form, privacyState() === 'allowed' ? sync() : null);\r\n    }\r\n    function initialize() {\r\n      for (const form of doc.querySelectorAll('form.cw-contact-form, form.cw-product-form, [data-cw-capture] form')) bindForm(form);\r\n      doc.addEventListener('visitorConsentCollected', sync);\r\n      doc.addEventListener('cwCustomerPrivacyReady', sync);\r\n      page.addEventListener?.('pageshow', sync);\r\n      sync();\r\n      if (privacyState() === 'unknown' && typeof page.Shopify?.loadFeatures === 'function') {\r\n        page.Shopify.loadFeatures([{ name: 'consent-tracking-api', version: '0.1' }], error => { if (!error) sync(); });\r\n      }\r\n    }\r\n    return Object.freeze({ version: VERSION, allowed: () => privacyState() === 'allowed', consentRevision: () => consentRevision, sync, getSnapshot: sync, getTouch, bindForm, initialize });\r\n  }\r\n  const policy = Object.freeze({ version: VERSION, registry, KEYS, clean, query, safePath, touch, sanitizeTouch });\r\n  const api = { policy, createController, validRecord, nextRecord, contextFields, COOKIE, TTL, VERSION };\r\n  if (typeof module !== 'undefined' && module.exports) module.exports = api;\r\n  if (root.document && root.location?.origin === ORIGIN && !root.CwAttribution) {\r\n    root.CwUtmPolicy = policy;\r\n    root.CwAttribution = createController(root);\r\n    root.CwAttribution.initialize();\r\n  }\r\n})(typeof window !== 'undefined' ? window : globalThis);\r\n"],
  "mappings": "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",
  "names": []
}
