1!function(window){"use strict";var Commerce=window.JollyCommerce=window.JollyCommerce||{},CODES={CONFIG_MISSING:"CONFIG_MISSING",STOREFRONT_TOKEN_MISSING:"STOREFRONT_TOKEN_MISSING",SHOPIFY_UNAVAILABLE:"SHOPIFY_UNAVAILABLE",SHOPIFY_GRAPHQL_ERROR:"SHOPIFY_GRAPHQL_ERROR",SHOPIFY_USER_ERROR:"SHOPIFY_USER_ERROR",CART_EXPIRED:"CART_EXPIRED",CART_EMPTY:"CART_EMPTY",CART_UNAVAILABLE:"CART_UNAVAILABLE",VARIANT_UNAVAILABLE:"VARIANT_UNAVAILABLE",PRICE_CHANGED:"PRICE_CHANGED",STOCK_CHANGED:"STOCK_CHANGED",AUTHENTICATION_EXPIRED:"AUTHENTICATION_EXPIRED",ACCOUNT_UNAVAILABLE:"ACCOUNT_UNAVAILABLE",REVIEW_PROVIDER_UNAVAILABLE:"REVIEW_PROVIDER_UNAVAILABLE",CONSENT_REQUIRED:"CONSENT_REQUIRED",UNKNOWN:"UNKNOWN"},USER_MESSAGES={};function normalise(error,defaults){var fallback=defaults||{},code=fallback.code||CODES.UNKNOWN,message=fallback.message||USER_MESSAGES[code]||USER_MESSAGES[CODES.UNKNOWN],details=fallback.details||null,recoverable=!1!==fallback.recoverable;return error&&(code=error.code||code,message=error.message||message,details=error.details||error.errors||details,recoverable=void 0!==error.recoverable?Boolean(error.recoverable):recoverable),{code:code,message:message,userMessage:USER_MESSAGES[code]||message,recoverable:recoverable,details:details,originalError:error||null}}function create(code,message,options){var opts=options||{};return normalise({code:code,message:message||USER_MESSAGES[code],details:opts.details||null,recoverable:opts.recoverable})}USER_MESSAGES[CODES.CONFIG_MISSING]="Shop configuration is missing.",USER_MESSAGES[CODES.STOREFRONT_TOKEN_MISSING]="Product data is not available yet.",USER_MESSAGES[CODES.SHOPIFY_UNAVAILABLE]="The shop is temporarily unavailable. Please try again.",USER_MESSAGES[CODES.SHOPIFY_GRAPHQL_ERROR]="The shop returned an unexpected response.",USER_MESSAGES[CODES.SHOPIFY_USER_ERROR]="The shop could not complete that action.",USER_MESSAGES[CODES.CART_EXPIRED]="Your basket has expired. Please add the products again.",USER_MESSAGES[CODES.CART_EMPTY]="Your basket is empty.",USER_MESSAGES[CODES.CART_UNAVAILABLE]="The basket is temporarily unavailable.",USER_MESSAGES[CODES.VARIANT_UNAVAILABLE]="This product option is no longer available.",USER_MESSAGES[CODES.PRICE_CHANGED]="A product price has changed. Please review your basket.",USER_MESSAGES[CODES.STOCK_CHANGED]="A product stock level has changed. Please review your basket.",USER_MESSAGES[CODES.AUTHENTICATION_EXPIRED]="Your account session has expired. Please sign in again.",USER_MESSAGES[CODES.ACCOUNT_UNAVAILABLE]="Account access is not available yet.",USER_MESSAGES[CODES.REVIEW_PROVIDER_UNAVAILABLE]="Reviews are temporarily unavailable.",USER_MESSAGES[CODES.CONSENT_REQUIRED]="Consent is required before this action can be tracked.",USER_MESSAGES[CODES.UNKNOWN]="Something went wrong. Please try again.",Commerce.ErrorHandler={CODES:CODES,USER_MESSAGES:USER_MESSAGES,normalise:normalise,create:create,fromShopifyUserErrors:function(userErrors,fallbackCode){var errors=Array.isArray(userErrors)?userErrors.filter(Boolean):[];return errors.length?create(fallbackCode||CODES.SHOPIFY_USER_ERROR,errors.map(function(err){return err.message}).join(" "),{details:errors,recoverable:!0}):null},report:function(error,context){var normalised=normalise(error);return window.console&&window.console.warn&&window.console.warn("[JollyCommerce]",normalised.code,normalised.message,context||{}),window.dispatchEvent(new CustomEvent("commerce:error",{detail:{error:normalised,context:context||null}})),normalised}}}(window); 2//# sourceURL=https://148210659.fs1.hubspotusercontent-eu1.net/hubfs/148210659/hub_generated/template_assets/1/448886050040/1789652031663/template_error-handler.js
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.