{
  "version": 3,
  "sources": ["/cdn/shop/t/64/assets/stackhouse-operational-telemetry.js?codex_v=20260811e"],
  "sourcesContent": ["(function () {\n  'use strict';\n\n  if (window.__stackhouseOperationalTelemetryInstalled) return;\n  window.__stackhouseOperationalTelemetryInstalled = true;\n\n  var config = window.StackhouseOperationalTelemetryConfig || {};\n  var endpoint = config.endpoint || 'https://backend.thestackhouse.com/api/telemetry/v1/events/';\n  var release = cleanId(config.release, 160);\n  var deploymentId = cleanId(config.deploymentId, 160);\n  var themeId = cleanId(config.themeId, 80);\n  var themeRole = /^(main|unpublished|development|demo)$/.test(config.themeRole) ? config.themeRole : '';\n  var enabled = config.enabled !== false;\n  var queue = [];\n  var flushTimer = null;\n  var flushing = false;\n  var failedFetchAttempts = Object.create(null);\n  var sessionKey = 'stackhouse_operational_session';\n  var attemptKey = 'stackhouse_operational_attempt';\n  var traceKey = 'stackhouse_operational_trace';\n  var maxBatchSize = 20;\n  var maxQueueSize = 100;\n  var navigationEpoch = 0;\n  var lastPageHideAt = -Infinity;\n  var pendingCartFailures = [];\n  var cartNavigationWindow = 250;\n  var criticalStorefrontAssets = {\n    'deferred-scripts-live-fix-20260426.js': true,\n    'jquery-min.js': true,\n    'new-styles.css': true,\n    'order-app.js': true,\n    'script.js': true,\n    'theme.js': true\n  };\n\n  function randomId() {\n    if (window.crypto && typeof window.crypto.randomUUID === 'function') {\n      return window.crypto.randomUUID();\n    }\n    return Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 14);\n  }\n\n  function storageValue(key) {\n    try {\n      var value = window.sessionStorage.getItem(key);\n      if (!value) {\n        value = randomId();\n        window.sessionStorage.setItem(key, value);\n      }\n      return value;\n    } catch (error) {\n      return randomId();\n    }\n  }\n\n  function cleanName(value, fallback, limit) {\n    var normalized = String(value || '').trim().slice(0, limit || 160);\n    return /^[A-Za-z0-9][A-Za-z0-9_.:/-]*$/.test(normalized) ? normalized : (fallback || '');\n  }\n\n  function cleanId(value, limit) {\n    var normalized = String(value || '').trim().slice(0, limit || 160);\n    return /^[A-Za-z0-9][A-Za-z0-9._:-]*$/.test(normalized) ? normalized : '';\n  }\n\n  function safeErrorMessage(value) {\n    return String(value || '')\n      .replace(/[^@\\s]+@[^@\\s]+\\.[^@\\s]+/g, '[redacted-email]')\n      .replace(/(?:https?|s3):\\/\\/\\S+/gi, '[redacted-url]')\n      .replace(/\\b[0-9a-f]{8}-[0-9a-f-]{27,}\\b/gi, '[redacted-id]')\n      .replace(/\\b\\d{12,}\\b/g, '[redacted-number]')\n      .replace(/\\b[^\\s\"'()]+\\.(?:tiff?|jpe?g|png|pdf|psd|heic|webp)\\b/gi, '[redacted-file]')\n      .replace(/([\"'`])[^\"'`]{49,}\\1/g, '$1[redacted-value]$1')\n      .replace(/\\s+/g, ' ')\n      .trim()\n      .slice(0, 240);\n  }\n\n  function errorSignature(value) {\n    var input = String(value || 'unknown');\n    var hash = 2166136261;\n    for (var index = 0; index < input.length; index += 1) {\n      hash ^= input.charCodeAt(index);\n      hash = Math.imul(hash, 16777619);\n    }\n    return 'js-' + (hash >>> 0).toString(16).padStart(8, '0');\n  }\n\n  function networkAttemptId() {\n    return cleanId(storageValue(traceKey) + '-' + randomId(), 96);\n  }\n\n  function sourceFile(value) {\n    var candidate = String(value || '');\n    if (!candidate) return '';\n    try {\n      candidate = new URL(candidate, window.location.href).pathname;\n    } catch (error) {}\n    candidate = candidate.split(/[\\\\/]/).pop().split(/[?#]/)[0];\n    return cleanName(candidate, '', 100);\n  }\n\n  function browserState() {\n    var connection = window.navigator.connection\n      || window.navigator.mozConnection\n      || window.navigator.webkitConnection;\n    return {\n      network_effective_type: connection\n        ? cleanName(connection.effectiveType, '', 20)\n        : '',\n      online: typeof window.navigator.onLine === 'boolean' ? window.navigator.onLine : undefined,\n      visibility_state: cleanName(document.visibilityState, '', 20)\n    };\n  }\n\n  function transferSizeBucket(value) {\n    var size = Number(value);\n    if (!Number.isFinite(size) || size < 0) return '';\n    if (size === 0) return 'zero_or_hidden';\n    if (size <= 100 * 1024) return 'up_to_100kb';\n    if (size <= 1024 * 1024) return '100kb_to_1mb';\n    if (size <= 5 * 1024 * 1024) return '1mb_to_5mb';\n    return 'over_5mb';\n  }\n\n  function resourceTimingDetails(value) {\n    if (\n      !value\n      || !window.performance\n      || typeof window.performance.getEntriesByName !== 'function'\n    ) return {};\n    try {\n      var entries = window.performance.getEntriesByName(String(value), 'resource');\n      var entry = entries && entries.length ? entries[entries.length - 1] : null;\n      if (!entry) return {};\n      var responseStatus = Number(entry.responseStatus);\n      return {\n        next_hop_protocol: cleanName(entry.nextHopProtocol, '', 20),\n        resource_duration_ms: safeNumber(entry.duration, 86400000),\n        response_status: responseStatus >= 100 && responseStatus <= 599\n          ? safeNumber(responseStatus, 599)\n          : undefined,\n        transfer_size_bucket: transferSizeBucket(entry.transferSize)\n      };\n    } catch (error) {\n      return {};\n    }\n  }\n\n  function resourceRole(target) {\n    if (!target) return 'unknown';\n    try {\n      if (typeof target.matches === 'function' && target.matches('[data-order-preview-image]')) {\n        return 'order_preview';\n      }\n      if (typeof target.closest === 'function') {\n        if (target.closest('[data-order-preview-stage]')) return 'order_preview';\n        if (target.closest('.grid__photos')) return 'artwork_picker';\n        if (target.closest('.form__wrapper')) return 'product_modal_preview';\n      }\n    } catch (error) {}\n    return cleanName(target.tagName, 'resource', 20).toLowerCase();\n  }\n\n  function requestMetadata(value) {\n    var parsed;\n    try {\n      parsed = new URL(String(value || ''), window.location.href);\n    } catch (error) {\n      return { provider_class: 'unknown', request_kind: 'other', request_target: 'request' };\n    }\n    var host = String(parsed.hostname || '').toLowerCase();\n    var path = String(parsed.pathname || '');\n    var providerClass = host === 'backend.thestackhouse.com'\n      ? 'stackhouse_backend'\n      : (\n        host === 'thestackhouse.com'\n        || host === 'www.thestackhouse.com'\n        || /\\.myshopify\\.com$/.test(host)\n        || /\\.shopifycdn\\.com$/.test(host)\n        || host === 'cdn.shopify.com'\n          ? 'shopify'\n          : 'third_party'\n      );\n    var extensionMatch = path.match(/\\.([a-z0-9]+)$/i);\n    var extension = extensionMatch ? extensionMatch[1].toLowerCase() : '';\n    var requestKind = /^(?:js|mjs)$/.test(extension)\n      ? 'script'\n      : (extension === 'css' ? 'style' : (/^(?:png|jpe?g|gif|webp|svg|avif)$/.test(extension) ? 'image' : 'api'));\n    var requestTarget = requestKind === 'script' || requestKind === 'style'\n      ? sourceFile(path)\n      : (\n        /^\\/cart(?:\\/|$)/.test(path) ? 'cart'\n          : (/^\\/api(?:\\/|$)/.test(path) ? 'api'\n            : (/^\\/apps(?:\\/|$)/.test(path) ? 'apps' : requestKind))\n      );\n    var endpointFamily = '';\n    if (providerClass === 'stackhouse_backend') {\n      if (path.indexOf('get_thumb_url') !== -1) endpointFamily = 'thumbnail_proxy';\n      else if (path.indexOf('/api/media/') === 0) endpointFamily = 'media_proxy';\n      else if (path.indexOf('/api/uploads/') === 0) endpointFamily = 'uploads_api';\n      else if (path.indexOf('/api/telemetry/') === 0) endpointFamily = 'telemetry';\n      else if (path.indexOf('/api/validate-image-quick/') === 0) endpointFamily = 'image_validation';\n      else if (path.indexOf('/api/upload-policy/') === 0) endpointFamily = 'upload_policy';\n      else if (path.indexOf('/api/check-crop/') === 0) endpointFamily = 'crop_confirmation';\n      else if (path.indexOf('/api/fallback-url/') === 0) endpointFamily = 'upload_processing';\n      else if (\n        path.indexOf('/api/get_customer_data/') === 0\n        || path.indexOf('/api/remove_customer_image/') === 0\n        || path.indexOf('/api/claim-guest-images/') === 0\n      ) endpointFamily = 'image_library';\n      else if (path.indexOf('/api/update_customer_shopify/') === 0) endpointFamily = 'customer_account';\n      else if (path.indexOf('/api/reorder/') === 0) endpointFamily = 'reorder';\n      else if (path.indexOf('/api/saved-products/') === 0) endpointFamily = 'saved_products';\n      else if (path.indexOf('/api/scans/') === 0) endpointFamily = 'scans';\n      else if (path.indexOf('/api/chatbot/') === 0) endpointFamily = 'chatbot';\n      else if (path.indexOf('/api/builder-events/') === 0) endpointFamily = 'telemetry';\n      else if (path.indexOf('/api/download/') === 0) endpointFamily = 'delivery_download';\n      else if (path.indexOf('/api/checkout-preflight/') === 0) endpointFamily = 'checkout_preflight';\n      else if (path.indexOf('/create-orders/ajax/calculate-custom-price/') === 0) endpointFamily = 'custom_pricing';\n      else if (path.indexOf('/create-orders/ajax/generate-custom-cart-product/') === 0) endpointFamily = 'custom_product';\n      else if (path.indexOf('/create-orders/ajax/standard-cart-line-metadata/') === 0) endpointFamily = 'cart_metadata';\n      else endpointFamily = 'other_backend';\n    }\n    return {\n      endpoint_family: endpointFamily,\n      endpoint_operation: providerClass === 'stackhouse_backend' ? (\n        /^\\/api\\/uploads\\/v2\\/sessions\\/$/.test(path) ? 'session_create'\n        : /^\\/api\\/uploads\\/v2\\/sessions\\/[^/]+\\/assets\\/$/.test(path) ? 'asset_create'\n        : ({\n        '/api/get_customer_data/': 'library_read',\n        '/api/remove_customer_image/': 'library_remove',\n        '/api/claim-guest-images/': 'library_claim',\n        '/api/get_thumb_url/': 'thumbnail_read'\n      })[path] || '') : '',\n      provider_class: providerClass,\n      request_kind: requestKind,\n      request_target: cleanName(requestTarget, 'request', 100)\n    };\n  }\n\n  function resourceErrorFingerprint(resource) {\n    var parts = ['resource', resource.provider_class, resource.request_kind, resource.request_target];\n    if (resource.endpoint_family) parts.push(resource.endpoint_family);\n    if (resource.endpoint_operation) parts.push(resource.endpoint_operation);\n    return errorSignature(parts.join('|'));\n  }\n\n  function criticalStorefrontResource(requestTarget) {\n    var target = String(requestTarget || '').toLowerCase();\n    return target.indexOf('stackhouse-') === 0 || Boolean(criticalStorefrontAssets[target]);\n  }\n\n  function lowActionabilityNetworkReason(request, state, errorName, resourceFailure) {\n    if (resourceFailure && criticalStorefrontResource(request.request_target)) return '';\n    if (String(errorName || '').toLowerCase() === 'aborterror') return 'navigation_abort';\n    if (state.online === false) return 'offline_client';\n    if (request.provider_class === 'stackhouse_backend') return '';\n    if (request.provider_class === 'shopify' || request.provider_class === 'third_party') {\n      return 'ambient_dependency';\n    }\n    if (state.visibility_state === 'hidden') return 'background_navigation';\n    return '';\n  }\n\n  function lowActionabilityBrowserReason(details) {\n    var message = String(details.safe_message || '').toLowerCase();\n    var networkMarkers = [\n      'failed to fetch',\n      'load failed',\n      'networkerror when attempting to fetch resource',\n      'network failure may have prevented the request'\n    ];\n    if (networkMarkers.some(function (marker) { return message.indexOf(marker) !== -1; })) {\n      return 'duplicate_network_failure';\n    }\n    if (\n      message.indexOf('__gcrweb') !== -1\n      || message.indexOf('_autofillcallbackhandler') !== -1\n      || message.indexOf('java object is gone') !== -1\n    ) {\n      return 'browser_environment';\n    }\n    if (message === 'script error.' && !details.script_source) return 'browser_environment';\n    return '';\n  }\n\n  function stackLocation(stack) {\n    var match = String(stack || '').match(\n      /(?:https?:\\/\\/[^)\\s]+\\/)?([^/?#)\\s]+\\.js)(?:\\?[^:\\s)]*)?:(\\d+):(\\d+)/\n    );\n    return match ? {\n      script_source: sourceFile(match[1]),\n      line_number: safeNumber(match[2], 10000000),\n      column_number: safeNumber(match[3], 10000000)\n    } : {};\n  }\n\n  function safeErrorDetails(error, fallbackSource, fallbackLine, fallbackColumn) {\n    var stack = error && error.stack;\n    var location = stackLocation(stack);\n    var name = cleanName(error && error.name, 'Error', 120);\n    var message = safeErrorMessage(error && error.message ? error.message : error);\n    var details = {\n      error_name: name,\n      script_source: location.script_source || sourceFile(fallbackSource),\n      line_number: location.line_number || safeNumber(fallbackLine, 10000000),\n      column_number: location.column_number || safeNumber(fallbackColumn, 10000000)\n    };\n    details.stack_hash = errorSignature([\n      name,\n      message,\n      details.script_source,\n      details.line_number,\n      details.column_number\n    ].join('|'));\n    details.safe_message = message;\n    return details;\n  }\n\n  function safeNumber(value, maximum) {\n    var parsed = Number(value);\n    if (!Number.isFinite(parsed)) return undefined;\n    return Math.max(0, Math.min(Math.round(parsed), maximum || 2147483647));\n  }\n\n  function pageKind() {\n    var segments = window.location.pathname.split('/').filter(Boolean);\n    if (!segments.length) return 'home';\n    if (segments[0] === 'products') return 'product';\n    if (segments[0] === 'collections') return 'collection';\n    if (segments[0] === 'pages') return 'page';\n    if (segments[0] === 'cart') return 'cart';\n    if (segments[0] === 'checkouts') return 'checkout';\n    return cleanName(segments[0], 'storefront', 40);\n  }\n\n  function publicPageHandle() {\n    var segments = window.location.pathname.split('/').filter(Boolean);\n    if (segments[0] !== 'pages' || !segments[1]) return '';\n    return cleanName(segments[1], '', 80);\n  }\n\n  function rejectionValueClass(value) {\n    if (value instanceof Error) return 'error_object';\n    if (value === null) return 'null';\n    if (Array.isArray(value)) return 'array';\n    var valueType = typeof value;\n    if (valueType === 'string') return 'string';\n    if (valueType === 'object') return 'object';\n    return cleanName(valueType, 'unknown', 20);\n  }\n\n  function runtimeBuilder() {\n    if (document.querySelector('[data-order-app-shell]')) return 'beta_order_builder';\n    if (document.querySelector('.option__wrapper')) return 'product_modal';\n    if (document.querySelector('[data-cart-page-form]') || document.getElementById('cart_checkout_button')) return 'cart_page';\n    if (document.querySelector('.cart__side')) return 'cart_drawer';\n    return 'storefront';\n  }\n\n  function workflowForBuilder(builder, eventName) {\n    if (/checkout|stock_problem/.test(eventName)) return 'shopify_checkout';\n    if (/rush/.test(eventName)) return 'rush_production';\n    if (/^file_upload_/.test(eventName)) return 'file_upload';\n    if (/^crop_/.test(eventName)) return 'upload_crop';\n    if (builder === 'product_modal') return 'legacy_modal';\n    if (builder === 'beta_order_builder') return 'beta_builder';\n    if (builder === 'cart_page' || builder === 'cart_drawer') return 'shopify_cart';\n    return 'storefront_browser';\n  }\n\n  var evidenceEnums = {\n    upload_format: ['jpeg', 'png', 'tiff', 'heic', 'other', 'unknown'],\n    upload_size_band: ['under_10_mib', '10_to_under_100_mib', '100_mib_to_1_gib', 'over_1_gib', 'unknown'],\n    upload_audience: ['account', 'guest', 'unknown'],\n    endpoint_operation: ['library_read', 'library_remove', 'library_claim', 'thumbnail_read', 'session_create', 'asset_create',\n      'asset_parts', 'asset_transfer', 'asset_finalize', 'asset_status', 'asset_retry_processing'],\n    upload_read_failure: ['blob_unavailable', 'reader_unavailable', 'reader_empty',\n      'reader_error', 'reader_aborted', 'reader_exception']\n  };\n\n  function safeContext(context) {\n    var source = context && typeof context === 'object' ? context : {};\n    var allowed = [\n      'affected_item_count',\n      'builder',\n      'cart_item_count',\n      'column_number',\n      'confirmation_status',\n      'error_code',\n      'error_name',\n      'endpoint_family',\n      'endpoint_operation',\n      'diagnostic_result',\n      'failure_phase',\n      'issue_codes',\n      'issue_types',\n      'line_number',\n      'network_effective_type',\n      'next_hop_protocol',\n      'online',\n      'operation',\n      'page_kind',\n      'page_handle',\n      'poll_count',\n      'provider_class',\n      'product_handle',\n      'quantity',\n      'request_id',\n      'request_kind',\n      'request_target',\n      'rejection_value_class',\n      'resource_duration_ms',\n      'resource_role',\n      'recovery_attempted',\n      'recovery_outcome',\n      'recovery_source',\n      'probe_duration_ms',\n      'response_status',\n      'retry_count',\n      'rush_enabled',\n      'rush_variant_id',\n      'signal_class',\n      'script_source',\n      'stack_hash',\n      'step',\n      'theme_id',\n      'recovered_attempt_id',\n      'transport_timeout_count',\n      'upload_read_failure',\n      'upload_format',\n      'upload_size_band',\n      'upload_audience',\n      'payload_size_class',\n      'variant_id',\n      'visibility_state'\n    ];\n    var result = {};\n    allowed.forEach(function (key) {\n      var value = source[key];\n      if (value === null || typeof value === 'undefined' || value === '') return;\n      if (evidenceEnums[key] && evidenceEnums[key].indexOf(value) === -1) return;\n      if (Array.isArray(value)) {\n        result[key] = value.slice(0, 10).map(function (item) {\n          return cleanName(item, 'unknown', 80);\n        });\n      } else if (typeof value === 'boolean' || typeof value === 'number') {\n        result[key] = value;\n      } else {\n        result[key] = cleanName(value, '', 120);\n      }\n    });\n    if (window.StackhouseCropTelemetry) Object.assign(result, window.StackhouseCropTelemetry.clean(source));\n    result.page_kind = result.page_kind || pageKind();\n    result.theme_id = themeId;\n    if (themeRole) result.theme_role = themeRole;\n    return result;\n  }\n\n  function normalizeEvent(input) {\n    var event = input && typeof input === 'object' ? input : {};\n    var eventName = cleanName(event.event, '', 160);\n    if (!eventName) return null;\n    var status = cleanName(event.status, 'succeeded', 20);\n    var severity = cleanName(event.severity, status === 'failed' || status === 'blocked' ? 'error' : 'info', 20);\n    return {\n      schema_version: 1,\n      occurred_at: new Date().toISOString(),\n      trace_id: cleanId(event.trace_id, 64) || storageValue(traceKey),\n      workflow_instance_id: cleanId(event.workflow_instance_id, 96) || storageValue(attemptKey),\n      attempt_id: cleanId(event.attempt_id, 96) || storageValue(attemptKey),\n      session_hash: storageValue(sessionKey),\n      service: 'storefront',\n      component: cleanName(event.component, 'shopify-theme', 120),\n      release: release,\n      deployment_id: deploymentId,\n      theme_id: themeId,\n      workflow: cleanName(event.workflow, 'storefront_browser', 100),\n      stage: cleanName(event.stage, '', 120),\n      event: eventName,\n      severity: severity,\n      status: status,\n      actor_type: 'anonymous',\n      source: 'browser',\n      error_code: cleanName(event.error_code, '', 120),\n      error_fingerprint: cleanId(event.error_fingerprint, 128),\n      safe_message: String(event.safe_message || '').slice(0, 300),\n      owner_hint: cleanName(event.owner_hint, 'storefront', 120),\n      duration_ms: safeNumber(event.duration_ms, 86400000),\n      retry_count: safeNumber(event.retry_count, 100) || 0,\n      sampling_rate: 1,\n      is_canary: config.isCanary === true,\n      retryable: Boolean(event.retryable),\n      provider: cleanName(event.provider, '', 80),\n      operation: cleanName(event.operation, '', 120),\n      provider_status: cleanName(event.provider_status, '', 80),\n      status_code: safeNumber(event.status_code, 599),\n      safe_context: safeContext(event.safe_context)\n    };\n  }\n\n  function sendBatch(events) {\n    var body = JSON.stringify({ events: events });\n    if (navigator.sendBeacon) {\n      try {\n        if (navigator.sendBeacon(endpoint, new Blob([body], { type: 'application/json' }))) {\n          return Promise.resolve();\n        }\n      } catch (error) {}\n    }\n    return window.fetch(endpoint, {\n      method: 'POST',\n      mode: 'cors',\n      credentials: 'omit',\n      keepalive: true,\n      headers: { 'Content-Type': 'application/json' },\n      body: body,\n      stackhouseSkipOperationalTelemetry: true\n    }).catch(function () {});\n  }\n\n  function flush() {\n    if (!enabled || flushing || !queue.length) return Promise.resolve();\n    flushing = true;\n    var batch = queue.splice(0, maxBatchSize);\n    return sendBatch(batch).finally(function () {\n      flushing = false;\n      if (queue.length) scheduleFlush(0);\n    });\n  }\n\n  function scheduleFlush(delay) {\n    if (!enabled || flushTimer) return;\n    flushTimer = window.setTimeout(function () {\n      flushTimer = null;\n      flush();\n    }, typeof delay === 'number' ? delay : 1000);\n  }\n\n  function enqueueEvent(event) {\n    if (!event || !enabled) return event;\n    queue.push(event);\n    if (queue.length > maxQueueSize) {\n      queue.splice(0, queue.length - maxQueueSize);\n    }\n    scheduleFlush(queue.length >= 10 ? 0 : 1000);\n    return event;\n  }\n\n  function emit(input) {\n    return enqueueEvent(normalizeEvent(input));\n  }\n\n  function cartFetchErrorDetails(error) {\n    var name, message;\n    try { name = error && error.name; message = error && error.message; } catch (ignored) {}\n    var names = ['Error', 'TypeError', 'AbortError', 'NetworkError', 'TimeoutError',\n      'SecurityError', 'NotAllowedError', 'DOMException'];\n    var messages = ['Failed to fetch', 'Load failed', 'NetworkError when attempting to fetch resource.',\n      'The network connection was lost.', 'The Internet connection appears to be offline.',\n      'The operation was aborted.', 'The user aborted a request.'];\n    name = names.indexOf(name) !== -1 ? name : 'OtherError';\n    message = messages.indexOf(message) !== -1 ? message : 'Browser detail withheld.';\n    return { error_name: name, safe_message: message, stack_hash: errorSignature(name + '|' + message) };\n  }\n\n  function reportCartFailure(input, requestEpoch) {\n    // Hold only telemetry so a nearby pagehide can arrive after the rejection.\n    var event = normalizeEvent(input);\n    var failedAt = Date.now();\n    var timer;\n    var finished = false;\n    function finish() {\n      if (finished) return;\n      finished = true;\n      var index = pendingCartFailures.indexOf(finish);\n      if (index !== -1) pendingCartFailures.splice(index, 1);\n      window.clearTimeout(timer);\n      if (requestEpoch !== navigationEpoch && Math.abs(lastPageHideAt - failedAt) <= cartNavigationWindow) {\n        event.status = 'abandoned';\n        event.severity = 'warning';\n        event.retryable = false;\n        event.safe_context.signal_class = 'navigation_interruption';\n      }\n      enqueueEvent(event);\n    }\n    if (requestEpoch !== navigationEpoch) { finish(); flush(); return; }\n    if (pendingCartFailures.length >= 20) return finish();\n    pendingCartFailures.push(finish);\n    timer = window.setTimeout(finish, cartNavigationWindow);\n  }\n\n  function fromBuilderEvent(eventPayload) {\n    if (!eventPayload || !eventPayload.event) return;\n    var details = eventPayload.details || {};\n    var eventName = cleanName(eventPayload.event, 'builder_event', 160);\n    var failed = /(?:failed|blocked|error|unavailable|timed_out)$/.test(eventName);\n    var uploadEvent = /^file_upload_/.test(eventName);\n    var errorCode = cleanName(details.error_code, failed ? 'STOREFRONT_FLOW_FAILED' : '', 120);\n    var failurePhase = cleanName(details.failure_phase, '', 40);\n    if (uploadEvent && failed && !failurePhase) {\n      if (/transfer|part|timeout|etag|abort/i.test(eventName + ' ' + errorCode)) {\n        failurePhase = 'transfer';\n      } else if (/presign/i.test(eventName + ' ' + errorCode)) {\n        failurePhase = 'presign';\n      } else if (/finaliz|confirm/i.test(eventName + ' ' + errorCode)) {\n        failurePhase = 'finalization';\n      } else {\n        failurePhase = cleanName(details.step, 'unknown', 40);\n      }\n    }\n    var uploadCancelled = uploadEvent && /abort|cancel/i.test(\n      String(details.error_code || '') + ' ' + String(details.error_message || '')\n    );\n    var uploadOffline = uploadEvent && window.navigator.onLine === false;\n    var customerValidation = /^(?:file_upload|crop)_/.test(eventName) && (\n      details.status_code === 400\n      || details.status_code === 409\n      || details.status_code === 422\n      || /CMYK|TRANSPARENCY|VALIDATION|SIZE_MISMATCH/.test(String(details.error_code || ''))\n    );\n    var customerPolicyLimit = uploadEvent && (\n      details.status_code === 429\n      || errorCode === 'UPLOAD_QUOTA_EXCEEDED'\n    );\n    var signalClass = uploadCancelled\n      ? 'canceled_upload'\n      : (\n        uploadOffline\n          ? 'offline_client'\n          : (customerValidation ? 'customer_validation' : (customerPolicyLimit ? 'customer_policy_limit' : ''))\n      );\n    var errorFingerprint = failed && uploadEvent && !signalClass\n      ? errorSignature(['file_upload', failurePhase || 'unknown', errorCode].join('|'))\n      : cleanId(details.error_fingerprint, 128);\n    emit({\n      trace_id: details.trace_id,\n      workflow_instance_id: details.workflow_instance_id || details.upload_asset_id || details.attempt_id || details.upload_attempt_id,\n      attempt_id: details.attempt_id || details.upload_attempt_id,\n      workflow: workflowForBuilder(eventPayload.builder, eventName),\n      stage: cleanName(details.step, 'builder', 120),\n      event: eventName,\n      status: signalClass ? 'abandoned' : (/blocked/.test(eventName) ? 'blocked' : (failed ? 'failed' : (/started|opened|clicked/.test(eventName) ? 'started' : 'succeeded'))),\n      severity: signalClass ? 'warning' : (failed ? 'error' : 'info'),\n      error_code: errorCode,\n      error_fingerprint: errorFingerprint,\n      safe_message: failed && !signalClass ? 'Storefront operation failed.' : '',\n      duration_ms: details.duration_ms,\n      retry_count: details.retry_count,\n      retryable: failed && !signalClass,\n      provider: /cart|checkout/.test(eventName) ? 'shopify' : '',\n      operation: evidenceEnums.endpoint_operation.indexOf(details.endpoint_operation) !== -1\n        ? details.endpoint_operation : cleanName(details.step, eventName, 120),\n      status_code: details.status_code,\n      safe_context: Object.assign({}, window.StackhouseCropTelemetry ? window.StackhouseCropTelemetry.clean(details) : {}, {\n        affected_item_count: details.affected_item_count,\n        builder: eventPayload.builder,\n        cart_item_count: details.cart_item_count || details.cart_line_count,\n        confirmation_status: details.confirmation_status,\n        error_code: details.error_code,\n        failure_phase: failurePhase,\n        request_id: details.request_id,\n        recovered_attempt_id: details.recovered_attempt_id,\n        endpoint_operation: details.endpoint_operation,\n        operation: evidenceEnums.endpoint_operation.indexOf(details.endpoint_operation) !== -1\n          ? details.endpoint_operation : undefined,\n        issue_codes: details.issue_codes,\n        issue_types: details.issue_types,\n        online: window.navigator.onLine,\n        poll_count: details.poll_count,\n        product_handle: details.product_handle,\n        quantity: details.quantity,\n        response_status: details.status_code,\n        retry_count: details.retry_count,\n        rush_enabled: details.rush_enabled,\n        rush_variant_id: details.rush_variant_id,\n        signal_class: signalClass,\n        step: details.step,\n        transport_timeout_count: details.transport_timeout_count,\n        upload_read_failure: details.upload_read_failure,\n        upload_format: details.upload_format,\n        upload_size_band: details.upload_size_band,\n        upload_audience: details.upload_audience,\n        variant_id: details.variant_id\n      })\n    });\n  }\n\n  function requestUrl(input) {\n    if (typeof input === 'string') return input;\n    return input && typeof input.url === 'string' ? input.url : '';\n  }\n\n  function uploadFolderFromRequest(init) {\n    if (!init || typeof init.body !== 'string') return '';\n    try {\n      return cleanName(JSON.parse(init.body).folder_name, '', 80);\n    } catch (error) {\n      return '';\n    }\n  }\n\n  function monitoredRequest(url, init) {\n    var value = String(url || '');\n    if (!value || value.indexOf('/api/telemetry/') !== -1 || value.indexOf('/api/builder-events/') !== -1) return null;\n    if (value.indexOf('/cart/add') !== -1) return { workflow: 'shopify_cart', stage: 'cart_add', provider: 'shopify' };\n    if (value.indexOf('/cart/change') !== -1 || value.indexOf('/cart/update') !== -1 || value.indexOf('/cart/clear') !== -1) {\n      return { workflow: 'shopify_cart', stage: 'cart_update', provider: 'shopify',\n        cartOperation: value.indexOf('/cart/change') !== -1 ? 'cart_change'\n          : (value.indexOf('/cart/clear') !== -1 ? 'cart_clear' : 'cart_update') };\n    }\n    if (value.indexOf('/api/checkout-preflight/') !== -1) return { workflow: 'checkout_preflight', stage: 'availability', provider: 'shopify' };\n    if (value.indexOf('/api/uploads/generate-presigned-url/') !== -1) {\n      var presignWorkflow = uploadFolderFromRequest(init) === 'cropped_thumbnails'\n        ? 'upload_crop'\n        : 'file_upload';\n      return {\n        workflow: presignWorkflow,\n        stage: 'presign',\n        provider: 's3',\n        retryNetworkOnce: presignWorkflow === 'upload_crop'\n      };\n    }\n    if (value.indexOf('/api/uploads/complete-upload/') !== -1) {\n      return {\n        workflow: uploadFolderFromRequest(init) === 'cropped_thumbnails' ? 'upload_crop' : 'file_upload',\n        stage: 'finalization',\n        provider: 's3',\n        failClosed: true\n      };\n    }\n    if (value.indexOf('/api/check-crop/') !== -1) {\n      return {\n        workflow: 'upload_crop',\n        stage: 'confirmation',\n        provider: 'stackhouse_backend',\n        retryNetworkOnce: true\n      };\n    }\n    if (value.indexOf('/generate-custom-cart-product/') !== -1) {\n      return { workflow: workflowForBuilder(runtimeBuilder(), 'generated_product'), stage: 'generated_product', provider: 'shopify' };\n    }\n    if (value.indexOf('/create-orders/') !== -1 || value.indexOf('/draft-order') !== -1) {\n      return { workflow: 'backend_create_draft_order', stage: 'draft_order', provider: 'shopify' };\n    }\n    if (value.indexOf('/reorder') !== -1) return { workflow: 'reorder', stage: 'reorder', provider: 'shopify' };\n    if (value.indexOf('/saved') !== -1) return { workflow: 'saved_order', stage: 'saved_order', provider: 'shopify' };\n    return null;\n  }\n\n  function allowsTraceHeader(url) {\n    var parsed;\n    try {\n      parsed = new URL(String(url || ''), window.location.href);\n    } catch (error) {\n      return false;\n    }\n    return parsed.origin === window.location.origin\n      || parsed.origin === 'https://backend.thestackhouse.com';\n  }\n\n  function withTraceHeader(url, init, traceId) {\n    if (!allowsTraceHeader(url)) return init;\n    var next = Object.assign({}, init || {});\n    if (typeof window.Headers === 'function') {\n      var headers = new window.Headers(next.headers || {});\n      headers.set('X-Stackhouse-Trace-ID', traceId);\n      next.headers = headers;\n    } else {\n      next.headers = Object.assign({}, next.headers || {}, {\n        'X-Stackhouse-Trace-ID': traceId\n      });\n    }\n    return next;\n  }\n\n  function installFetchMonitor() {\n    if (typeof window.fetch !== 'function' || window.__stackhouseOperationalFetchInstalled) return;\n    var originalFetch = window.fetch.bind(window);\n    window.__stackhouseOperationalFetchInstalled = true;\n    window.fetch = function (input, init) {\n      if (init && init.stackhouseSkipOperationalTelemetry) return originalFetch(input, init);\n      var url = requestUrl(input);\n      var traceId = storageValue(traceKey);\n      var tracedInit = withTraceHeader(url, init, traceId);\n      var request = requestMetadata(url);\n      var target = monitoredRequest(url, tracedInit);\n      if (!target) {\n        var requestKey = String(url || '');\n        return originalFetch(input, tracedInit).then(function (response) {\n          var recovered = failedFetchAttempts[requestKey];\n          if (recovered && response && response.ok) {\n            var recoveredState = browserState();\n            emit({\n              workflow_instance_id: recovered.attempt_id,\n              attempt_id: recovered.attempt_id,\n              trace_id: traceId,\n              workflow: 'storefront_network',\n              stage: 'fetch',\n              event: 'fetch_request_succeeded',\n              status: 'succeeded',\n              severity: 'info',\n              provider: request.provider_class,\n              provider_status: 'succeeded',\n              operation: 'fetch',\n              safe_context: {\n                builder: runtimeBuilder(),\n                endpoint_family: request.endpoint_family,\n                endpoint_operation: request.endpoint_operation,\n                online: recoveredState.online,\n                provider_class: request.provider_class,\n                request_kind: request.request_kind,\n                request_target: request.request_target,\n                stack_hash: recovered.fingerprint,\n                step: 'fetch',\n                visibility_state: recoveredState.visibility_state\n              }\n            });\n            delete failedFetchAttempts[requestKey];\n          }\n          return response;\n        }, function (error) {\n          var details = safeErrorDetails(error);\n          var state = browserState();\n          var signalClass = lowActionabilityNetworkReason(\n            request,\n            state,\n            details.error_name,\n            false\n          );\n          var fingerprintParts = [\n            'fetch',\n            details.error_name,\n            request.provider_class,\n            request.request_kind,\n            request.request_target\n          ];\n          if (request.endpoint_family) fingerprintParts.push(request.endpoint_family);\n          if (request.endpoint_operation) fingerprintParts.push(request.endpoint_operation);\n          var fingerprint = errorSignature(fingerprintParts.join('|'));\n          var previousFailure = failedFetchAttempts[requestKey];\n          var attemptId = previousFailure ? previousFailure.attempt_id : networkAttemptId();\n          if (!signalClass) {\n            failedFetchAttempts[requestKey] = {\n              attempt_id: attemptId,\n              fingerprint: fingerprint\n            };\n          }\n          emit({\n            workflow_instance_id: attemptId,\n            attempt_id: attemptId,\n            trace_id: traceId,\n            workflow: 'storefront_network',\n            stage: 'fetch',\n            event: 'fetch_request_failed',\n            status: signalClass ? 'abandoned' : 'failed',\n            severity: signalClass ? 'warning' : 'error',\n            error_code: details.error_name,\n            error_fingerprint: fingerprint,\n            safe_message: details.safe_message\n              ? 'Storefront request failed: ' + details.safe_message\n              : 'Storefront request failed.',\n            retryable: !signalClass,\n            provider: request.provider_class,\n            provider_status: 'network_error',\n            operation: 'fetch',\n            safe_context: {\n              builder: runtimeBuilder(),\n              endpoint_family: request.endpoint_family,\n              endpoint_operation: request.endpoint_operation,\n              online: state.online,\n              provider_class: request.provider_class,\n              request_kind: request.request_kind,\n              request_target: request.request_target,\n              signal_class: signalClass,\n              stack_hash: fingerprint,\n              step: 'fetch',\n              visibility_state: state.visibility_state\n            }\n          });\n          throw error;\n        });\n      }\n      var startedAt = Date.now();\n      var requestNavigationEpoch = navigationEpoch;\n      var requestAttemptId = cleanId(\n        tracedInit && tracedInit.stackhouseWorkflowInstanceId,\n        96\n      ) || networkAttemptId();\n      emit({\n        workflow_instance_id: requestAttemptId,\n        attempt_id: requestAttemptId,\n        trace_id: traceId,\n        workflow: target.workflow,\n        stage: target.stage,\n        event: target.stage + '_request_started',\n        status: 'started',\n        provider: target.provider,\n        operation: target.stage\n      });\n      function performRequest(retried) {\n        return originalFetch(input, tracedInit).then(function (response) {\n        if (\n          target.failClosed\n          && !retried\n          && (response.status === 502 || response.status === 503 || response.status === 504)\n        ) {\n          emit({\n            workflow_instance_id: requestAttemptId,\n            attempt_id: requestAttemptId,\n            trace_id: traceId,\n            workflow: target.workflow,\n            stage: target.stage,\n            event: 'upload_finalize_retried',\n            status: 'started',\n            severity: 'info',\n            retry_count: 1,\n            retryable: true,\n            provider: target.provider,\n            provider_status: 'retrying',\n            operation: target.stage,\n            status_code: response.status,\n            safe_context: { response_status: response.status, retry_count: 1, step: target.stage }\n          });\n          return new Promise(function (resolve) {\n            window.setTimeout(resolve, 400);\n          }).then(function () {\n            return performRequest(true);\n          });\n        }\n        var failed = !response.ok;\n        var customerRejected = response.status === 400 || response.status === 409 || response.status === 422;\n        emit({\n          workflow_instance_id: requestAttemptId,\n          attempt_id: requestAttemptId,\n          trace_id: traceId,\n          workflow: target.workflow,\n          stage: target.stage,\n          event: target.stage + (failed ? '_request_failed' : '_request_succeeded'),\n          status: failed ? (customerRejected ? 'skipped' : 'failed') : 'succeeded',\n          severity: failed && !customerRejected ? 'error' : 'info',\n          error_code: failed ? 'HTTP_' + response.status : '',\n          safe_message: failed && !customerRejected ? 'Storefront request failed.' : '',\n          duration_ms: Date.now() - startedAt,\n          retryable: response.status === 429 || response.status >= 500,\n          provider: target.provider,\n          provider_status: failed ? 'failed' : 'succeeded',\n          operation: target.stage,\n          status_code: response.status,\n          safe_context: {\n            response_status: response.status,\n            builder: runtimeBuilder(),\n            endpoint_family: request.endpoint_family,\n            step: target.stage\n          }\n        });\n        if (target.failClosed && failed) {\n          var finalizationError = new Error(\n            'We couldn\u2019t confirm your upload. Please try again; your order has not been changed.'\n          );\n          finalizationError.name = 'UploadFinalizationError';\n          finalizationError.status = response.status;\n          finalizationError.statusCode = response.status;\n          finalizationError.errorCode = 'UPLOAD_FINALIZATION_UNCONFIRMED';\n          throw finalizationError;\n        }\n        return response;\n      }, function (error) {\n        var cartDetails = target.workflow === 'shopify_cart' ? cartFetchErrorDetails(error) : null;\n        var canceled = cartDetails ? cartDetails.error_name === 'AbortError'\n          : error && String(error.name || '').toLowerCase() === 'aborterror';\n        var offline = window.navigator.onLine === false;\n        var errorCode = cartDetails ? cartDetails.error_name : error && error.name\n          ? cleanName(error.name, 'NETWORK_ERROR', 120)\n          : 'NETWORK_ERROR';\n        if (target.retryNetworkOnce && !retried && !canceled && !offline) {\n          emit({\n            workflow_instance_id: requestAttemptId,\n            attempt_id: requestAttemptId,\n            trace_id: traceId,\n            workflow: target.workflow,\n            stage: target.stage,\n            event: target.stage + '_request_failed',\n            status: 'failed',\n            severity: 'error',\n            error_code: errorCode,\n            safe_message: 'Storefront network request failed.',\n            duration_ms: Date.now() - startedAt,\n            retry_count: 0,\n            retryable: true,\n            provider: target.provider,\n            provider_status: 'network_error',\n            operation: target.stage,\n            safe_context: {\n              builder: runtimeBuilder(),\n              endpoint_family: request.endpoint_family,\n              online: window.navigator.onLine,\n              retry_count: 0,\n              step: target.stage\n            }\n          });\n          emit({\n            workflow_instance_id: requestAttemptId,\n            attempt_id: requestAttemptId,\n            trace_id: traceId,\n            workflow: target.workflow,\n            stage: target.stage,\n            event: target.stage + '_request_retried',\n            status: 'started',\n            severity: 'info',\n            retry_count: 1,\n            retryable: true,\n            provider: target.provider,\n            provider_status: 'retrying',\n            operation: target.stage,\n            safe_context: { retry_count: 1, step: target.stage }\n          });\n          return new Promise(function (resolve) {\n            window.setTimeout(resolve, 400);\n          }).then(function () {\n            return performRequest(true);\n          });\n        }\n        if (target.failClosed && !retried && !canceled && !offline) {\n          emit({\n            workflow_instance_id: requestAttemptId,\n            attempt_id: requestAttemptId,\n            trace_id: traceId,\n            workflow: target.workflow,\n            stage: target.stage,\n            event: 'upload_finalize_retried',\n            status: 'started',\n            severity: 'info',\n            retry_count: 1,\n            retryable: true,\n            provider: target.provider,\n            provider_status: 'retrying',\n            operation: target.stage,\n            safe_context: { retry_count: 1, step: target.stage }\n          });\n          return new Promise(function (resolve) {\n            window.setTimeout(resolve, 400);\n          }).then(function () {\n            return performRequest(true);\n          });\n        }\n        var failure = {\n          workflow_instance_id: requestAttemptId,\n          attempt_id: requestAttemptId,\n          trace_id: traceId,\n          workflow: target.workflow,\n          stage: target.stage,\n          event: target.stage + '_request_failed',\n          status: canceled || offline ? 'abandoned' : 'failed',\n          severity: canceled || offline ? 'warning' : 'error',\n          error_code: errorCode,\n          safe_message: cartDetails ? 'Storefront request rejected: ' + cartDetails.safe_message\n            : (canceled || offline ? '' : 'Storefront network request failed.'),\n          error_fingerprint: cartDetails ? cartDetails.stack_hash : undefined,\n          duration_ms: Date.now() - startedAt,\n          retryable: !canceled && !offline,\n          provider: target.provider,\n          provider_status: 'network_error',\n          operation: target.stage,\n          safe_context: Object.assign({\n            builder: runtimeBuilder(),\n            endpoint_family: request.endpoint_family,\n            online: window.navigator.onLine,\n            signal_class: canceled ? 'canceled_upload' : (offline ? 'offline_client' : ''),\n            step: target.stage\n          }, cartDetails ? {\n            error_name: cartDetails.error_name,\n            stack_hash: cartDetails.stack_hash,\n            operation: target.cartOperation || target.stage,\n            request_kind: 'api', request_target: 'cart', provider_class: 'shopify',\n            failure_phase: 'fetch', visibility_state: document.visibilityState\n          } : {})\n        };\n        if (cartDetails && errorCode === 'TypeError' && !canceled && !offline) {\n          reportCartFailure(failure, requestNavigationEpoch);\n        } else {\n          emit(failure);\n        }\n        throw error;\n      });\n      }\n      return performRequest(false);\n    };\n  }\n\n  function installCheckoutMonitor() {\n    document.addEventListener('click', function (event) {\n      var target = event.target && event.target.closest\n        ? event.target.closest('a[href*=\"/checkout\"], button[name=\"checkout\"], #cart_checkout_button')\n        : null;\n      if (!target) return;\n      emit({\n        workflow: 'shopify_checkout',\n        stage: 'checkout_entry',\n        event: 'checkout_started',\n        status: 'started',\n        provider: 'shopify',\n        operation: 'checkout',\n        safe_context: { builder: runtimeBuilder(), step: 'checkout_entry' }\n      });\n    }, true);\n\n    var referrerPath = '';\n    try {\n      referrerPath = new URL(document.referrer).pathname;\n    } catch (error) {}\n    if (window.location.pathname.indexOf('/stock-problems') !== -1 || referrerPath.indexOf('/stock-problems') !== -1) {\n      emit({\n        workflow: 'checkout_stock_problem',\n        stage: 'native_stock_validation',\n        event: 'checkout_stock_problem_returned',\n        status: 'blocked',\n        severity: 'error',\n        error_code: 'SHOPIFY_UNAVAILABLE_PRODUCT',\n        safe_message: 'Shopify reported an unavailable product during checkout.',\n        provider: 'shopify',\n        provider_status: 'blocked',\n        operation: 'checkout_stock_validation',\n        safe_context: { builder: runtimeBuilder(), step: 'native_stock_validation' }\n      });\n    }\n  }\n\n  function installGlobalErrorMonitor() {\n    function mediaRecovery(value, source) {\n      return {\n        source: source || '',\n        value: value || ''\n      };\n    }\n\n    function stableThumbnailRecoveryUrl(resourceValue, orderValue) {\n      if (!orderValue) return '';\n      try {\n        var recoveryUrl = new URL(String(resourceValue || ''), window.location.href);\n        recoveryUrl.pathname = '/api/get_thumb_url/';\n        recoveryUrl.search = '?orderId=' + encodeURIComponent(orderValue);\n        recoveryUrl.hash = '';\n        return recoveryUrl.toString();\n      } catch (error) {\n        return '';\n      }\n    }\n\n    function stableMediaRecoveryValue(target, resourceValue, resource) {\n      var configuredValue = target && target.dataset\n        ? String(target.dataset.stackhouseRecoverySrc || '')\n        : '';\n      if (configuredValue) {\n        try {\n          var configuredUrl = new URL(configuredValue, window.location.href);\n          var configuredOrderValue = String(configuredUrl.searchParams.get('orderId') || '');\n          var configuredRecoveryValue = stableThumbnailRecoveryUrl(\n            configuredValue,\n            configuredOrderValue\n          );\n          if (configuredRecoveryValue) {\n            return mediaRecovery(configuredRecoveryValue, 'element_data');\n          }\n        } catch (error) {}\n      }\n      if (\n        !target\n        || resource.provider_class !== 'stackhouse_backend'\n        || resource.endpoint_family !== 'media_proxy'\n      ) return mediaRecovery('', '');\n      try {\n        var resourceUrl = new URL(String(resourceValue || ''), window.location.href);\n        var resourceOrderValue = String(resourceUrl.searchParams.get('orderId') || '');\n        var directRecoveryValue = stableThumbnailRecoveryUrl(resourceValue, resourceOrderValue);\n        if (directRecoveryValue) return mediaRecovery(directRecoveryValue, 'request_query');\n      } catch (error) {}\n      if (typeof target.closest !== 'function') {\n        return mediaRecovery('', 'missing_identity');\n      }\n      var tile;\n      var recoverySource = 'artwork_tile';\n      try {\n        tile = target.closest('.elem[data-unique-id]');\n        if (!tile) {\n          var modal = target.closest('.form__wrapper');\n          var selectedMedia = modal && typeof modal.querySelector === 'function'\n            ? modal.querySelector('.grid__photos .elem[data-unique-id] > .media.selected')\n            : null;\n          tile = selectedMedia && typeof selectedMedia.closest === 'function'\n            ? selectedMedia.closest('.elem[data-unique-id]')\n            : null;\n          recoverySource = 'selected_modal_tile';\n        }\n      } catch (error) {\n        return mediaRecovery('', 'missing_identity');\n      }\n      var orderValue = tile && typeof tile.getAttribute === 'function'\n        ? String(tile.getAttribute('data-unique-id') || '')\n        : '';\n      var recoveryValue = stableThumbnailRecoveryUrl(resourceValue, orderValue);\n      return mediaRecovery(\n        recoveryValue,\n        recoveryValue ? recoverySource : 'missing_identity'\n      );\n    }\n\n    function probeMediaResource(resourceValue) {\n      var startedAt = Date.now();\n      var diagnosticUrl;\n      try {\n        diagnosticUrl = new URL(String(resourceValue || ''), window.location.href);\n        diagnosticUrl.searchParams.set('_stackhouse_media_diagnostic', '1');\n      } catch (error) {\n        return Promise.resolve({\n          diagnostic_result: 'probe_url_invalid',\n          probe_duration_ms: Date.now() - startedAt\n        });\n      }\n      if (typeof window.fetch !== 'function') {\n        return Promise.resolve({\n          diagnostic_result: 'probe_unavailable',\n          probe_duration_ms: Date.now() - startedAt\n        });\n      }\n      return new Promise(function (resolve) {\n        var finished = false;\n        var timeoutId = window.setTimeout(function () {\n          finish({ diagnostic_result: 'probe_timeout' });\n        }, 5000);\n\n        function finish(result) {\n          if (finished) return;\n          finished = true;\n          if (typeof window.clearTimeout === 'function') window.clearTimeout(timeoutId);\n          resolve(Object.assign({}, result, {\n            probe_duration_ms: Date.now() - startedAt\n          }));\n        }\n\n        try {\n          window.fetch(diagnosticUrl.toString(), {\n            method: 'HEAD',\n            mode: 'cors',\n            credentials: 'omit',\n            redirect: 'manual',\n            cache: 'no-store',\n            stackhouseSkipOperationalTelemetry: true\n          }).then(function (response) {\n            var diagnosticHeader = response.headers && typeof response.headers.get === 'function'\n              ? cleanName(response.headers.get('X-Stackhouse-Media-Diagnostic'), '', 80)\n              : '';\n            var responseStatus = Number(response.status);\n            var result = diagnosticHeader\n              || (response.type === 'opaqueredirect' ? 'backend_redirect_ready'\n                : (response.ok ? 'backend_response_ready' : 'backend_http_error'));\n            finish({\n              diagnostic_result: result,\n              response_status: responseStatus >= 100 && responseStatus <= 599\n                ? safeNumber(responseStatus, 599)\n                : undefined\n            });\n          }, function () {\n            finish({\n              diagnostic_result: window.navigator.onLine === false\n                ? 'offline_client'\n                : 'probe_network_error'\n            });\n          });\n        } catch (error) {\n          finish({ diagnostic_result: 'probe_failed_to_start' });\n        }\n      });\n    }\n\n    function emitMediaProbe(resourceValue, resource, attemptId, context) {\n      probeMediaResource(resourceValue).then(function (probe) {\n        emit({\n          workflow_instance_id: attemptId,\n          attempt_id: attemptId,\n          workflow: 'storefront_network',\n          stage: 'media_probe',\n          event: 'media_resource_probe_completed',\n          status: 'skipped',\n          severity: 'info',\n          duration_ms: probe.probe_duration_ms,\n          provider: resource.provider_class,\n          provider_status: probe.diagnostic_result,\n          operation: 'media_resource_probe',\n          status_code: probe.response_status,\n          safe_context: {\n            builder: context.builder,\n            diagnostic_result: probe.diagnostic_result,\n            endpoint_family: resource.endpoint_family,\n            endpoint_operation: resource.endpoint_operation,\n            network_effective_type: context.network_effective_type,\n            online: context.online,\n            probe_duration_ms: probe.probe_duration_ms,\n            provider_class: resource.provider_class,\n            recovery_attempted: context.recovery_attempted,\n            recovery_outcome: context.recovery_outcome,\n            recovery_source: context.recovery_source,\n            request_kind: resource.request_kind,\n            request_target: resource.request_target,\n            resource_role: context.resource_role,\n            response_status: probe.response_status,\n            step: 'media_probe',\n            visibility_state: context.visibility_state\n          }\n        });\n      });\n    }\n\n    window.addEventListener('error', function (event) {\n      if (!event.error && event.target && event.target !== window) {\n        var resourceValue = event.target.currentSrc || event.target.src || event.target.href || '';\n        var resource = requestMetadata(resourceValue);\n        var resourceState = browserState();\n        var resourceTiming = resourceTimingDetails(resourceValue);\n        var failedResourceRole = resourceRole(event.target);\n        var resourceSignalClass = lowActionabilityNetworkReason(\n          resource,\n          resourceState,\n          'RESOURCE_LOAD_FAILED',\n          true\n        );\n        var resourceFingerprint = resourceErrorFingerprint(resource);\n        var previousResourceFailure = event.target.__stackhouseOperationalResourceFailure;\n        var libraryPreviews = window.StackhouseLibraryThumbnails;\n        var libraryResource = Boolean(libraryPreviews && libraryPreviews.owns(event.target));\n        if (libraryResource && previousResourceFailure && previousResourceFailure.library_refresh_pending) return;\n        var mediaRecoveryResult = libraryResource\n          ? mediaRecovery('', libraryPreviews.recoverySource ? libraryPreviews.recoverySource(event.target) : 'library_metadata')\n          : stableMediaRecoveryValue(event.target, resourceValue, resource);\n        var recoveryValue = mediaRecoveryResult.value;\n        var recoveryResource = requestMetadata(recoveryValue);\n        var recoveryInProgress = Boolean(\n          previousResourceFailure && previousResourceFailure.recovery_in_progress\n        );\n        var resourceAttemptId = previousResourceFailure\n          && (\n            previousResourceFailure.fingerprint === resourceFingerprint\n            || recoveryInProgress\n          )\n          ? previousResourceFailure.attempt_id\n          : networkAttemptId();\n        var recoverySource = recoveryInProgress\n          ? previousResourceFailure.recovery_source\n          : mediaRecoveryResult.source;\n        if (!resourceSignalClass) {\n          event.target.__stackhouseOperationalResourceFailure = {\n            attempt_id: resourceAttemptId,\n            // Track the current endpoint while retaining the original attempt through fallback.\n            fingerprint: resourceFingerprint,\n            recovery_attempted: Boolean(\n              previousResourceFailure && previousResourceFailure.recovery_attempted\n            ),\n            recovery_in_progress: false,\n            recovery_source: recoverySource,\n            resource_role: previousResourceFailure\n              ? previousResourceFailure.resource_role\n              : failedResourceRole,\n            started_at: previousResourceFailure\n              ? previousResourceFailure.started_at\n              : Date.now()\n          };\n        }\n        var failedResource = event.target.__stackhouseOperationalResourceFailure;\n        var canRecoverMedia = Boolean(\n          failedResource\n          && !failedResource.recovery_attempted\n          && !resourceSignalClass\n          && (libraryResource ? libraryPreviews.canRecover(event.target) : (\n          resource.provider_class === 'stackhouse_backend'\n          && (resource.endpoint_family === 'media_proxy' || resource.endpoint_family === 'thumbnail_proxy')\n          && recoveryResource.provider_class === 'stackhouse_backend'\n          && recoveryResource.endpoint_family === 'thumbnail_proxy'\n          && recoveryValue !== resourceValue))\n        );\n        var recoveryOutcome = recoveryInProgress\n          ? 'failed'\n          : (canRecoverMedia ? 'started' : 'not_available');\n        if (libraryResource && !canRecoverMedia) {\n          event.target.alt = 'Preview unavailable. Refresh your Library to try again.';\n        }\n        emit({\n          workflow_instance_id: resourceAttemptId,\n          attempt_id: resourceAttemptId,\n          workflow: 'storefront_network',\n          stage: 'resource_load',\n          event: 'resource_load_failed',\n          status: resourceSignalClass ? 'abandoned' : 'failed',\n          severity: resourceSignalClass ? 'warning' : 'error',\n          error_code: 'RESOURCE_LOAD_FAILED',\n          error_fingerprint: resourceFingerprint,\n          safe_message: 'Storefront resource failed to load.',\n          retryable: !resourceSignalClass,\n          provider: resource.provider_class,\n          provider_status: 'network_error',\n          operation: 'resource_load',\n          duration_ms: resourceTiming.resource_duration_ms,\n          status_code: resourceTiming.response_status,\n          safe_context: {\n            builder: runtimeBuilder(),\n            endpoint_family: resource.endpoint_family,\n            endpoint_operation: resource.endpoint_operation,\n            network_effective_type: resourceState.network_effective_type,\n            next_hop_protocol: resourceTiming.next_hop_protocol,\n            online: resourceState.online,\n            provider_class: resource.provider_class,\n            request_kind: resource.request_kind,\n            request_target: resource.request_target,\n            resource_duration_ms: resourceTiming.resource_duration_ms,\n            resource_role: failedResourceRole,\n            recovery_attempted: canRecoverMedia || recoveryInProgress,\n            recovery_outcome: recoveryOutcome,\n            recovery_source: recoverySource,\n            response_status: resourceTiming.response_status,\n            signal_class: resourceSignalClass,\n            stack_hash: resourceFingerprint,\n            step: 'resource_load',\n            payload_size_class: resourceTiming.transfer_size_bucket,\n            visibility_state: resourceState.visibility_state\n          }\n        });\n        if (\n          resource.provider_class === 'stackhouse_backend'\n          && resource.endpoint_family === 'media_proxy'\n          && !recoveryInProgress\n          && !libraryResource\n        ) {\n          emitMediaProbe(resourceValue, resource, resourceAttemptId, {\n            builder: runtimeBuilder(),\n            network_effective_type: resourceState.network_effective_type,\n            online: resourceState.online,\n            recovery_attempted: canRecoverMedia,\n            recovery_outcome: recoveryOutcome,\n            recovery_source: recoverySource,\n            resource_role: failedResourceRole,\n            visibility_state: resourceState.visibility_state\n          });\n        }\n        if (canRecoverMedia) {\n          failedResource.recovery_attempted = true;\n          failedResource.recovery_in_progress = true;\n          if (libraryResource) {\n            var libraryTarget = event.target;\n            var originalValue = String(libraryTarget.src || libraryTarget.currentSrc || '');\n            failedResource.library_refresh_pending = true;\n            libraryPreviews.refresh(libraryTarget).then(function (url) {\n              failedResource.library_refresh_pending = false;\n              if (libraryTarget.isConnected === false ||\n                  libraryTarget.__stackhouseOperationalResourceFailure !== failedResource ||\n                  String(libraryTarget.src || libraryTarget.currentSrc || '') !== originalValue) return;\n              libraryTarget.src = url;\n            }).catch(function (error) {\n              failedResource.library_refresh_pending = false;\n              if (libraryTarget.__stackhouseOperationalResourceFailure !== failedResource ||\n                  String(libraryTarget.src || libraryTarget.currentSrc || '') !== originalValue) return;\n              failedResource.recovery_in_progress = false;\n              libraryTarget.alt = 'Preview unavailable. Refresh your Library to try again.';\n              emit({\n                workflow: 'storefront_network', stage: 'resource_load', operation: 'resource_load',\n                workflow_instance_id: resourceAttemptId, attempt_id: resourceAttemptId,\n                event: 'resource_recovery_failed', status: 'failed', severity: 'warning',\n                error_code: error && /^LIBRARY_PREVIEW_[A-Z_]+$/.test(error.errorCode || '')\n                  ? error.errorCode : 'LIBRARY_PREVIEW_REFRESH_FAILED',\n                safe_context: { endpoint_family: resource.endpoint_family, recovery_attempted: true,\n                  recovery_outcome: 'failed', recovery_source: recoverySource }\n              });\n            });\n          } else {\n            event.target.src = recoveryValue;\n          }\n        }\n        return;\n      }\n      var details = safeErrorDetails(\n        event.error || event.message,\n        event['file' + 'name'],\n        event.lineno,\n        event.colno\n      );\n      var browserSignalClass = lowActionabilityBrowserReason(details);\n      emit({\n        workflow: 'storefront_browser',\n        stage: 'browser_runtime',\n        event: 'unhandled_browser_error',\n        status: browserSignalClass ? 'abandoned' : 'failed',\n        severity: browserSignalClass ? 'warning' : 'error',\n        error_code: details.error_name,\n        error_fingerprint: details.stack_hash,\n        safe_message: details.safe_message\n          ? 'Unhandled storefront browser error: ' + details.safe_message\n          : 'Unhandled storefront browser error.',\n        safe_context: {\n          builder: runtimeBuilder(),\n          column_number: details.column_number,\n          error_name: details.error_name,\n          line_number: details.line_number,\n          signal_class: browserSignalClass,\n          script_source: details.script_source,\n          stack_hash: details.stack_hash,\n          step: 'browser_runtime'\n        }\n      });\n    }, true);\n    function recordResourceLoad(event) {\n      var target = event.target;\n      var failedResource = target && target.__stackhouseOperationalResourceFailure;\n      if (!failedResource) return;\n      var resourceValue = target.currentSrc || target.src || target.href || '';\n      var resource = requestMetadata(resourceValue);\n      var resourceFingerprint = resourceErrorFingerprint(resource);\n      if (\n        resourceFingerprint !== failedResource.fingerprint\n        && !failedResource.recovery_in_progress\n      ) return;\n      var resourceState = browserState();\n      var resourceTiming = resourceTimingDetails(resourceValue);\n      emit({\n        workflow_instance_id: failedResource.attempt_id,\n        attempt_id: failedResource.attempt_id,\n        workflow: 'storefront_network',\n        stage: 'resource_load',\n        event: 'resource_load_succeeded',\n        status: 'succeeded',\n        severity: 'info',\n        provider: resource.provider_class,\n        provider_status: 'succeeded',\n        operation: 'resource_load',\n        duration_ms: failedResource.started_at\n          ? Date.now() - failedResource.started_at\n          : resourceTiming.resource_duration_ms,\n        status_code: resourceTiming.response_status,\n        safe_context: {\n          builder: runtimeBuilder(),\n          endpoint_family: resource.endpoint_family,\n          endpoint_operation: resource.endpoint_operation,\n          network_effective_type: resourceState.network_effective_type,\n          next_hop_protocol: resourceTiming.next_hop_protocol,\n          online: resourceState.online,\n          provider_class: resource.provider_class,\n          request_kind: resource.request_kind,\n          request_target: resource.request_target,\n          resource_duration_ms: resourceTiming.resource_duration_ms,\n          resource_role: failedResource.resource_role || resourceRole(target),\n          recovery_attempted: failedResource.recovery_attempted,\n          recovery_outcome: failedResource.recovery_attempted ? 'succeeded' : 'not_needed',\n          recovery_source: failedResource.recovery_source,\n          response_status: resourceTiming.response_status,\n          stack_hash: resourceFingerprint,\n          step: 'resource_load',\n          payload_size_class: resourceTiming.transfer_size_bucket,\n          visibility_state: resourceState.visibility_state\n        }\n      });\n      delete target.__stackhouseOperationalResourceFailure;\n    }\n    // Image load events need document capture in browsers that omit Window\n    // from their non-bubbling load path. Clearing the attempt deduplicates both.\n    window.addEventListener('load', recordResourceLoad, true);\n    document.addEventListener('load', recordResourceLoad, true);\n    window.addEventListener('unhandledrejection', function (event) {\n      var details = safeErrorDetails(event.reason);\n      var rejectionSignalClass = lowActionabilityBrowserReason(details);\n      emit({\n        workflow: 'storefront_browser',\n        stage: 'browser_runtime',\n        event: 'unhandled_promise_rejection',\n        status: rejectionSignalClass ? 'abandoned' : 'failed',\n        severity: rejectionSignalClass ? 'warning' : 'error',\n        error_code: details.error_name,\n        error_fingerprint: details.stack_hash,\n        safe_message: details.safe_message\n          ? 'Unhandled storefront promise rejection: ' + details.safe_message\n          : 'Unhandled storefront promise rejection.',\n        safe_context: {\n          builder: runtimeBuilder(),\n          column_number: details.column_number,\n          error_name: details.error_name,\n          line_number: details.line_number,\n          page_handle: publicPageHandle(),\n          rejection_value_class: rejectionValueClass(event.reason),\n          signal_class: rejectionSignalClass,\n          script_source: details.script_source,\n          stack_hash: details.stack_hash,\n          step: 'browser_runtime'\n        }\n      });\n    });\n  }\n\n  window.StackhouseOperationalTelemetry = {\n    emit: emit,\n    flush: flush,\n    fromBuilderEvent: fromBuilderEvent,\n    traceId: function () { return storageValue(traceKey); },\n    traceHeaders: function () {\n      return { 'X-Stackhouse-Trace-ID': storageValue(traceKey) };\n    }\n  };\n\n  document.addEventListener('stackhouse:builder-event', function (event) {\n    fromBuilderEvent(event.detail);\n  });\n  installFetchMonitor();\n  installCheckoutMonitor();\n  installGlobalErrorMonitor();\n  emit({\n    workflow: 'storefront_browser',\n    stage: 'page_view',\n    event: 'storefront_page_loaded',\n    status: 'succeeded',\n    safe_context: { builder: runtimeBuilder(), page_kind: pageKind(), step: 'page_view' }\n  });\n  window.addEventListener('pagehide', function () {\n    navigationEpoch += 1;\n    lastPageHideAt = Date.now();\n    pendingCartFailures.slice().forEach(function (finish) { finish(); });\n    flush();\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
