@shopify/hydrogen 2023.4.3 → 2023.4.4

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.
@@ -5,8 +5,8 @@ var serverRuntime = require('@remix-run/server-runtime');
5
5
  var react = require('react');
6
6
  var react$1 = require('@remix-run/react');
7
7
 
8
- var Oe=Object.defineProperty;var Ae=(e,t)=>()=>(e&&(t=e(e=0)),t);var Le=(e,t)=>{for(var n in t)Oe(e,n,{get:t[n],enumerable:!0});};var Se={};Le(Se,{default:()=>ye,logSeoTags:()=>me});function ye({headTags:e}){return me(e),null}function me(e){console.log(" "),console.log("%cSEO Meta Tags",`${nt}`),console.log(" "),e.forEach(t=>{if(t.tag==="script"){if(console.log("%c\u2022 JSON LD ",z),t.children)try{console.table(JSON.parse(t.children),["name","content"]);}catch{console.log(t.children);}}else {if(console.log(`%c\u2022 ${t.tag} `,z),t.children)if(typeof t.children=="string")console.log(`\u21B3 ${t.children}`);else try{Object.entries(JSON.parse(t.children)).map(([n,r])=>console.log(`\u21B3 ${r}`));}catch{console.log(t.children);}if(t.props.property==="og:image:url"){let n=t.props.content;ot(n).then(r=>{let o=`font-size: 400px; padding: 10px; background: white url(${r}) no-repeat center; background-size: contain;`;console.log("%c\u2022 Share image preview",z),console.log("%c ",o),console.log(`\u21B3 ${n}`);}).catch(r=>{console.error(r);});}Object.entries(t.props).map(([n,r])=>{console.log(`\u21B3 ${n} \u2192 ${r}`);});}console.log(" ");});}async function ot(e){let r=await(await(await fetch(e)).blob()).arrayBuffer();return `data:image/png;base64,${at(r)}`}function at(e){let t="",n=new Uint8Array(e),r=n.byteLength;for(let o=0;o<r;o++)t+=String.fromCharCode(n[o]);return btoa(t)}var z,nt,Ce=Ae(()=>{z="text-transform: uppercase;",nt="text-transform: uppercase; font-weight: bold; text-transform: uppercase;font-weight: bold";});function Z(e){let t=Array.isArray(e)?e:[e],n="";for(let r of t)r!=null&&(typeof r=="object"?!!r.body&&typeof r.body=="string"?n+=r.body:n+=JSON.stringify(r):n+=r);return n}var U="public",ve="private",Me="no-store",ee={maxAge:"max-age",staleWhileRevalidate:"stale-while-revalidate",sMaxAge:"s-maxage",staleIfError:"stale-if-error"};function w(e){let t=[];return Object.keys(e).forEach(n=>{n==="mode"?t.push(e[n]):ee[n]&&t.push(`${ee[n]}=${e[n]}`);}),t.join(", ")}function H(){return {mode:Me}}function te(e){if(e?.mode&&e?.mode!==U&&e?.mode!==ve)throw Error("'mode' must be either 'public' or 'private'")}function y(e){return te(e),{mode:U,maxAge:1,staleWhileRevalidate:9,...e}}function j(e){return te(e),{mode:U,maxAge:3600,staleWhileRevalidate:82800,...e}}function G(e){return e}function R(e){return String(e).includes("__proto__")?JSON.parse(e,qe):JSON.parse(e)}function qe(e,t){if(e!=="__proto__")return t}function I(e,t){return e&&t?{...e,...t}:e||y()}function _(e){return w(I(e))}async function Ne(e,t){if(!e)return;let n=await e.match(t);if(!n){t.url;return}return t.url,n}async function Ue(e,t,n,r){if(!e)return;let o=I(r);t.headers.set("cache-control",_(I(o,{maxAge:(o.maxAge||0)+(o.staleWhileRevalidate||0)})));let a=_(I(o));n.headers.set("cache-control",a),n.headers.set("real-cache-control",a),n.headers.set("cache-put-date",new Date().toUTCString()),t.url,await e.put(t,n);}async function He(e,t){!e||(t.url,await e.delete(t));}function je(e,t){let n=t.headers.get("cache-put-date"),r=t.headers.get("real-cache-control"),o=0;if(r){let c=r.match(/max-age=(\d*)/);c&&c.length>1&&(o=parseFloat(c[1]));}if(!n)return !1;let i=(new Date().valueOf()-new Date(n).valueOf())/1e3>o;return i&&(e.url,void 0),i}var k={get:Ne,set:Ue,delete:He,generateDefaultCacheControlHeader:_,isStale:je};function $(e){return `https://shopify.dev/?${e}`}function Ge(e){return e||y()}async function re(e,t){if(!e)return;let n=$(t),r=new Request(n),o=await k.get(e,r);if(!o)return;let a=await o.text();try{return [R(a),o]}catch{return [a,o]}}async function D(e,t,n,r){if(!e)return;let o=$(t),a=new Request(o),s=new Response(JSON.stringify(n));await k.set(e,a,s,Ge(r));}function ne(e,t){return k.isStale(new Request($(e)),t)}function _e(e,t){return [e,{status:t.status,statusText:t.statusText,headers:Array.from(t.headers.entries())}]}function oe([e,t]){return [e,new Response(e,t)]}var ae=e=>!e?.errors,V=new Set;async function F(e,t,{strategy:n=y(),cacheInstance:r,shouldCacheResult:o=()=>!0,waitUntil:a}){if(!r||!n)return t();let s=Z([...typeof e=="string"?[e]:e]),i=await re(r,s);if(i){let[l,p]=i;if(!V.has(s)&&ne(s,p)){V.add(s);let f=Promise.resolve().then(async()=>{try{let g=await t();o(g)&&await D(r,s,g,n);}catch(g){g.message&&(g.message="SWR in sub-request failed: "+g.message),console.error(g);}finally{V.delete(s);}});a?.(f);}return l}let c=await t();if(o(c)){let l=D(r,s,c,n);a?.(l);}return c}async function se(e,t,{cacheInstance:n,cache:r,cacheKey:o=[e,t],shouldCacheResponse:a=()=>!0,waitUntil:s,returnType:i="json"}={}){return !r&&(!t.method||t.method==="GET")&&(r=y()),F(o,async()=>{let c=await fetch(e,t),l;try{l=await c[i]();}catch{l=await c.text();}return _e(l,c)},{cacheInstance:n,waitUntil:s,strategy:r??null,shouldCacheResult:c=>a(...oe(c))}).then(oe)}var ie="Custom-Storefront-Request-Group-ID";function ce(){return typeof crypto<"u"&&!!crypto.randomUUID?crypto.randomUUID():`weak-${Math.random().toString(16).substring(2)}`}var le=new Set,Q=e=>{le.has(e)||(console.warn(e),le.add(e));};var W="2023.4.3";var de=class extends Error{},We=e=>e instanceof de,Be=/(^|}\s)query[\s({]/im,Ke=/(^|}\s)mutation[\s({]/im;function ge(e){return e.replace(/\s*#.*$/gm,"").replace(/\s+/gm," ").trim()}var Je={language:"EN",country:"US"};function Wt(e){let{storefrontHeaders:t,cache:n,waitUntil:r,buyerIp:o,i18n:a,requestGroupId:s,storefrontId:i,...c}=e;n||Q("Storefront API client created without a cache instance. This may slow down your sub-requests.");let{getPublicTokenHeaders:l,getPrivateTokenHeaders:p,getStorefrontApiUrl:f,getShopifyDomain:g}=hydrogenReact.createStorefrontClient(c),h=(c.privateStorefrontToken?p:l)({contentType:"json",buyerIp:t?.buyerIp||o});if(h[ie]=t?.requestGroupId||s||ce(),i&&(h[hydrogenReact.SHOPIFY_STOREFRONT_ID_HEADER]=i),(h["user-agent"]=`Hydrogen ${W}`),t&&t.cookie){let u=hydrogenReact.getShopifyCookies(t.cookie??"");u[hydrogenReact.SHOPIFY_Y]&&(h[hydrogenReact.SHOPIFY_STOREFRONT_Y_HEADER]=u[hydrogenReact.SHOPIFY_Y]),u[hydrogenReact.SHOPIFY_S]&&(h[hydrogenReact.SHOPIFY_STOREFRONT_S_HEADER]=u[hydrogenReact.SHOPIFY_S]);}t||Q('"requestGroupId" and "buyerIp" will be deprecated in the next calendar release. Please use "getStorefrontHeaders"');async function m({query:u,mutation:T,variables:L,cache:we,headers:x=[],storefrontApiVersion:Pe}){let Re=x instanceof Headers?Object.fromEntries(x.entries()):Array.isArray(x)?Object.fromEntries(x):x;u=u??T;let v={...L};a&&(!L?.country&&/\$country/.test(u)&&(v.country=a.country),!L?.language&&/\$language/.test(u)&&(v.language=a.language));let Ie=f({storefrontApiVersion:Pe}),ke={method:"POST",headers:{...h,...Re},body:JSON.stringify({query:u,variables:v})},[M,q]=await se(Ie,ke,{cacheInstance:T?void 0:n,cache:we||y(),shouldCacheResponse:ae,waitUntil:r});if(!q.ok){let N;try{N=R(M);}catch{N=[{message:M}];}fe(q,N);}let{data:Ee,errors:X}=M;return X?.length&&fe(q,X,de),Ee}return {storefront:{query:(u,T)=>{if(u=ge(u),Ke.test(u))throw new Error("storefront.query cannot execute mutations");return m({...T,query:u})},mutate:(u,T)=>{if(u=ge(u),Be.test(u))throw new Error("storefront.mutate cannot execute queries");return m({...T,mutation:u})},cache:n,CacheNone:H,CacheLong:j,CacheShort:y,CacheCustom:G,generateCacheControlHeader:w,getPublicTokenHeaders:l,getPrivateTokenHeaders:p,getShopifyDomain:g,getApiUrl:f,isApiError:We,i18n:a??Je}}}function fe(e,t,n=Error){let r=e.headers.get("x-request-id"),o=r?` - Request ID: ${r}`:"";if(t){let a=typeof t=="string"?t:t.map(s=>s.message).join(`
9
- `);throw new n(a+o)}throw new n(`API response error: ${e.status}`+o)}function zt(e){let{cache:t,waitUntil:n}=e;return function(o,a,s){return F(o,s,{strategy:a,cacheInstance:t,waitUntil:n})}}var B=class{#e;constructor(){this.#e=new Map;}add(t){throw new Error("Method not implemented. Use `put` instead.")}addAll(t){throw new Error("Method not implemented. Use `put` instead.")}matchAll(t,n){throw new Error("Method not implemented. Use `match` instead.")}async put(t,n){if(t.method!=="GET")throw new TypeError("Cannot cache response to non-GET request.");if(n.status===206)throw new TypeError("Cannot cache response to a range request (206 Partial Content).");if(n.headers.get("vary")?.includes("*"))throw new TypeError("Cannot cache response with 'Vary: *' header.");this.#e.set(t.url,{body:new Uint8Array(await n.arrayBuffer()),status:n.status,headers:[...n.headers],timestamp:Date.now()});}async match(t){if(t.method!=="GET")return;let n=this.#e.get(t.url);if(!n)return;let{body:r,timestamp:o,...a}=n,s=new Headers(a.headers),i=s.get("cache-control")||s.get("real-cache-control")||"",c=parseInt(i.match(/max-age=(\d+)/)?.[1]||"0",10),l=parseInt(i.match(/stale-while-revalidate=(\d+)/)?.[1]||"0",10),p=(Date.now()-o)/1e3;if(p>c+l){this.#e.delete(t.url);return}let g=p>c;return s.set("cache",g?"STALE":"HIT"),s.set("date",new Date(o).toUTCString()),new Response(r,{status:a.status??200,headers:s})}async delete(t){return this.#e.has(t.url)?(this.#e.delete(t.url),!0):!1}keys(t){let n=[];for(let r of this.#e.keys())(!t||t.url===r)&&n.push(new Request(r));return Promise.resolve(n)}};async function Ye(e){let{storefront:t,request:n,response:r=new Response("Not Found",{status:404})}=e,{pathname:o,search:a}=new URL(n.url),s=o+a;try{let{urlRedirects:i}=await t.query(Ze,{variables:{query:"path:"+s}}),c=i?.edges?.[0]?.node?.target;if(c)return new Response(null,{status:302,headers:{location:c}});let l=new URLSearchParams(a),p=l.get("return_to")||l.get("redirect");if(p){if(Xe(p))return serverRuntime.redirect(p);console.warn(`Cross-domain redirects are not supported. Tried to redirect from ${s} to ${p}`);}}catch(i){console.error(`Failed to fetch redirects from Storefront API for route ${s}`,i);}return r}function Xe(e){try{new URL(e);}catch{return !0}return !1}var Ze=`#graphql
8
+ var Le=Object.defineProperty;var ve=(e,t)=>()=>(e&&(t=e(e=0)),t);var Me=(e,t)=>{for(var n in t)Le(e,n,{get:t[n],enumerable:!0});};var be={};Me(be,{default:()=>Se,logSeoTags:()=>Ce});function Se({headTags:e}){return Ce(e),null}function Ce(e){console.log(" "),console.log("%cSEO Meta Tags",`${nt}`),console.log(" "),e.forEach(t=>{if(t.tag==="script"){if(console.log("%c\u2022 JSON LD ",Y),t.children)try{console.table(JSON.parse(t.children),["name","content"]);}catch{console.log(t.children);}}else {if(console.log(`%c\u2022 ${t.tag} `,Y),t.children)if(typeof t.children=="string")console.log(`\u21B3 ${t.children}`);else try{Object.entries(JSON.parse(t.children)).map(([n,r])=>console.log(`\u21B3 ${r}`));}catch{console.log(t.children);}if(t.props.property==="og:image:url"){let n=t.props.content;ot(n).then(r=>{let o=`font-size: 400px; padding: 10px; background: white url(${r}) no-repeat center; background-size: contain;`;console.log("%c\u2022 Share image preview",Y),console.log("%c ",o),console.log(`\u21B3 ${n}`);}).catch(r=>{console.error(r);});}Object.entries(t.props).map(([n,r])=>{console.log(`\u21B3 ${n} \u2192 ${r}`);});}console.log(" ");});}async function ot(e){let r=await(await(await fetch(e)).blob()).arrayBuffer();return `data:image/png;base64,${at(r)}`}function at(e){let t="",n=new Uint8Array(e),r=n.byteLength;for(let o=0;o<r;o++)t+=String.fromCharCode(n[o]);return btoa(t)}var Y,nt,Te=ve(()=>{Y="text-transform: uppercase;",nt="text-transform: uppercase; font-weight: bold; text-transform: uppercase;font-weight: bold";});function ee(e){let t=Array.isArray(e)?e:[e],n="";for(let r of t)r!=null&&(typeof r=="object"?!!r.body&&typeof r.body=="string"?n+=r.body:n+=JSON.stringify(r):n+=r);return n}var U="public",qe="private",H="no-store",te={maxAge:"max-age",staleWhileRevalidate:"stale-while-revalidate",sMaxAge:"s-maxage",staleIfError:"stale-if-error"};function w(e){let t=[];return Object.keys(e).forEach(n=>{n==="mode"?t.push(e[n]):te[n]&&t.push(`${te[n]}=${e[n]}`);}),t.join(", ")}function j(){return {mode:H}}function re(e){if(e?.mode&&e?.mode!==U&&e?.mode!==qe)throw Error("'mode' must be either 'public' or 'private'")}function y(e){return re(e),{mode:U,maxAge:1,staleWhileRevalidate:9,...e}}function G(e){return re(e),{mode:U,maxAge:3600,staleWhileRevalidate:82800,...e}}function _(e){return e}function P(e){return String(e).includes("__proto__")?JSON.parse(e,Ne):JSON.parse(e)}function Ne(e,t){if(e!=="__proto__")return t}function I(e,t){return e&&t?{...e,...t}:e||y()}function $(e){return w(I(e))}async function Ue(e,t){if(!e)return;let n=await e.match(t);if(!n){t.url;return}return t.url,n}async function He(e,t,n,r){if(!e)return;let o=I(r);t.headers.set("cache-control",$(I(o,{maxAge:(o.maxAge||0)+(o.staleWhileRevalidate||0)})));let a=$(I(o));n.headers.set("cache-control",a),n.headers.set("real-cache-control",a),n.headers.set("cache-put-date",new Date().toUTCString()),t.url,await e.put(t,n);}async function je(e,t){!e||(t.url,await e.delete(t));}function Ge(e,t){let n=t.headers.get("cache-put-date"),r=t.headers.get("real-cache-control"),o=0;if(r){let c=r.match(/max-age=(\d*)/);c&&c.length>1&&(o=parseFloat(c[1]));}if(!n)return !1;let i=(new Date().valueOf()-new Date(n).valueOf())/1e3>o;return i&&(e.url,void 0),i}var k={get:Ue,set:He,delete:je,generateDefaultCacheControlHeader:$,isStale:Ge};function D(e){return `https://shopify.dev/?${e}`}function _e(e){return e||y()}async function ne(e,t){if(!e)return;let n=D(t),r=new Request(n),o=await k.get(e,r);if(!o)return;let a=await o.text();try{return [P(a),o]}catch{return [a,o]}}async function V(e,t,n,r){if(!e)return;let o=D(t),a=new Request(o),s=new Response(JSON.stringify(n));await k.set(e,a,s,_e(r));}function oe(e,t){return k.isStale(new Request(D(e)),t)}function $e(e,t){return [e,{status:t.status,statusText:t.statusText,headers:Array.from(t.headers.entries())}]}function ae([e,t]){return [e,new Response(e,t)]}var se=e=>!e?.errors,F=new Set;async function Q(e,t,{strategy:n=y(),cacheInstance:r,shouldCacheResult:o=()=>!0,waitUntil:a}){if(!r||!n||n.mode===H)return t();let s=ee([...typeof e=="string"?[e]:e]),i=await ne(r,s);if(i){let[l,p]=i;if(!F.has(s)&&oe(s,p)){F.add(s);let u=Promise.resolve().then(async()=>{try{let g=await t();o(g)&&await V(r,s,g,n);}catch(g){g.message&&(g.message="SWR in sub-request failed: "+g.message),console.error(g);}finally{F.delete(s);}});a?.(u);}return l}let c=await t();if(o(c)){let l=V(r,s,c,n);a?.(l);}return c}async function ie(e,t,{cacheInstance:n,cache:r,cacheKey:o=[e,t],shouldCacheResponse:a=()=>!0,waitUntil:s,returnType:i="json"}={}){return !r&&(!t.method||t.method==="GET")&&(r=y()),Q(o,async()=>{let c=await fetch(e,t),l;try{l=await c[i]();}catch{l=await c.text();}return $e(l,c)},{cacheInstance:n,waitUntil:s,strategy:r??null,shouldCacheResult:c=>a(...ae(c))}).then(ae)}var ce="Custom-Storefront-Request-Group-ID";function le(){return typeof crypto<"u"&&!!crypto.randomUUID?crypto.randomUUID():`weak-${Math.random().toString(16).substring(2)}`}var pe=new Set,W=e=>{pe.has(e)||(console.warn(e),pe.add(e));};var B="2023.4.4";var he=class extends Error{},Be=e=>e instanceof he,Ke=/(^|}\s)query[\s({]/im,Je=/(^|}\s)mutation[\s({]/im;function ge(e){return e.replace(/\s*#.*$/gm,"").replace(/\s+/gm," ").trim()}var ze={language:"EN",country:"US"};function Wt(e){let{storefrontHeaders:t,cache:n,waitUntil:r,buyerIp:o,i18n:a,requestGroupId:s,storefrontId:i,...c}=e;n||W("Storefront API client created without a cache instance. This may slow down your sub-requests.");let{getPublicTokenHeaders:l,getPrivateTokenHeaders:p,getStorefrontApiUrl:u,getShopifyDomain:g}=hydrogenReact.createStorefrontClient(c),h=(c.privateStorefrontToken?p:l)({contentType:"json",buyerIp:t?.buyerIp||o});if(h[ce]=t?.requestGroupId||s||le(),i&&(h[hydrogenReact.SHOPIFY_STOREFRONT_ID_HEADER]=i),(h["user-agent"]=`Hydrogen ${B}`),t&&t.cookie){let f=hydrogenReact.getShopifyCookies(t.cookie??"");f[hydrogenReact.SHOPIFY_Y]&&(h[hydrogenReact.SHOPIFY_STOREFRONT_Y_HEADER]=f[hydrogenReact.SHOPIFY_Y]),f[hydrogenReact.SHOPIFY_S]&&(h[hydrogenReact.SHOPIFY_STOREFRONT_S_HEADER]=f[hydrogenReact.SHOPIFY_S]);}t||W('"requestGroupId" and "buyerIp" will be deprecated in the next calendar release. Please use "getStorefrontHeaders"');async function m({query:f,mutation:T,variables:L,cache:Pe,headers:x=[],storefrontApiVersion:Ie}){let ke=x instanceof Headers?Object.fromEntries(x.entries()):Array.isArray(x)?Object.fromEntries(x):x;f=f??T;let v={...L};a&&(!L?.country&&/\$country/.test(f)&&(v.country=a.country),!L?.language&&/\$language/.test(f)&&(v.language=a.language));let Oe=u({storefrontApiVersion:Ie}),Ee={method:"POST",headers:{...h,...ke},body:JSON.stringify({query:f,variables:v})},[M,q]=await ie(Oe,Ee,{cacheInstance:T?void 0:n,cache:Pe||y(),shouldCacheResponse:se,waitUntil:r});if(!q.ok){let N;try{N=P(M);}catch{N=[{message:M}];}de(q,N);}let{data:Ae,errors:Z}=M;return Z?.length&&de(q,Z,he),Ae}return {storefront:{query:(f,T)=>{if(f=ge(f),Je.test(f))throw new Error("storefront.query cannot execute mutations");return m({...T,query:f})},mutate:(f,T)=>{if(f=ge(f),Ke.test(f))throw new Error("storefront.mutate cannot execute queries");return m({...T,mutation:f})},cache:n,CacheNone:j,CacheLong:G,CacheShort:y,CacheCustom:_,generateCacheControlHeader:w,getPublicTokenHeaders:l,getPrivateTokenHeaders:p,getShopifyDomain:g,getApiUrl:u,isApiError:Be,i18n:a??ze}}}function de(e,t,n=Error){let r=e.headers.get("x-request-id"),o=r?` - Request ID: ${r}`:"";if(t){let a=typeof t=="string"?t:t.map(s=>s.message).join(`
9
+ `);throw new n(a+o)}throw new n(`API response error: ${e.status}`+o)}function zt(e){let{cache:t,waitUntil:n}=e;return function(o,a,s){return Q(o,s,{strategy:a,cacheInstance:t,waitUntil:n})}}var K=class{#e;constructor(){this.#e=new Map;}add(t){throw new Error("Method not implemented. Use `put` instead.")}addAll(t){throw new Error("Method not implemented. Use `put` instead.")}matchAll(t,n){throw new Error("Method not implemented. Use `match` instead.")}async put(t,n){if(t.method!=="GET")throw new TypeError("Cannot cache response to non-GET request.");if(n.status===206)throw new TypeError("Cannot cache response to a range request (206 Partial Content).");if(n.headers.get("vary")?.includes("*"))throw new TypeError("Cannot cache response with 'Vary: *' header.");this.#e.set(t.url,{body:new Uint8Array(await n.arrayBuffer()),status:n.status,headers:[...n.headers],timestamp:Date.now()});}async match(t){if(t.method!=="GET")return;let n=this.#e.get(t.url);if(!n)return;let{body:r,timestamp:o,...a}=n,s=new Headers(a.headers),i=s.get("cache-control")||s.get("real-cache-control")||"",c=parseInt(i.match(/max-age=(\d+)/)?.[1]||"0",10),l=parseInt(i.match(/stale-while-revalidate=(\d+)/)?.[1]||"0",10),p=(Date.now()-o)/1e3;if(p>c+l){this.#e.delete(t.url);return}let g=p>c;return s.set("cache",g?"STALE":"HIT"),s.set("date",new Date(o).toUTCString()),new Response(r,{status:a.status??200,headers:s})}async delete(t){return this.#e.has(t.url)?(this.#e.delete(t.url),!0):!1}keys(t){let n=[];for(let r of this.#e.keys())(!t||t.url===r)&&n.push(new Request(r));return Promise.resolve(n)}};async function Ye(e){let{storefront:t,request:n,noAdminRedirect:r,response:o=new Response("Not Found",{status:404})}=e,{pathname:a,search:s}=new URL(n.url),i=a+s;if(a==="/admin"&&!r)return serverRuntime.redirect(`${t.getShopifyDomain()}/admin`);try{let{urlRedirects:c}=await t.query(Ze,{variables:{query:"path:"+i}}),l=c?.edges?.[0]?.node?.target;if(l)return new Response(null,{status:301,headers:{location:l}});let p=new URLSearchParams(s),u=p.get("return_to")||p.get("redirect");if(u){if(Xe(u))return serverRuntime.redirect(u);console.warn(`Cross-domain redirects are not supported. Tried to redirect from ${i} to ${u}`);}}catch(c){console.error(`Failed to fetch redirects from Storefront API for route ${i}`,c);}return o}function Xe(e){try{new URL(e);}catch{return !0}return !1}var Ze=`#graphql
10
10
  query redirects($query: String) {
11
11
  urlRedirects(first: 1, query: $query) {
12
12
  edges {
@@ -70,7 +70,7 @@ var Oe=Object.defineProperty;var Ae=(e,t)=>()=>(e&&(t=e(e=0)),t);var Le=(e,t)=>{
70
70
  <\/script>
71
71
  </body>
72
72
  </html>
73
- `,{status:200,headers:{"content-type":"text/html"}})};var S="Error in SEO input: ",E={title:{validate:e=>{if(typeof e!="string")throw new Error(S.concat("`title` should be a string"));if(typeof e=="string"&&e.length>120)throw new Error(S.concat("`title` should not be longer than 120 characters"));return e}},description:{validate:e=>{if(typeof e!="string")throw new Error(S.concat("`description` should be a string"));if(typeof e=="string"&&e.length>155)throw new Error(S.concat("`description` should not be longer than 155 characters"));return e}},url:{validate:e=>{if(typeof e!="string")throw new Error(S.concat("`url` should be a string"));if(typeof e=="string"&&!e.startsWith("http"))throw new Error(S.concat("`url` should be a valid URL"));return e}},handle:{validate:e=>{if(typeof e!="string")throw new Error(S.concat("`handle` should be a string"));if(typeof e=="string"&&!e.startsWith("@"))throw new Error(S.concat("`handle` should start with `@`"));return e}}};function he(e){let t=[];for(let n of Object.keys(e))switch(n){case"title":{let r=O(E.title,e.title),o=tt(e?.titleTemplate,r);if(!o)break;t.push(d("title",{title:o}),d("meta",{property:"og:title",content:o}),d("meta",{name:"twitter:title",content:o}));break}case"description":{let r=O(E.description,e.description);if(!r)break;t.push(d("meta",{name:"description",content:r}),d("meta",{property:"og:description",content:r}),d("meta",{name:"twitter:description",content:r}));break}case"url":{let r=O(E.url,e.url);if(!r)break;t.push(d("link",{rel:"canonical",href:r}),d("meta",{property:"og:url",content:r}));break}case"handle":{let r=O(E.handle,e.handle);if(!r)break;t.push(d("meta",{name:"twitter:site",content:r}),d("meta",{name:"twitter:creator",content:r}));break}case"media":{let r,o=J(e.media);for(let a of o)if(typeof a=="string"&&t.push(d("meta",{name:"og:image",content:a})),a&&typeof a=="object"){let s=a.type||"image",i=a?{url:a?.url,secure_url:a?.url,type:rt(a.url),width:a?.width,height:a?.height,alt:a?.altText}:{};for(let c of Object.keys(i))i[c]&&(r=i[c],t.push(d("meta",{property:`og:${s}:${c}`,content:r},i.url)));}break}case"jsonLd":{let r=J(e.jsonLd),o=0;for(let a of r){if(typeof a!="object")continue;let s=d("script",{type:"application/ld+json",children:JSON.stringify(a)},`json-ld-${a?.["@type"]||a?.name||o++}`);t.push(s);}break}case"alternates":{let r=J(e.alternates);for(let o of r){if(!o)continue;let{language:a,url:s,default:i}=o,c=a?`${a}${i?"-default":""}`:void 0;t.push(d("link",{rel:"alternate",hrefLang:c,href:s}));}break}case"robots":{if(!e.robots)break;let{maxImagePreview:r,maxSnippet:o,maxVideoPreview:a,noArchive:s,noFollow:i,noImageIndex:c,noIndex:l,noSnippet:p,noTranslate:f,unavailableAfter:g}=e.robots,b=[s&&"noarchive",c&&"noimageindex",p&&"nosnippet",f&&"notranslate",r&&`max-image-preview:${r}`,o&&`max-snippet:${o}`,a&&`max-video-preview:${a}`,g&&`unavailable_after:${g}`],h=(l?"noindex":"index")+","+(i?"nofollow":"follow");for(let m of b)m&&(h+=`,${m}`);t.push(d("meta",{name:"robots",content:h}));break}}return t.flat().sort((n,r)=>n.key.localeCompare(r.key))}function d(e,t,n){let r={tag:e,props:{},key:""};return e==="title"?(r.children=t.title,r.key=K(r),r):e==="script"?(r.children=typeof t.children=="string"?t.children:"",r.key=K(r,n),delete t.children,r.props=t,r):(r.props=t,Object.keys(r.props).forEach(o=>!r.props[o]&&delete r.props[o]),r.key=K(r,n),r)}function K(e,t){let{tag:n,props:r}=e;if(n==="title")return "0-title";if(n==="meta"){let o=r.content===t&&typeof r.property=="string"&&!r.property.endsWith("secure_url")&&"0";return [n,...[t,o],r.property||r.name].filter(s=>s).join("-")}return n==="link"?[n,r.rel,r.hrefLang||r.media].filter(a=>a).join("-").replace(/\s+/g,"-"):n==="script"?`${n}-${t}`:`${n}-${r.type}`}function tt(e,t){if(!!t)return e?typeof e=="function"?e(t):e.replace("%s",t??""):t}function rt(e){switch(e&&e.split(".").pop()){case"svg":return "image/svg+xml";case"png":return "image/png";case"gif":return "image/gif";case"swf":return "application/x-shockwave-flash";case"mp3":return "audio/mpeg";case"jpg":case"jpeg":default:return "image/jpeg"}}function J(e){return Array.isArray(e)?e:[e]}function O(e,t){try{return e.validate(t)}catch(n){return console.warn(n.message),t}}var ut=react.lazy(()=>Promise.resolve().then(()=>(Ce(),Se)));function gt({debug:e}){let t=react$1.useMatches(),n=react$1.useLocation(),r=react.useMemo(()=>t.flatMap(s=>{let{handle:i,...c}=s,l={...c,...n},p=i?.seo,f=c?.data?.seo;return !p&&!f?[]:p?A(i.seo,l):[f]}).reduce((s,i)=>{Object.keys(i).forEach(l=>!i[l]&&delete i[l]);let{jsonLd:c}=i;return c?s?.jsonLd?Array.isArray(c)?{...s,...i,jsonLd:[...s.jsonLd,...c]}:{...s,...i,jsonLd:[...s.jsonLd,c]}:{...s,...i,jsonLd:[c]}:{...s,...i}},{}),[t,n]),{html:o,loggerMarkup:a}=react.useMemo(()=>{let s=he(r),i=s.map(l=>l.tag==="script"?react.createElement(l.tag,{...l.props,key:l.key,dangerouslySetInnerHTML:{__html:l.children}}):react.createElement(l.tag,{...l.props,key:l.key},l.children)),c=react.createElement(react.Suspense,{fallback:null},react.createElement(ut,{headTags:s}));return {html:i,loggerMarkup:c}},[r]);return react.createElement(react.Fragment,null,o,e&&a)}function A(e,...t){if(e instanceof Function)return A(e(...t),...t);let n={};return Array.isArray(e)?(n=e.reduce((r,o)=>[...r,A(o)],[]),n):e instanceof Object?(Object.entries(e).forEach(([o,a])=>{n[o]=A(a,...t);}),n):e}function ht({connection:e,children:t=()=>(console.warn("<Pagination> requires children to work properly"),null)}){let r=react$1.useNavigation().state==="loading",{endCursor:o,hasNextPage:a,hasPreviousPage:s,nextPageUrl:i,nodes:c,previousPageUrl:l,startCursor:p}=yt(e),f=react.useMemo(()=>({pageInfo:{endCursor:o,hasPreviousPage:s,startCursor:p},nodes:c}),[o,s,p,c]),g=react.useMemo(()=>function(m){return a?react.createElement(react$1.Link,{preventScrollReset:!0,...m,to:i,state:f,replace:!0}):null},[a,i]),b=react.useMemo(()=>function(m){return s?react.createElement(react$1.Link,{preventScrollReset:!0,...m,to:l,state:f,replace:!0}):null},[s,l]);return t({state:f,hasNextPage:a,hasPreviousPage:s,isLoading:r,nextPageUrl:i,nodes:c,previousPageUrl:l,NextLink:g,PreviousLink:b})}function yt(e){let{state:t,search:n}=react$1.useLocation(),a=new URLSearchParams(n).get("direction")==="previous",s=react.useMemo(()=>!t||!t?.nodes?hydrogenReact.flattenConnection(e):a?[...hydrogenReact.flattenConnection(e),...t.nodes]:[...t.nodes,...hydrogenReact.flattenConnection(e)],[t,e]),i=react.useMemo(()=>{let p=t?.pageInfo?.startCursor===void 0?e.pageInfo.startCursor:t.pageInfo.startCursor,f=t?.pageInfo?.endCursor===void 0?e.pageInfo.endCursor:t.pageInfo.endCursor;t?.nodes&&(a?p=e.pageInfo.startCursor:f=e.pageInfo.endCursor);let g=t?.pageInfo?.hasPreviousPage===void 0?e.pageInfo.hasPreviousPage:t.pageInfo.hasPreviousPage,b=t?.pageInfo?.hasNextPage===void 0?e.pageInfo.hasNextPage:t.pageInfo.hasNextPage;return {startCursor:p,endCursor:f,hasPreviousPage:g,hasNextPage:b}},[a,t,e.pageInfo.hasNextPage,e.pageInfo.hasPreviousPage,e.pageInfo.startCursor,e.pageInfo.endCursor]),c=react.useMemo(()=>{let p=new URLSearchParams(n);return p.set("direction","previous"),i.startCursor&&p.set("cursor",i.startCursor),`?${p.toString()}`},[n,i.startCursor]),l=react.useMemo(()=>{let p=new URLSearchParams(n);return p.set("direction","next"),i.endCursor&&p.set("cursor",i.endCursor),`?${p.toString()}`},[n,i.endCursor]);return {...i,previousPageUrl:c,nextPageUrl:l,nodes:s}}function mt(e,t={pageBy:20}){if(!(e instanceof Request))throw new Error("getPaginationVariables must be called with the Request object passed to your loader function");let{pageBy:n}=t,r=new URLSearchParams(new URL(e.url).search),o=r.get("cursor")??void 0;return (r.get("direction")==="previous"?"previous":"next")==="previous"?{last:n,startCursor:o??null}:{first:n,endCursor:o??null}}
73
+ `,{status:200,headers:{"content-type":"text/html"}})};var S="Error in SEO input: ",O={title:{validate:e=>{if(typeof e!="string")throw new Error(S.concat("`title` should be a string"));if(typeof e=="string"&&e.length>120)throw new Error(S.concat("`title` should not be longer than 120 characters"));return e}},description:{validate:e=>{if(typeof e!="string")throw new Error(S.concat("`description` should be a string"));if(typeof e=="string"&&e.length>155)throw new Error(S.concat("`description` should not be longer than 155 characters"));return e}},url:{validate:e=>{if(typeof e!="string")throw new Error(S.concat("`url` should be a string"));if(typeof e=="string"&&!e.startsWith("http"))throw new Error(S.concat("`url` should be a valid URL"));return e}},handle:{validate:e=>{if(typeof e!="string")throw new Error(S.concat("`handle` should be a string"));if(typeof e=="string"&&!e.startsWith("@"))throw new Error(S.concat("`handle` should start with `@`"));return e}}};function me(e){let t=[];for(let n of Object.keys(e))switch(n){case"title":{let r=E(O.title,e.title),o=tt(e?.titleTemplate,r);if(!o)break;t.push(d("title",{title:o}),d("meta",{property:"og:title",content:o}),d("meta",{name:"twitter:title",content:o}));break}case"description":{let r=E(O.description,e.description);if(!r)break;t.push(d("meta",{name:"description",content:r}),d("meta",{property:"og:description",content:r}),d("meta",{name:"twitter:description",content:r}));break}case"url":{let r=E(O.url,e.url);if(!r)break;t.push(d("link",{rel:"canonical",href:r}),d("meta",{property:"og:url",content:r}));break}case"handle":{let r=E(O.handle,e.handle);if(!r)break;t.push(d("meta",{name:"twitter:site",content:r}),d("meta",{name:"twitter:creator",content:r}));break}case"media":{let r,o=z(e.media);for(let a of o)if(typeof a=="string"&&t.push(d("meta",{name:"og:image",content:a})),a&&typeof a=="object"){let s=a.type||"image",i=a?{url:a?.url,secure_url:a?.url,type:rt(a.url),width:a?.width,height:a?.height,alt:a?.altText}:{};for(let c of Object.keys(i))i[c]&&(r=i[c],t.push(d("meta",{property:`og:${s}:${c}`,content:r},i.url)));}break}case"jsonLd":{let r=z(e.jsonLd),o=0;for(let a of r){if(typeof a!="object")continue;let s=d("script",{type:"application/ld+json",children:JSON.stringify(a)},`json-ld-${a?.["@type"]||a?.name||o++}`);t.push(s);}break}case"alternates":{let r=z(e.alternates);for(let o of r){if(!o)continue;let{language:a,url:s,default:i}=o,c=a?`${a}${i?"-default":""}`:void 0;t.push(d("link",{rel:"alternate",hrefLang:c,href:s}));}break}case"robots":{if(!e.robots)break;let{maxImagePreview:r,maxSnippet:o,maxVideoPreview:a,noArchive:s,noFollow:i,noImageIndex:c,noIndex:l,noSnippet:p,noTranslate:u,unavailableAfter:g}=e.robots,b=[s&&"noarchive",c&&"noimageindex",p&&"nosnippet",u&&"notranslate",r&&`max-image-preview:${r}`,o&&`max-snippet:${o}`,a&&`max-video-preview:${a}`,g&&`unavailable_after:${g}`],h=(l?"noindex":"index")+","+(i?"nofollow":"follow");for(let m of b)m&&(h+=`,${m}`);t.push(d("meta",{name:"robots",content:h}));break}}return t.flat().sort((n,r)=>n.key.localeCompare(r.key))}function d(e,t,n){let r={tag:e,props:{},key:""};return e==="title"?(r.children=t.title,r.key=J(r),r):e==="script"?(r.children=typeof t.children=="string"?t.children:"",r.key=J(r,n),delete t.children,r.props=t,r):(r.props=t,Object.keys(r.props).forEach(o=>!r.props[o]&&delete r.props[o]),r.key=J(r,n),r)}function J(e,t){let{tag:n,props:r}=e;if(n==="title")return "0-title";if(n==="meta"){let o=r.content===t&&typeof r.property=="string"&&!r.property.endsWith("secure_url")&&"0";return [n,...[t,o],r.property||r.name].filter(s=>s).join("-")}return n==="link"?[n,r.rel,r.hrefLang||r.media].filter(a=>a).join("-").replace(/\s+/g,"-"):n==="script"?`${n}-${t}`:`${n}-${r.type}`}function tt(e,t){if(!!t)return e?typeof e=="function"?e(t):e.replace("%s",t??""):t}function rt(e){switch(e&&e.split(".").pop()){case"svg":return "image/svg+xml";case"png":return "image/png";case"gif":return "image/gif";case"swf":return "application/x-shockwave-flash";case"mp3":return "audio/mpeg";case"jpg":case"jpeg":default:return "image/jpeg"}}function z(e){return Array.isArray(e)?e:[e]}function E(e,t){try{return e.validate(t)}catch(n){return console.warn(n.message),t}}var ut=react.lazy(()=>Promise.resolve().then(()=>(Te(),be)));function ft({debug:e}){let t=react$1.useMatches(),n=react$1.useLocation(),r=react.useMemo(()=>t.flatMap(s=>{let{handle:i,...c}=s,l={...c,...n},p=i?.seo,u=c?.data?.seo;return !p&&!u?[]:p?A(i.seo,l):[u]}).reduce((s,i)=>{Object.keys(i).forEach(l=>!i[l]&&delete i[l]);let{jsonLd:c}=i;return c?s?.jsonLd?Array.isArray(c)?{...s,...i,jsonLd:[...s.jsonLd,...c]}:{...s,...i,jsonLd:[...s.jsonLd,c]}:{...s,...i,jsonLd:[c]}:{...s,...i}},{}),[t,n]),{html:o,loggerMarkup:a}=react.useMemo(()=>{let s=me(r),i=s.map(l=>l.tag==="script"?react.createElement(l.tag,{...l.props,key:l.key,dangerouslySetInnerHTML:{__html:l.children}}):react.createElement(l.tag,{...l.props,key:l.key},l.children)),c=react.createElement(react.Suspense,{fallback:null},react.createElement(ut,{headTags:s}));return {html:i,loggerMarkup:c}},[r]);return react.createElement(react.Fragment,null,o,e&&a)}function A(e,...t){if(e instanceof Function)return A(e(...t),...t);let n={};return Array.isArray(e)?(n=e.reduce((r,o)=>[...r,A(o)],[]),n):e instanceof Object?(Object.entries(e).forEach(([o,a])=>{n[o]=A(a,...t);}),n):e}function ht({connection:e,children:t=()=>(console.warn("<Pagination> requires children to work properly"),null)}){let r=react$1.useNavigation().state==="loading",{endCursor:o,hasNextPage:a,hasPreviousPage:s,nextPageUrl:i,nodes:c,previousPageUrl:l,startCursor:p}=yt(e),u=react.useMemo(()=>({pageInfo:{endCursor:o,hasPreviousPage:s,startCursor:p},nodes:c}),[o,s,p,c]),g=react.useMemo(()=>function(m){return a?react.createElement(react$1.Link,{preventScrollReset:!0,...m,to:i,state:u,replace:!0}):null},[a,i]),b=react.useMemo(()=>function(m){return s?react.createElement(react$1.Link,{preventScrollReset:!0,...m,to:l,state:u,replace:!0}):null},[s,l]);return t({state:u,hasNextPage:a,hasPreviousPage:s,isLoading:r,nextPageUrl:i,nodes:c,previousPageUrl:l,NextLink:g,PreviousLink:b})}function yt(e){let{state:t,search:n}=react$1.useLocation(),a=new URLSearchParams(n).get("direction")==="previous",s=react.useMemo(()=>!t||!t?.nodes?hydrogenReact.flattenConnection(e):a?[...hydrogenReact.flattenConnection(e),...t.nodes]:[...t.nodes,...hydrogenReact.flattenConnection(e)],[t,e]),i=react.useMemo(()=>{let p=t?.pageInfo?.startCursor===void 0?e.pageInfo.startCursor:t.pageInfo.startCursor,u=t?.pageInfo?.endCursor===void 0?e.pageInfo.endCursor:t.pageInfo.endCursor;t?.nodes&&(a?p=e.pageInfo.startCursor:u=e.pageInfo.endCursor);let g=t?.pageInfo?.hasPreviousPage===void 0?e.pageInfo.hasPreviousPage:t.pageInfo.hasPreviousPage,b=t?.pageInfo?.hasNextPage===void 0?e.pageInfo.hasNextPage:t.pageInfo.hasNextPage;return {startCursor:p,endCursor:u,hasPreviousPage:g,hasNextPage:b}},[a,t,e.pageInfo.hasNextPage,e.pageInfo.hasPreviousPage,e.pageInfo.startCursor,e.pageInfo.endCursor]),c=react.useMemo(()=>{let p=new URLSearchParams(n);return p.set("direction","previous"),i.startCursor&&p.set("cursor",i.startCursor),`?${p.toString()}`},[n,i.startCursor]),l=react.useMemo(()=>{let p=new URLSearchParams(n);return p.set("direction","next"),i.endCursor&&p.set("cursor",i.endCursor),`?${p.toString()}`},[n,i.endCursor]);return {...i,previousPageUrl:c,nextPageUrl:l,nodes:s}}function mt(e,t={pageBy:20}){if(!(e instanceof Request))throw new Error("getPaginationVariables must be called with the Request object passed to your loader function");let{pageBy:n}=t,r=new URLSearchParams(new URL(e.url).search),o=r.get("cursor")??void 0;return (r.get("direction")==="previous"?"previous":"next")==="previous"?{last:n,startCursor:o??null}:{first:n,endCursor:o??null}}
74
74
 
75
75
  Object.defineProperty(exports, 'AnalyticsEventName', {
76
76
  enumerable: true,
@@ -152,19 +152,19 @@ Object.defineProperty(exports, 'useShopifyCookies', {
152
152
  enumerable: true,
153
153
  get: function () { return hydrogenReact.useShopifyCookies; }
154
154
  });
155
- exports.CacheCustom = G;
156
- exports.CacheLong = j;
157
- exports.CacheNone = H;
155
+ exports.CacheCustom = _;
156
+ exports.CacheLong = G;
157
+ exports.CacheNone = j;
158
158
  exports.CacheShort = y;
159
- exports.InMemoryCache = B;
159
+ exports.InMemoryCache = K;
160
160
  exports.Pagination__unstable = ht;
161
- exports.Seo = gt;
161
+ exports.Seo = ft;
162
162
  exports.createStorefrontClient = Wt;
163
163
  exports.createWithCache_unstable = zt;
164
164
  exports.generateCacheControlHeader = w;
165
165
  exports.getPaginationVariables__unstable = mt;
166
166
  exports.graphiqlLoader = et;
167
- exports.isStorefrontApiError = We;
167
+ exports.isStorefrontApiError = Be;
168
168
  exports.storefrontRedirect = Ye;
169
169
  //# sourceMappingURL=out.js.map
170
170
  //# sourceMappingURL=index.cjs.map