@shopify/hydrogen 2.0.0-alpha.2 → 2.0.0-alpha.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.
@@ -0,0 +1,5 @@
1
+ var t=Object.create;var s=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var m=(e,o)=>()=>(o||e((o={exports:{}}).exports,o),o.exports);var f=(e,o,n,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let c of a(o))!d.call(e,c)&&c!==n&&s(e,c,{get:()=>o[c],enumerable:!(l=i(o,c))||l.enumerable});return e};var u=(e,o,n)=>(n=e!=null?t(p(e)):{},f(o||!e||!e.__esModule?s(n,"default",{value:e,enumerable:!0}):n,e));function g({headTags:e}){return h(e),null}function h(e){let o="text-transform: uppercase;",n="text-transform: uppercase; font-weight: bold; text-transform: uppercase;font-weight: bold";console.log(" "),console.log("%cSEO Meta Tags",`${n}`),console.log(" "),e.forEach(l=>{if(l.tag==="script"){if(console.log("%c\u2022 JSON LD ",o),l.children)try{console.table(JSON.parse(l.children),["name","content"]);}catch{console.log(l.children);}}else {if(console.log(`%c\u2022 ${l.tag} `,o),l.children)if(typeof l.children=="string")console.log(`\u21B3 ${l.children}`);else try{Object.entries(JSON.parse(l.children)).map(([c,r])=>console.log(`\u21B3 ${r}`));}catch{console.log(l.children);}Object.entries(l.props).map(([c,r])=>console.log(`\u21B3 ${c} \u2192 ${r}`));}console.log(" ");});}
2
+
3
+ export { m as a, u as b, g as c, h as d };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=chunk-2226DACX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/seo/log-seo-tags.ts"],"names":["Logger","headTags","logSeoTags","style","style2","tag","key","val"],"mappings":"ygBAEe,SAARA,EAAwB,CAAC,SAAAC,CAAQ,EAA0B,CAChE,OAAAC,EAAWD,CAAQ,EAEZ,IACT,CAEO,SAASC,EAAWD,EAAqB,CAC9C,IAAME,EAAQ,6BACRC,EACJ,4FAEF,QAAQ,IAAI,GAAG,EACf,QAAQ,IAAI,kBAAmB,GAAGA,GAAQ,EAC1C,QAAQ,IAAI,GAAG,EAEfH,EAAS,QAASI,GAAQ,CACxB,GAAIA,EAAI,MAAQ,UAGd,GAFA,QAAQ,IAAI,oBAAgBF,CAAK,EAE7BE,EAAI,SACN,GAAI,CACF,QAAQ,MAAM,KAAK,MAAMA,EAAI,QAAQ,EAAG,CAAC,OAAQ,SAAS,CAAC,CAC7D,MAAE,CACA,QAAQ,IAAIA,EAAI,QAAQ,CAC1B,MAEG,CAGL,GAFA,QAAQ,IAAI,YAAOA,EAAI,OAAQF,CAAK,EAEhCE,EAAI,SACN,GAAI,OAAOA,EAAI,UAAa,SAC1B,QAAQ,IAAI,UAAKA,EAAI,UAAU,MAE/B,IAAI,CACF,OAAO,QAAQ,KAAK,MAAMA,EAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,CAACC,EAAKC,CAAG,IACrD,QAAQ,IAAI,UAAKA,GAAK,CACxB,CACF,MAAE,CACA,QAAQ,IAAIF,EAAI,QAAQ,CAC1B,CAIJ,OAAO,QAAQA,EAAI,KAAK,EAAE,IAAI,CAAC,CAACC,EAAKC,CAAG,IACtC,QAAQ,IAAI,UAAKD,YAASC,GAAK,CACjC,CACF,CACA,QAAQ,IAAI,GAAG,CACjB,CAAC,CACH","sourcesContent":["import {HeadTag} from './generate-seo-tags';\n\nexport default function Logger({headTags}: {headTags: HeadTag[]}) {\n logSeoTags(headTags);\n\n return null;\n}\n\nexport function logSeoTags(headTags: HeadTag[]) {\n const style = 'text-transform: uppercase;';\n const style2 =\n 'text-transform: uppercase; font-weight: bold; text-transform: uppercase;font-weight: bold';\n\n console.log(' ');\n console.log('%cSEO Meta Tags', `${style2}`);\n console.log(' ');\n\n headTags.forEach((tag) => {\n if (tag.tag === 'script') {\n console.log(`%c• JSON LD `, style);\n\n if (tag.children) {\n try {\n console.table(JSON.parse(tag.children), ['name', 'content']);\n } catch {\n console.log(tag.children);\n }\n }\n } else {\n console.log(`%c• ${tag.tag} `, style);\n\n if (tag.children) {\n if (typeof tag.children === 'string') {\n console.log(`↳ ${tag.children}`);\n } else {\n try {\n Object.entries(JSON.parse(tag.children)).map(([key, val]) =>\n console.log(`↳ ${val}`),\n );\n } catch {\n console.log(tag.children);\n }\n }\n }\n\n Object.entries(tag.props).map(([key, val]) =>\n console.log(`↳ ${key} → ${val}`),\n );\n }\n console.log(' ');\n });\n}\n"]}
@@ -1,10 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var hydrogenReact = require('@shopify/hydrogen-react');
3
+ var storefrontKitReact = require('@shopify/storefront-kit-react');
4
4
  var serverRuntime = require('@remix-run/server-runtime');
5
+ var react = require('@remix-run/react');
5
6
 
