1var e=`GraphQL Client`,t=`An error occurred while fetching from the API. Review 'graphQLErrors' for details.`,n=`Response returned unexpected Content-Type:`,r=`An unknown error has occurred. The API did not return a data object or any errors in its response.`,i={json:`application/json`,multipart:`multipart/mixed`},a=`X-SDK-Variant`,o=`X-SDK-Version`,s=`shopify-graphql-client`,c=`2.0.0`,l=1e3,u=[429,503],d=/@(defer)\b/i,f=/boundary="?([^=";]+)"?/i,p=`\r 2\r 3`;function m(t,n=e){return t.startsWith(`${n}`)?t:`${n}: ${t}`}function h(e){return e instanceof Error?e.message:JSON.stringify(e)}function g(e){return e instanceof Error&&e.cause?e.cause:void 0}function _(e){return e.flatMap(({errors:e})=>e??[])}function v({client:e,retries:t}){if(t!==void 0&&(typeof t!=`number`||t<0||t>3))throw Error(`${e}: The provided "retries" value (${t}) is invalid - it cannot be less than 0 or greater than 3`)}function y(e,t){return t&&(typeof t!=`object`||Array.isArray(t)||typeof t==`object`&&Object.keys(t).length>0)?{[e]:t}:{}}function b(e,t){if(e.length===0)return t;let n={[e.pop()]:t};return e.length===0?n:b(e,n)}function x(e,t){return Object.keys(t||{}).reduce((n,r)=>(typeof t[r]==`object`||Array.isArray(t[r]))&&e[r]?(n[r]=x(e[r],t[r]),n):(n[r]=t[r],n),Array.isArray(e)?[...e]:{...e})}function S([e,...t]){return t.reduce(x,{...e})}function C({clientLogger:t,customFetchApi:n=fetch,client:r=e,defaultRetryWaitTime:i=l,retriableCodes:a=u}){let o=async(e,s,c)=>{let l=s+1,u=c+1,d;try{if(d=await n(...e),t({type:`HTTP-Response`,content:{requestParams:e,response:d}}),!d.ok&&a.includes(d.status)&&l<=u)throw Error();let r=d?.headers.get(`X-Shopify-API-Deprecated-Reason`)||``;return r&&t({type:`HTTP-Response-GraphQL-Deprecation-Notice`,content:{requestParams:e,deprecationNotice:r}}),d}catch(n){if(l<=u){let n=d?.headers.get(`Retry-After`);return await w(n?parseInt(n,10):i),t({type:`HTTP-Retry`,content:{requestParams:e,lastResponse:d,retryAttempt:s,maxRetries:c}}),o(e,l,c)}throw Error(m(`${c>0?`Attempted maximum number of ${c} network retries. Last message - `:``}${h(n)}`,r))}};return o}async function w(e){return new Promise(t=>setTimeout(t,e))}function T({headers:t,url:n,customFetchApi:r=fetch,retries:i=0,logger:a}){v({client:e,retries:i});let o={headers:t,url:n,retries:i},s=O(C({customFetchApi:r,clientLogger:E(a),defaultRetryWaitTime:l}),o);return{config:o,fetch:s,request:k(s),requestStream:I(s)}}function E(e){return t=>{e&&e(t)}}async function D(e){let{errors:n,data:i,extensions:a}=await e.json();return{...y(`data`,i),...y(`extensions`,a),headers:e.headers,...n||!i?{errors:{networkStatusCode:e.status,message:m(n?t:r),...y(`graphQLErrors`,n),response:e}}:{}}}function O(t,{url:n,headers:r,retries:i}){return async(l,u={})=>{let{variables:d,headers:f,url:p,retries:m,keepalive:h,signal:g}=u,_=JSON.stringify({query:l,variables:d});v({client:e,retries:m});let y=Object.entries({...r,...f}).reduce((e,[t,n])=>(e[t]=Array.isArray(n)?n.join(`, `):n.toString(),e),{});return!y[`X-SDK-Variant`]&&!y[`X-SDK-Version`]&&(y[a]=s,y[o]=c),t([p??n,{method:`POST`,headers:y,body:_,signal:g,keepalive:h}],1,m??i)}}function k(e){return async(...t)=>{if(d.test(t[0]))throw Error(m(`This operation will result in a streamable response - use requestStream() instead.`));let r=null;try{r=await e(...t);let{status:a,statusText:o}=r,s=r.headers.get(`content-type`)||``;return r.ok?s.includes(i.json)?await D(r):{errors:{networkStatusCode:a,message:m(`${n} ${s}`),response:r}}:{errors:{networkStatusCode:a,message:m(o),response:r}}}catch(e){return{errors:{message:h(e),...r==null?{}:{networkStatusCode:r.status,response:r}}}}}}async function*A(e){let t=new TextDecoder;if(e.body[Symbol.asyncIterator])for await(let n of e.body)yield t.decode(n);else{let n=e.body.getReader(),r;try{for(;!(r=await n.read()).done;)yield t.decode(r.value)}finally{n.cancel()}}}function j(e,t){return{async*[Symbol.asyncIterator](){try{let n=``;for await(let r of e)if(n+=r,n.indexOf(t)>-1){let e=n.lastIndexOf(t),r=n.slice(0,e).split(t).filter(e=>e.trim().length>0).map(e=>e.slice(e.indexOf(p)+p.length).trim());r.length>0&&(yield r),n=n.slice(e+t.length),n.trim()===`--`&&(n=``)}}catch(e){throw Error(`Error occured while processing stream payload - ${h(e)}`)}}}}function M(e){return{async*[Symbol.asyncIterator](){try{yield{...await D(e),hasNext:!1}}catch(t){yield{errors:{message:m(h(t)),networkStatusCode:e.status,response:e},hasNext:!1}}}}}function N(e){return e.map(e=>{try{return JSON.parse(e)}catch(e){throw Error(`Error in parsing multipart response - ${h(e)}`)}}).map(e=>{let{data:t,incremental:n,hasNext:r,extensions:i,errors:a}=e;if(!n)return{data:t||{},...y(`errors`,a),...y(`extensions`,i),hasNext:r};let o=n.map(({data:e,path:t,errors:n})=>({data:e&&t?b(t,e):{},...y(`errors`,n)}));return{data:o.length===1?o[0].data:S(o.map(({data:e})=>e)),...y(`errors`,_(o)),hasNext:r}})}function P(e,n){if(e.length>0)throw Error(t,{cause:{graphQLErrors:e}});if(Object.keys(n).length===0)throw Error(r)}
3function F(e,t){let n=(t??``).match(f),r=`--${n?n[1]:`-`}`;if(!e.body?.getReader&&!e.body?.[Symbol.asyncIterator])throw Error(`API multipart response did not return an iterable body`,{cause:e});let i=A(e),a={},o;return{async*[Symbol.asyncIterator](){try{let e=!0;for await(let t of j(i,r)){let n=N(t);o=n.find(e=>e.extensions)?.extensions??o;let r=_(n);a=S([a,...n.map(({data:e})=>e)]),e=n.slice(-1)[0].hasNext,P(r,a),yield{...y(`data`,a),...y(`extensions`,o),hasNext:e}}if(e)throw Error(`Response stream terminated unexpectedly`)}catch(t){let n=g(t);yield{...y(`data`,a),...y(`extensions`,o),errors:{message:m(h(t)),networkStatusCode:e.status,...y(`graphQLErrors`,n?.graphQLErrors),response:e},hasNext:!1}}}}}function I(e){return async(...t)=>{if(!d.test(t[0]))throw Error(m(`This operation does not result in a streamable response - use request() instead.`));try{let r=await e(...t),{statusText:a}=r;if(!r.ok)throw Error(a,{cause:r});let o=r.headers.get(`content-type`)||``;switch(!0){case o.includes(i.json):return M(r);case o.includes(i.multipart):return F(r,o);default:throw Error(`${n} ${o}`,{cause:r})}}catch(e){return{async*[Symbol.asyncIterator](){let t=g(e);yield{errors:{message:m(h(e)),...y(`networkStatusCode`,t?.status),...y(`response`,t)},hasNext:!1}}}}}}function L({client:e,storeDomain:t}){try{if(!t||typeof t!=`string`)throw Error();let e=t.trim(),n=e.match(/^https?:/)?e:`https://${e}`,r=new URL(n);return r.protocol=`https`,r.origin}catch(n){throw Error(`${e}: a valid store domain ("${t}") must be provided`,{cause:n})}}function R({client:e,currentSupportedApiVersions:t,apiVersion:n,logger:r}){let i=`${e}: the provided apiVersion ("${n}")`,a=`Currently supported API versions: ${t.join(`, `)}`;if(!n||typeof n!=`string`)throw Error(`${i}
3 is invalid. ${a}`);let o=n.trim();t.includes(o)||(r?r({type:`Unsupported_Api_Version`,content:{apiVersion:n,supportedApiVersions:t}}):console.warn(`${i} is likely deprecated or not supported. ${a}`))}function z(e){let t=e*3-2;return t===10?t:`0${t}`}function B(e,t,n){let r=t-n;return r<=0?`${e-1}-${z(r+4)}`:`${e}-${z(r)}`}function V(){let e=new Date,t=e.getUTCMonth(),n=e.getUTCFullYear(),r=Math.floor(t/3+1);return{year:n,quarter:r,version:`${n}-${z(r)}`}}function H(){let{year:e,quarter:t,version:n}=V(),r=t===4?`${e+1}-01`:`${e}-${z(t+1)}`;return[B(e,t,3),B(e,t,2),B(e,t,1),n,r,`unstable`]}function U(e){return t=>({...t,...e.headers})}function W({getHeaders:e,getApiUrl:t}){return(n,r)=>{let i=[n];if(r&&Object.keys(r).length>0){let{variables:n,apiVersion:a,headers:o,retries:s,signal:c}=r;i.push({...n?{variables:n}:{},...o?{headers:e(o)}:{},...a?{url:t(a)}:{},...s?{retries:s}:{},...c?{signal:c}:{}})}return i}}var G=`application/json`,K=`storefront-api-client`,q=`2.0.0`,J=`X-Shopify-Storefront-Access-Token`,Y=`Shopify-Storefront-Private-Token`,X=`X-SDK-Variant`,Z=`X-SDK-Version`,Q=`X-SDK-Variant-Source`,$=`Storefront API Client`;function ee(e){if(e&&typeof window<`u`)throw Error(`${$}: private access tokens and headers should only be used in a server-to-server implementation. Use the public API access token in nonserver environments.`)}function te(e,t){if(!e&&!t)throw Error(`${$}: a public or private access token must be provided`);if(e&&t)throw Error(`${$}: only provide either a public or private access token`)}function ne({storeDomain:e,apiVersion:t,publicAccessToken:n,privateAccessToken:r,clientName:i,retries:a=0,customFetchApi:o,logger:s}){let c=H(),l=L({client:$,storeDomain:e}),u={client:$,currentSupportedApiVersions:c,logger:s};R({...u,apiVersion:t}),te(n,r),ee(r);let d=re(l,t,u),f={storeDomain:l,apiVersion:t,...n?{publicAccessToken:n}:{privateAccessToken:r},headers:{"Content-Type":G,Accept:G,[X]:K,[Z]:q,...i?{[Q]:i}:{},...n?{[J]:n}:{[Y]:r}},apiUrl:d(),clientName:i},p=T({headers:f.headers,url:f.apiUrl,retries:a,customFetchApi:o,logger:s}),m=U(f),h=ie(f,d),g=W({getHeaders:m,getApiUrl:h});return Object.freeze({config:f,getHeaders:m,getApiUrl:h,fetch:(...e)=>p.fetch(...g(...e)),request:(...e)=>p.request(...g(...e)),requestStream:(...e)=>p.requestStream(...g(...e))})}function re(e,t,n){return r=>(r&&R({...n,apiVersion:r}),`${e}/api/${(r??t).trim()}/graphql.json`)}function ie(e,t){return n=>n?t(n):e.apiUrl}export{ne as t};
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.