6
- function k(e){let t=Array.isArray(e)?e:[e],r="";for(let o of t)o!=null&&(typeof o=="object"?!!o.body&&typeof o.body=="string"?r+=o.body:r+=JSON.stringify(o):r+=o);return r}var P="public",ne="private",se="no-store",N={maxAge:"max-age",staleWhileRevalidate:"stale-while-revalidate",sMaxAge:"s-maxage",staleIfError:"stale-if-error"};function S(e){let t=[];return Object.keys(e).forEach(r=>{r==="mode"?t.push(e[r]):N[r]&&t.push(`${N[r]}=${e[r]}`);}),t.join(", ")}function q(){return {mode:se}}function $(e){if(e?.mode&&e?.mode!==P&&e?.mode!==ne)throw Error("'mode' must be either 'public' or 'private'")}function f(e){return $(e),{mode:P,maxAge:1,staleWhileRevalidate:9,...e}}function U(e){return $(e),{mode:P,maxAge:3600,staleWhileRevalidate:82800,...e}}function O(e){return e}function w(e,t){return e&&t?{...e,...t}:e||f()}function v(e){return S(w(e))}async function ae(e,t){if(!e)return;let r=await e.match(t);if(!r){t.url;return}return t.url,r}async function ie(e,t,r,o){if(!e)return;let n=w(o);t.headers.set("cache-control",v(w(n,{maxAge:(n.maxAge||0)+(n.staleWhileRevalidate||0)})));let a=v(w(n));r.headers.set("cache-control",a),r.headers.set("real-cache-control",a),r.headers.set("cache-put-date",new Date().toUTCString()),t.url,await e.put(t,r);}async function ce(e,t){!e||(t.url,await e.delete(t));}function ue(e,t){let r=t.headers.get("cache-put-date"),o=t.headers.get("real-cache-control"),n=0;if(o){let c=o.match(/max-age=(\d*)/);c&&c.length>1&&(n=parseFloat(c[1]));}if(!r)return !1;let p=(new Date().valueOf()-new Date(r).valueOf())/1e3>n;return p&&(e.url,void 0),p}var x={get:ae,set:ie,delete:ce,generateDefaultCacheControlHeader:v,isStale:ue};function _(e){return `https://shopify.dev/?${e}`}function pe(e){return e||f()}async function j(e,t){if(!e)return;let r=_(t),o=new Request(r),n=await x.get(e,o);if(!!n)return [await n.json(),n]}async function D(e,t,r,o){if(!e)return;let n=_(t),a=new Request(n),i=new Response(JSON.stringify(r));await x.set(e,a,i,pe(o));}function F(e,t){return x.isStale(new Request(_(e)),t)}function Q(e,t){return [e,{status:t.status,statusText:t.statusText,headers:Array.from(t.headers.entries())}]}var G=e=>!e?.errors,H=new Set;async function W(e,t,{cacheInstance:r,cache:o,cacheKey:n=[e,t],shouldCacheResponse:a=()=>!0,waitUntil:i,returnType:p="json"}={}){!o&&(!t.method||t.method==="GET")&&(o=f());let c=async()=>{let s=await fetch(e,t),l;try{l=await s[p]();}catch{l=await s.text();}return [l,s]};if(!r||!n||!o)return c();let u=k([...typeof n=="string"?[n]:n]),y=await j(r,u);if(y){let[s,l]=y;if(!H.has(u)&&F(u,l)){H.add(u);let m=Promise.resolve().then(async()=>{try{let[h,R]=await c();a(h,R)&&await D(r,u,Q(h,R),o);}catch(h){h.message&&(h.message="SWR in sub-request failed: "+h.message),console.error(h);}finally{H.delete(u);}});i?.(m);}let[C,A]=s;return [C,new Response(C,A)]}let[g,d]=await c();if(a(g,d)){let s=D(r,u,Q(g,d),o);i?.(s);}return [g,d]}var B="Custom-Storefront-Request-Group-ID",J="Shopify-Storefront-Buyer-IP";function V(){return typeof crypto<"u"&&!!crypto.randomUUID?crypto.randomUUID():`weak-${Math.random().toString(16).substring(2)}`}function Y(e){return String(e).includes("__proto__")?JSON.parse(e,le):JSON.parse(e)}function le(e,t){if(e!=="__proto__")return t}var K=new Set,X=e=>{K.has(e)||(console.warn(e),K.add(e));};var ee=class extends Error{},he=e=>e instanceof ee,ge=/(^|}\s)query[\s({]/im,de=/(^|}\s)mutation[\s({]/im;function z(e){return e.replace(/\s*#.*$/gm,"").replace(/\s+/gm," ").trim()}function We({cache:e,waitUntil:t,buyerIp:r,i18n:o={language:"EN",country:"US"},requestGroupId:n=V(),...a}){e||X("Storefront API client created without a cache instance. This may slow down your sub-requests."),a.storeDomain=a.storeDomain.replace(".myshopify.com","");let{getPublicTokenHeaders:i,getPrivateTokenHeaders:p,getStorefrontApiUrl:c,getShopifyDomain:u}=hydrogenReact.createStorefrontClient(a),g=(a.privateStorefrontToken?p:i)({contentType:"json"});g[B]=n,r&&(g[J]=r);async function d({query:s,mutation:l,variables:C,cache:A,headers:m=[],storefrontApiVersion:h}){let R=m instanceof Headers?Object.fromEntries(m.entries()):Array.isArray(m)?Object.fromEntries(m):m;s=s??l;let E={...C};o&&(!C?.country&&/\$country/.test(s)&&(E.country=o.country),!C?.language&&/\$language/.test(s)&&(E.language=o.language));let te=c({storefrontApiVersion:h}),re={method:"POST",headers:{...g,...R},body:JSON.stringify({query:s,variables:E})},[T,I]=await W(te,re,{cacheInstance:l?void 0:e,cache:A||f(),shouldCacheResponse:G,waitUntil:t});if(!I.ok){let b;try{b=Y(T);}catch{b=[{message:T}];}Z(I,b);}let{data:oe,errors:M}=T;return M?.length&&Z(I,M,ee),oe}return {storefront:{query:(s,l)=>{if(s=z(s),de.test(s))throw new Error("storefront.query cannot execute mutations");return d({...l,query:s})},mutate:(s,l)=>{if(s=z(s),ge.test(s))throw new Error("storefront.mutate cannot execute queries");return d({...l,mutation:s})},cache:e,CacheNone:q,CacheLong:U,CacheShort:f,CacheCustom:O,generateCacheControlHeader:S,getPublicTokenHeaders:i,getPrivateTokenHeaders:p,getShopifyDomain:u,getApiUrl:c,isApiError:he,i18n:{pathPrefix:"",...o}}}}function Z(e,t,r=Error){let o=e.headers.get("x-request-id"),n=o?` - Request ID: ${o}`:"";if(t){let a=typeof t=="string"?t:t.map(i=>i.message).join(`
7
- `);throw new r(a+n)}throw new r(`API response error: ${e.status}`+n)}var L=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,r){throw new Error("Method not implemented. Use `match` instead.")}async put(t,r){if(t.method!=="GET")throw new TypeError("Cannot cache response to non-GET request.");if(r.status===206)throw new TypeError("Cannot cache response to a range request (206 Partial Content).");if(r.headers.get("vary")?.includes("*"))throw new TypeError("Cannot cache response with 'Vary: *' header.");this.#e.set(t.url,{body:new Uint8Array(await r.arrayBuffer()),status:r.status,headers:[...r.headers],timestamp:Date.now()});}async match(t){if(t.method!=="GET")return;let r=this.#e.get(t.url);if(!r)return;let{body:o,timestamp:n,...a}=r,i=new Headers(a.headers),p=i.get("cache-control")||i.get("real-cache-control")||"",c=parseInt(p.match(/max-age=(\d+)/)?.[1]||"0",10),u=parseInt(p.match(/stale-while-revalidate=(\d+)/)?.[1]||"0",10),y=(Date.now()-n)/1e3;if(y>c+u){this.#e.delete(t.url);return}let d=y>c;return i.set("cache",d?"STALE":"HIT"),i.set("date",new Date(n).toUTCString()),new Response(o,{status:a.status??200,headers:i})}async delete(t){return this.#e.has(t.url)?(this.#e.delete(t.url),!0):!1}keys(t){let r=[];for(let o of this.#e.keys())(!t||t.url===o)&&r.push(new Request(o));return Promise.resolve(r)}};async function ye({storefront:e,request:t,response:r=new Response("Not Found",{status:404})}){let{pathname:o,search:n}=new URL(t.url),a=o+n;try{let{urlRedirects:i}=await e.query(Se,{variables:{query:"path:"+a},storefrontApiVersion:"2023-01"}),p=i?.edges?.[0]?.node?.target;if(p)return new Response(null,{status:302,headers:{location:p}});let c=new URLSearchParams(n),u=c.get("return_to")||c.get("redirect");if(u){if(Ce(u))return serverRuntime.redirect(u);console.warn(`Cross-domain redirects are not supported. Tried to redirect from ${a} to ${u}`);}}catch(i){console.error(`Failed to fetch redirects from Storefront API for route ${a}`,i);}return r}function Ce(e){try{new URL(e);}catch{return !0}return !1}var Se=`#graphql
7
+ var He=Object.create;var D=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,We=Object.prototype.hasOwnProperty;var Be=(e,t)=>()=>(e&&(t=e(e=0)),t);var re=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Qe=(e,t)=>{for(var r in t)D(e,r,{get:t[r],enumerable:!0});},Je=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ne(t))!We.call(e,o)&&o!==r&&D(e,o,{get:()=>t[o],enumerable:!(n=Fe(t,o))||n.enumerable});return e};var Ge=(e,t,r)=>(r=e!=null?He(Ve(e)):{},Je(t||!e||!e.__esModule?D(r,"default",{value:e,enumerable:!0}):r,e));var Pe=re(p=>{var A=Symbol.for("react.element"),ft=Symbol.for("react.portal"),dt=Symbol.for("react.fragment"),yt=Symbol.for("react.strict_mode"),ht=Symbol.for("react.profiler"),gt=Symbol.for("react.provider"),mt=Symbol.for("react.context"),St=Symbol.for("react.forward_ref"),Ct=Symbol.for("react.suspense"),Rt=Symbol.for("react.memo"),Tt=Symbol.for("react.lazy"),Re=Symbol.iterator;function wt(e){return e===null||typeof e!="object"?null:(e=Re&&e[Re]||e["@@iterator"],typeof e=="function"?e:null)}var xe={isMounted:function(){return !1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ee=Object.assign,be={};function E(e,t,r){this.props=e,this.context=t,this.refs=be,this.updater=r||xe;}E.prototype.isReactComponent={};E.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState");};E.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate");};function Ae(){}Ae.prototype=E.prototype;function K(e,t,r){this.props=e,this.context=t,this.refs=be,this.updater=r||xe;}var Y=K.prototype=new Ae;Y.constructor=K;Ee(Y,E.prototype);Y.isPureReactComponent=!0;var Te=Array.isArray,ke=Object.prototype.hasOwnProperty,X={current:null},_e={key:!0,ref:!0,__self:!0,__source:!0};function Oe(e,t,r){var n,o={},a=null,c=null;if(t!=null)for(n in t.ref!==void 0&&(c=t.ref),t.key!==void 0&&(a=""+t.key),t)ke.call(t,n)&&!_e.hasOwnProperty(n)&&(o[n]=t[n]);var i=arguments.length-2;if(i===1)o.children=r;else if(1<i){for(var s=Array(i),u=0;u<i;u++)s[u]=arguments[u+2];o.children=s;}if(e&&e.defaultProps)for(n in i=e.defaultProps,i)o[n]===void 0&&(o[n]=i[n]);return {$$typeof:A,type:e,key:a,ref:c,props:o,_owner:X.current}}function xt(e,t){return {$$typeof:A,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Z(e){return typeof e=="object"&&e!==null&&e.$$typeof===A}function Et(e){var t={"=":"=0",":":"=2"};return "$"+e.replace(/[=:]/g,function(r){return t[r]})}var we=/\/+/g;function z(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Et(""+e.key):t.toString(36)}function I(e,t,r,n,o){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var c=!1;if(e===null)c=!0;else switch(a){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case A:case ft:c=!0;}}if(c)return c=e,o=o(c),e=n===""?"."+z(c,0):n,Te(o)?(r="",e!=null&&(r=e.replace(we,"$&/")+"/"),I(o,t,r,"",function(u){return u})):o!=null&&(Z(o)&&(o=xt(o,r+(!o.key||c&&c.key===o.key?"":(""+o.key).replace(we,"$&/")+"/")+e)),t.push(o)),1;if(c=0,n=n===""?".":n+":",Te(e))for(var i=0;i<e.length;i++){a=e[i];var s=n+z(a,i);c+=I(a,t,r,s,o);}else if(s=wt(e),typeof s=="function")for(e=s.call(e),i=0;!(a=e.next()).done;)a=a.value,s=n+z(a,i++),c+=I(a,t,r,s,o);else if(a==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return c}function P(e,t,r){if(e==null)return e;var n=[],o=0;return I(e,n,"","",function(a){return t.call(r,a,o++)}),n}function bt(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r);},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r);}),e._status===-1&&(e._status=0,e._result=t);}if(e._status===1)return e._result.default;throw e._result}var y={current:null},M={transition:null},At={ReactCurrentDispatcher:y,ReactCurrentBatchConfig:M,ReactCurrentOwner:X};p.Children={map:P,forEach:function(e,t,r){P(e,function(){t.apply(this,arguments);},r);},count:function(e){var t=0;return P(e,function(){t++;}),t},toArray:function(e){return P(e,function(t){return t})||[]},only:function(e){if(!Z(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};p.Component=E;p.Fragment=dt;p.Profiler=ht;p.PureComponent=K;p.StrictMode=yt;p.Suspense=Ct;p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=At;p.cloneElement=function(e,t,r){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n=Ee({},e.props),o=e.key,a=e.ref,c=e._owner;if(t!=null){if(t.ref!==void 0&&(a=t.ref,c=X.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var i=e.type.defaultProps;for(s in t)ke.call(t,s)&&!_e.hasOwnProperty(s)&&(n[s]=t[s]===void 0&&i!==void 0?i[s]:t[s]);}var s=arguments.length-2;if(s===1)n.children=r;else if(1<s){i=Array(s);for(var u=0;u<s;u++)i[u]=arguments[u+2];n.children=i;}return {$$typeof:A,type:e.type,key:o,ref:a,props:n,_owner:c}};p.createContext=function(e){return e={$$typeof:mt,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:gt,_context:e},e.Consumer=e};p.createElement=Oe;p.createFactory=function(e){var t=Oe.bind(null,e);return t.type=e,t};p.createRef=function(){return {current:null}};p.forwardRef=function(e){return {$$typeof:St,render:e}};p.isValidElement=Z;p.lazy=function(e){return {$$typeof:Tt,_payload:{_status:-1,_result:e},_init:bt}};p.memo=function(e,t){return {$$typeof:Rt,type:e,compare:t===void 0?null:t}};p.startTransition=function(e){var t=M.transition;M.transition={};try{e();}finally{M.transition=t;}};p.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")};p.useCallback=function(e,t){return y.current.useCallback(e,t)};p.useContext=function(e){return y.current.useContext(e)};p.useDebugValue=function(){};p.useDeferredValue=function(e){return y.current.useDeferredValue(e)};p.useEffect=function(e,t){return y.current.useEffect(e,t)};p.useId=function(){return y.current.useId()};p.useImperativeHandle=function(e,t,r){return y.current.useImperativeHandle(e,t,r)};p.useInsertionEffect=function(e,t){return y.current.useInsertionEffect(e,t)};p.useLayoutEffect=function(e,t){return y.current.useLayoutEffect(e,t)};p.useMemo=function(e,t){return y.current.useMemo(e,t)};p.useReducer=function(e,t,r){return y.current.useReducer(e,t,r)};p.useRef=function(e){return y.current.useRef(e)};p.useState=function(e){return y.current.useState(e)};p.useSyncExternalStore=function(e,t,r){return y.current.useSyncExternalStore(e,t,r)};p.useTransition=function(){return y.current.useTransition()};p.version="18.2.0";});var Me=re((dr,Ie)=>{Ie.exports=Pe();});var $e={};Qe($e,{default:()=>qe,logSeoTags:()=>v});function qe({headTags:e}){return v(e),null}function v(e){let t="text-transform: uppercase;",r="text-transform: uppercase; font-weight: bold; text-transform: uppercase;font-weight: bold";console.log(" "),console.log("%cSEO Meta Tags",`${r}`),console.log(" "),e.forEach(n=>{if(n.tag==="script"){if(console.log("%c\u2022 JSON LD ",t),n.children)try{console.table(JSON.parse(n.children),["name","content"]);}catch{console.log(n.children);}}else {if(console.log(`%c\u2022 ${n.tag} `,t),n.children)if(typeof n.children=="string")console.log(`\u21B3 ${n.children}`);else try{Object.entries(JSON.parse(n.children)).map(([o,a])=>console.log(`\u21B3 ${a}`));}catch{console.log(n.children);}Object.entries(n.props).map(([o,a])=>console.log(`\u21B3 ${o} \u2192 ${a}`));}console.log(" ");});}var ee=Be(()=>{});function ne(e){let t=Array.isArray(e)?e:[e],r="";for(let n of t)n!=null&&(typeof n=="object"?!!n.body&&typeof n.body=="string"?r+=n.body:r+=JSON.stringify(n):r+=n);return r}var H="public",ze="private",Ke="no-store",oe={maxAge:"max-age",staleWhileRevalidate:"stale-while-revalidate",sMaxAge:"s-maxage",staleIfError:"stale-if-error"};function b(e){let t=[];return Object.keys(e).forEach(r=>{r==="mode"?t.push(e[r]):oe[r]&&t.push(`${oe[r]}=${e[r]}`);}),t.join(", ")}function F(){return {mode:Ke}}function se(e){if(e?.mode&&e?.mode!==H&&e?.mode!==ze)throw Error("'mode' must be either 'public' or 'private'")}function R(e){return se(e),{mode:H,maxAge:1,staleWhileRevalidate:9,...e}}function N(e){return se(e),{mode:H,maxAge:3600,staleWhileRevalidate:82800,...e}}function V(e){return e}function _(e,t){return e&&t?{...e,...t}:e||R()}function W(e){return b(_(e))}async function Ye(e,t){if(!e)return;let r=await e.match(t);if(!r){t.url;return}return t.url,r}async function Xe(e,t,r,n){if(!e)return;let o=_(n);t.headers.set("cache-control",W(_(o,{maxAge:(o.maxAge||0)+(o.staleWhileRevalidate||0)})));let a=W(_(o));r.headers.set("cache-control",a),r.headers.set("real-cache-control",a),r.headers.set("cache-put-date",new Date().toUTCString()),t.url,await e.put(t,r);}async function Ze(e,t){!e||(t.url,await e.delete(t));}function et(e,t){let r=t.headers.get("cache-put-date"),n=t.headers.get("real-cache-control"),o=0;if(n){let s=n.match(/max-age=(\d*)/);s&&s.length>1&&(o=parseFloat(s[1]));}if(!r)return !1;let i=(new Date().valueOf()-new Date(r).valueOf())/1e3>o;return i&&(e.url,void 0),i}var O={get:Ye,set:Xe,delete:Ze,generateDefaultCacheControlHeader:W,isStale:et};function B(e){return `https://shopify.dev/?${e}`}function tt(e){return e||R()}async function ae(e,t){if(!e)return;let r=B(t),n=new Request(r),o=await O.get(e,n);if(!!o)return [await o.json(),o]}async function Q(e,t,r,n){if(!e)return;let o=B(t),a=new Request(o),c=new Response(JSON.stringify(r));await O.set(e,a,c,tt(n));}function ie(e,t){return O.isStale(new Request(B(e)),t)}function ce(e,t){return [e,{status:t.status,statusText:t.statusText,headers:Array.from(t.headers.entries())}]}var ue=e=>!e?.errors,J=new Set;async function le(e,t,{cacheInstance:r,cache:n,cacheKey:o=[e,t],shouldCacheResponse:a=()=>!0,waitUntil:c,returnType:i="json"}={}){!n&&(!t.method||t.method==="GET")&&(n=R());let s=async()=>{let l=await fetch(e,t),f;try{f=await l[i]();}catch{f=await l.text();}return [f,l]};if(!r||!o||!n)return s();let u=ne([...typeof o=="string"?[o]:o]),h=await ae(r,u);if(h){let[l,f]=h;if(!J.has(u)&&ie(u,f)){J.add(u);let w=Promise.resolve().then(async()=>{try{let[m,k]=await s();a(m,k)&&await Q(r,u,ce(m,k),n);}catch(m){m.message&&(m.message="SWR in sub-request failed: "+m.message),console.error(m);}finally{J.delete(u);}});c?.(w);}let[g,T]=l;return [g,new Response(g,T)]}let[S,C]=await s();if(a(S,C)){let l=Q(r,u,ce(S,C),n);c?.(l);}return [S,C]}var pe="Custom-Storefront-Request-Group-ID",fe="Shopify-Storefront-Buyer-IP";function de(){return typeof crypto<"u"&&!!crypto.randomUUID?crypto.randomUUID():`weak-${Math.random().toString(16).substring(2)}`}function ye(e){return String(e).includes("__proto__")?JSON.parse(e,rt):JSON.parse(e)}function rt(e,t){if(e!=="__proto__")return t}var he=new Set,ge=e=>{he.has(e)||(console.warn(e),he.add(e));};var Ce=class extends Error{},ot=e=>e instanceof Ce,st=/(^|}\s)query[\s({]/im,at=/(^|}\s)mutation[\s({]/im;function me(e){return e.replace(/\s*#.*$/gm,"").replace(/\s+/gm," ").trim()}function sr({cache:e,waitUntil:t,buyerIp:r,i18n:n={language:"EN",country:"US"},requestGroupId:o=de(),...a}){e||ge("Storefront API client created without a cache instance. This may slow down your sub-requests.");let{getPublicTokenHeaders:c,getPrivateTokenHeaders:i,getStorefrontApiUrl:s,getShopifyDomain:u}=storefrontKitReact.createStorefrontClient(a),S=(a.privateStorefrontToken?i:c)({contentType:"json"});S[pe]=o,r&&(S[fe]=r);async function C({query:l,mutation:f,variables:g,cache:T,headers:w=[],storefrontApiVersion:m}){let k=w instanceof Headers?Object.fromEntries(w.entries()):Array.isArray(w)?Object.fromEntries(w):w;l=l??f;let q={...g};n&&(!g?.country&&/\$country/.test(l)&&(q.country=n.country),!g?.language&&/\$language/.test(l)&&(q.language=n.language));let je=s({storefrontApiVersion:m}),Ue={method:"POST",headers:{...S,...k},body:JSON.stringify({query:l,variables:q})},[$,j]=await le(je,Ue,{cacheInstance:f?void 0:e,cache:T||R(),shouldCacheResponse:ue,waitUntil:t});if(!j.ok){let U;try{U=ye($);}catch{U=[{message:$}];}Se(j,U);}let{data:De,errors:te}=$;return te?.length&&Se(j,te,Ce),De}return {storefront:{query:(l,f)=>{if(l=me(l),at.test(l))throw new Error("storefront.query cannot execute mutations");return C({...f,query:l})},mutate:(l,f)=>{if(l=me(l),st.test(l))throw new Error("storefront.mutate cannot execute queries");return C({...f,mutation:l})},cache:e,CacheNone:F,CacheLong:N,CacheShort:R,CacheCustom:V,generateCacheControlHeader:b,getPublicTokenHeaders:c,getPrivateTokenHeaders:i,getShopifyDomain:u,getApiUrl:s,isApiError:ot,i18n:{pathPrefix:"",...n}}}}function Se(e,t,r=Error){let n=e.headers.get("x-request-id"),o=n?` - Request ID: ${n}`:"";if(t){let a=typeof t=="string"?t:t.map(c=>c.message).join(`
8
+ `);throw new r(a+o)}throw new r(`API response error: ${e.status}`+o)}var G=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,r){throw new Error("Method not implemented. Use `match` instead.")}async put(t,r){if(t.method!=="GET")throw new TypeError("Cannot cache response to non-GET request.");if(r.status===206)throw new TypeError("Cannot cache response to a range request (206 Partial Content).");if(r.headers.get("vary")?.includes("*"))throw new TypeError("Cannot cache response with 'Vary: *' header.");this.#e.set(t.url,{body:new Uint8Array(await r.arrayBuffer()),status:r.status,headers:[...r.headers],timestamp:Date.now()});}async match(t){if(t.method!=="GET")return;let r=this.#e.get(t.url);if(!r)return;let{body:n,timestamp:o,...a}=r,c=new Headers(a.headers),i=c.get("cache-control")||c.get("real-cache-control")||"",s=parseInt(i.match(/max-age=(\d+)/)?.[1]||"0",10),u=parseInt(i.match(/stale-while-revalidate=(\d+)/)?.[1]||"0",10),h=(Date.now()-o)/1e3;if(h>s+u){this.#e.delete(t.url);return}let C=h>s;return c.set("cache",C?"STALE":"HIT"),c.set("date",new Date(o).toUTCString()),new Response(n,{status:a.status??200,headers:c})}async delete(t){return this.#e.has(t.url)?(this.#e.delete(t.url),!0):!1}keys(t){let r=[];for(let n of this.#e.keys())(!t||t.url===n)&&r.push(new Request(n));return Promise.resolve(r)}};async function ct({storefront:e,request:t,response:r=new Response("Not Found",{status:404})}){let{pathname:n,search:o}=new URL(t.url),a=n+o;try{let{urlRedirects:c}=await e.query(lt,{variables:{query:"path:"+a},storefrontApiVersion:"2023-01"}),i=c?.edges?.[0]?.node?.target;if(i)return new Response(null,{status:302,headers:{location:i}});let s=new URLSearchParams(o),u=s.get("return_to")||s.get("redirect");if(u){if(ut(u))return serverRuntime.redirect(u);console.warn(`Cross-domain redirects are not supported. Tried to redirect from ${a} to ${u}`);}}catch(c){console.error(`Failed to fetch redirects from Storefront API for route ${a}`,c);}return r}function ut(e){try{new URL(e);}catch{return !0}return !1}var lt=`#graphql
8
9
  query redirects($query: String) {
9
10
  urlRedirects(first: 1, query: $query) {
10
11
  edges {
@@ -14,48 +15,152 @@ function k(e){let t=Array.isArray(e)?e:[e],r="";for(let o of t)o!=null&&(typeof
14
15
  }
15
16
  }
16
17
  }
17
- `;function Re({context:e}={}){if(!e?.storefront)throw new Error("GraphiQL: Hydrogen's storefront client must be injected in the loader context.");let t=e.storefront.getApiUrl(),r=e.storefront.getPublicTokenHeaders()["X-Shopify-Storefront-Access-Token"];return new Response(`
18
+ `;function pt({context:e}={}){if(!e?.storefront)throw new Error("GraphiQL: Hydrogen's storefront client must be injected in the loader context.");let t=e.storefront.getApiUrl(),r=e.storefront.getPublicTokenHeaders()["X-Shopify-Storefront-Access-Token"];return new Response(`
18
19
  <!DOCTYPE html>
19
- <html>
20
- <head>
21
- <meta charset=utf-8/>
22
- <meta name="viewport" content="user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, minimal-ui">
23
- <title>Shopify Storefront API</title>
24
- <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/graphql-playground-react/build/static/css/index.css" />
25
- <link rel="shortcut icon" href="//cdn.jsdelivr.net/npm/graphql-playground-react/build/favicon.png" />
26
- <script src="//cdn.jsdelivr.net/npm/graphql-playground-react/build/static/js/middleware.js"><\/script>
27
- </head>
28
- <body>
29
- <div id="root"></div>
30
- <script>window.addEventListener('load', function (event) {
31
- GraphQLPlayground.init(document.getElementById('root'), {
32
- endpoint: '${t}',
33
- settings:{
34
- 'request.globalHeaders': {
35
- Accept: 'application/json',
36
- 'Content-Type': 'application/graphql',
37
- 'X-Shopify-Storefront-Access-Token': '${r}'
38
- }
39
- },
40
- tabs: [{
41
- endpoint: '${t}',
42
- query: '{ shop { name } }'
43
- }]
44
- })
45
- })<\/script>
46
- </body>
20
+ <html lang="en">
21
+ <head>
22
+ <title>GraphiQL</title>
23
+ <style>
24
+ body {
25
+ height: 100%;
26
+ margin: 0;
27
+ width: 100%;
28
+ overflow: hidden;
29
+ }
30
+
31
+ #graphiql {
32
+ height: 100vh;
33
+ }
34
+ </style>
35
+
36
+ <script
37
+ src="https://unpkg.com/react@17/umd/react.development.js"
38
+ integrity="sha512-Vf2xGDzpqUOEIKO+X2rgTLWPY+65++WPwCHkX2nFMu9IcstumPsf/uKKRd5prX3wOu8Q0GBylRpsDB26R6ExOg=="
39
+ crossorigin="anonymous"
40
+ ><\/script>
41
+ <script
42
+ src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"
43
+ integrity="sha512-Wr9OKCTtq1anK0hq5bY3X/AvDI5EflDSAh0mE9gma+4hl+kXdTJPKZ3TwLMBcrgUeoY0s3dq9JjhCQc7vddtFg=="
44
+ crossorigin="anonymous"
45
+ ><\/script>
46
+ <link rel="stylesheet" href="https://unpkg.com/graphiql/graphiql.min.css" />
47
+ </head>
48
+
49
+ <body>
50
+ <div id="graphiql">Loading...</div>
51
+ <script
52
+ src="https://unpkg.com/graphiql/graphiql.min.js"
53
+ type="application/javascript"
54
+ ><\/script>
55
+ <script>
56
+ ReactDOM.render(
57
+ React.createElement(GraphiQL, {
58
+ fetcher: GraphiQL.createFetcher({
59
+ url: '${t}',
60
+ headers: {
61
+ 'X-Shopify-Storefront-Access-Token': '${r}',
62
+ }
63
+ }),
64
+ defaultEditorToolsVisibility: true,
65
+ initialTabs: [{query: '{\\n shop {\\n name\\n }\\n}'}]
66
+ }),
67
+ document.getElementById('graphiql'),
68
+ );
69
+ <\/script>
70
+ </body>
47
71
  </html>
48
- `,{status:200,headers:{"content-type":"text/html"}})}
72
+ `,{status:200,headers:{"content-type":"text/html"}})}var x=Ge(Me(),1);function Le(e){let t=[],r={"@context":"https://schema.org","@type":"Thing"};for(let o of Object.keys(e)){let i=(Array.isArray(e[o])?e[o]:[e[o]]).map(s=>{let u=[];if(!s)return u;switch(o){case"title":let h=kt(e.titleTemplate,s);u.push(d("title",h),d("meta",{property:"og:title",content:h}),d("meta",{name:"twitter:title",content:h})),r.name=h;break;case"description":u.push(d("meta",{name:"description",content:s}),d("meta",{property:"og:description",content:s}),d("meta",{name:"twitter:description",content:s})),r.description=s;break;case"url":u.push(d("meta",{property:"og:url",content:s}),d("link",{rel:"canonical",href:s})),r.url=s,r["@type"]=Ot(s);break;case"handle":u.push(d("meta",{name:"twitter:site",content:s}),d("meta",{name:"twitter:creator",content:s}));break;case"ldJson":r={...r,...s};break;case"media":let S=Array.isArray(s)?s:[s];for(let l of S)if(typeof l=="string"&&(u.push(d("meta",{name:"og:image",content:s})),r.image=s),l&&typeof l=="object"){let f=l.type||"image",g=l?{url:l?.url,secure_url:l?.url,type:_t(l?.url),width:l?.width,height:l?.height,alt:l?.altText}:{};for(let T of Object.keys(g))g[T]&&u.push(d("meta",{property:`og:${f}:${T}`,content:g[T]},g.url));}break;case"alternates":let C=Array.isArray(s)?s:[s];for(let l of C){let{language:f,media:g,url:T,default:w}=l,m=f?`${f}${w?"-default":""}`:void 0;u.push(d("link",{rel:"alternate",hreflang:m,media:g,href:T}));}break}return u}).flat();t.push(i.filter(s=>!!s));}let n=[d("meta",{property:"og:type",content:"website"}),d("meta",{name:"twitter:card",content:"summary_large_image"})];return [...t,...n].flat().sort((o,a)=>o.key.localeCompare(a.key)).concat(d("script",{type:"application/ld+json",children:JSON.stringify(r)})).flat()}function d(e,t,r){let n={tag:e,props:{}};return e==="title"?(n.children=t,n.key=ve(n),n):(e==="script"&&(n.children=t.children,delete t.children),n.props=t,Object.keys(n.props).forEach(o=>!n.props[o]&&delete n.props[o]),n.key=ve(n,r),n)}function ve(e,t){let{tag:r,props:n}=e;if(r==="title")return "0-title";if(r==="meta"){let o=n.content===t&&!n.property.endsWith("secure_url")&&"0";return [r,...[t,o],n.property||n.name].filter(c=>c).join("-")}return r==="link"?[r,n.rel,n.hreflang||n.media].filter(a=>a).join("-").replace(/\s+/g,"-"):`${r}-${n.type}`}function kt(e,t){return e?typeof e=="function"?e(t):e.replace("%s",t??""):t}function _t(e){let t=e.split(".").pop();return t==="svg"?"image/svg+xml":t==="png"?"image/png":t==="jpg"||t==="jpeg"?"image/jpeg":t==="gif"?"image/gif":t==="swf"?"application/x-shockwave-flash":t==="mp3"?"audio/mpeg":"image/jpeg"}function Ot(e){let t="Thing",n=[{type:"WebSite",pattern:"^/$"},{type:"Product",pattern:"/products/.*"},{type:"ItemList",pattern:/\/collections$/},{type:"ItemList",pattern:/\/collections\/([^\/]+)/},{type:"WebPage",pattern:/\/pages\/([^\/]+)/},{type:"WebSite",pattern:/\/blogs\/([^\/]+)/},{type:"BlogPosting",pattern:/\/blogs\/([^\/]+)\/([^\/]+)/},{type:"Organization",pattern:"/policies"},{type:"Organization",pattern:/\/policies\/([^\/]+)/}].filter(o=>{let{pattern:a}=o;return new RegExp(a).test(e)});return n.length>0?n[n.length-1].type:t}ee();var Mt=x.default.lazy(()=>Promise.resolve().then(()=>(ee(),$e)));function vt({debug:e}){let t=react.useMatches(),r=react.useLocation(),n=t.flatMap(i=>{let{handle:s,...u}=i,h={...u,...r};return s===void 0||s.seo===void 0?[]:L(s.seo,h)}).reduce((i,s)=>(Object.keys(s).forEach(u=>!s[u]&&delete s[u]),{...i,...s}),{}),o=Le(n);e&&v(o);let a=o.map(i=>i.tag==="script"?x.default.createElement(i.tag,{...i.props,key:i.key,dangerouslySetInnerHTML:{__html:i.children}}):x.default.createElement(i.tag,{...i.props,key:i.key},i.children)),c=x.default.createElement(x.default.Suspense,{fallback:null},x.default.createElement(Mt,{headTags:o}));return x.default.createElement(x.default.Fragment,null,a,e&&c)}function L(e,...t){if(e instanceof Function)return L(e(...t),...t);let r={};return Array.isArray(e)?(r=e.reduce((n,o)=>[...n,L(o)],[]),r):e instanceof Object?(Object.entries(e).forEach(([o,a])=>{r[o]=L(a,...t);}),r):e}/**
73
+ * @license React
74
+ * react.production.min.js
75
+ *
76
+ * Copyright (c) Facebook, Inc. and its affiliates.
77
+ *
78
+ * This source code is licensed under the MIT license found in the
79
+ * LICENSE file in the root directory of this source tree.
80
+ */
49
81
 
50
- exports.CacheCustom = O;
51
- exports.CacheLong = U;
52
- exports.CacheNone = q;
53
- exports.CacheShort = f;
54
- exports.InMemoryCache = L;
55
- exports.createStorefrontClient = We;
56
- exports.generateCacheControlHeader = S;
57
- exports.graphiqlLoader = Re;
58
- exports.isStorefrontApiError = he;
59
- exports.storefrontRedirect = ye;
82
+ Object.defineProperty(exports, 'AnalyticsEventName', {
83
+ enumerable: true,
84
+ get: function () { return storefrontKitReact.AnalyticsEventName; }
85
+ });
86
+ Object.defineProperty(exports, 'AnalyticsPageType', {
87
+ enumerable: true,
88
+ get: function () { return storefrontKitReact.AnalyticsPageType; }
89
+ });
90
+ Object.defineProperty(exports, 'ExternalVideo', {
91
+ enumerable: true,
92
+ get: function () { return storefrontKitReact.ExternalVideo; }
93
+ });
94
+ Object.defineProperty(exports, 'Image', {
95
+ enumerable: true,
96
+ get: function () { return storefrontKitReact.Image; }
97
+ });
98
+ Object.defineProperty(exports, 'MediaFile', {
99
+ enumerable: true,
100
+ get: function () { return storefrontKitReact.MediaFile; }
101
+ });
102
+ Object.defineProperty(exports, 'ModelViewer', {
103
+ enumerable: true,
104
+ get: function () { return storefrontKitReact.ModelViewer; }
105
+ });
106
+ Object.defineProperty(exports, 'Money', {
107
+ enumerable: true,
108
+ get: function () { return storefrontKitReact.Money; }
109
+ });
110
+ Object.defineProperty(exports, 'ShopPayButton', {
111
+ enumerable: true,
112
+ get: function () { return storefrontKitReact.ShopPayButton; }
113
+ });
114
+ Object.defineProperty(exports, 'ShopifyAppSource', {
115
+ enumerable: true,
116
+ get: function () { return storefrontKitReact.ShopifyAppSource; }
117
+ });
118
+ Object.defineProperty(exports, 'Video', {
119
+ enumerable: true,
120
+ get: function () { return storefrontKitReact.Video; }
121
+ });
122
+ Object.defineProperty(exports, 'flattenConnection', {
123
+ enumerable: true,
124
+ get: function () { return storefrontKitReact.flattenConnection; }
125
+ });
126
+ Object.defineProperty(exports, 'getClientBrowserParameters', {
127
+ enumerable: true,
128
+ get: function () { return storefrontKitReact.getClientBrowserParameters; }
129
+ });
130
+ Object.defineProperty(exports, 'getShopifyCookies', {
131
+ enumerable: true,
132
+ get: function () { return storefrontKitReact.getShopifyCookies; }
133
+ });
134
+ Object.defineProperty(exports, 'parseMetafield', {
135
+ enumerable: true,
136
+ get: function () { return storefrontKitReact.parseMetafield; }
137
+ });
138
+ Object.defineProperty(exports, 'sendShopifyAnalytics', {
139
+ enumerable: true,
140
+ get: function () { return storefrontKitReact.sendShopifyAnalytics; }
141
+ });
142
+ Object.defineProperty(exports, 'storefrontApiCustomScalars', {
143
+ enumerable: true,
144
+ get: function () { return storefrontKitReact.storefrontApiCustomScalars; }
145
+ });
146
+ Object.defineProperty(exports, 'useMoney', {
147
+ enumerable: true,
148
+ get: function () { return storefrontKitReact.useMoney; }
149
+ });
150
+ Object.defineProperty(exports, 'useShopifyCookies', {
151
+ enumerable: true,
152
+ get: function () { return storefrontKitReact.useShopifyCookies; }
153
+ });
154
+ exports.CacheCustom = V;
155
+ exports.CacheLong = N;
156
+ exports.CacheNone = F;
157
+ exports.CacheShort = R;
158
+ exports.InMemoryCache = G;
159
+ exports.Seo = vt;
160
+ exports.createStorefrontClient = sr;
161
+ exports.generateCacheControlHeader = b;
162
+ exports.graphiqlLoader = pt;
163
+ exports.isStorefrontApiError = ot;
164
+ exports.storefrontRedirect = ct;
60
165
  //# sourceMappingURL=out.js.map
61
166
  //# sourceMappingURL=index.cjs.map