@faststore/api 4.4.0 → 4.5.0-dev.0

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.
package/dist/cjs/index.js CHANGED
@@ -1,10 +1,10 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ge=require("@graphql-tools/merge"),He=require("@graphql-tools/schema"),z=require("@graphql-tools/utils"),N=require("@faststore/diagnostics"),ee=require("graphql"),J=require("cookie"),kn=require("isomorphic-unfetch"),ve=require("p-limit"),ae=require("dataloader"),_n=require("sanitize-html"),Oe=require("fast-deep-equal"),Fn=require("node:crypto");var Xe=(e=>(e.Accepted="accepted",e.Denied="denied",e.Pending="pending",e))(Xe||{}),Ye=(e=>(e.Brand="Brand",e.Category="Category",e.Cluster="Cluster",e.Collection="Collection",e.Department="Department",e.SubCategory="SubCategory",e))(Ye||{}),Je=(e=>(e.Boolean="BOOLEAN",e.Range="RANGE",e))(Je||{}),Ke=(e=>(e.DiscountDesc="discount_desc",e.NameAsc="name_asc",e.NameDesc="name_desc",e.OrdersDesc="orders_desc",e.PriceAsc="price_asc",e.PriceDesc="price_desc",e.ReleaseDesc="release_desc",e.ScoreDesc="score_desc",e))(Ke||{}),Qe=(e=>(e.Error="ERROR",e.Info="INFO",e.Warning="WARNING",e))(Qe||{}),Ze=(e=>(e.Input="Input",e.Output="Output",e))(Ze||{});const Rn=()=>function(n={}){const t=process.env.FS_DISCOVERY_APP_KEY??"",r=process.env.FS_DISCOVERY_APP_TOKEN??"";if(!t||!r)throw new K("No authentication AppKey and AppToken passed.");return{...n,"X-VTEX-API-AppKey":t,"X-VTEX-API-AppToken":r}},Nn=async e=>{const{clients:{commerce:n}}=e;try{if((await n.vtexid.validate())?.authStatus?.toLowerCase()!=="success")throw new Y("Authentication required")}catch(t){const r=t.extensions?.status??t.status;throw r===401?new Y("Authentication required"):r===403?new K("You are not allowed to access this resource"):new Y("Authentication required")}},Ln="auth",en={typeDefs:"directive @auth on FIELD_DEFINITION",transformer:e=>z.mapSchema(e,{[z.MapperKind.OBJECT_FIELD]:n=>{if(z.getDirective(e,n,Ln)?.[0]){const r=n.resolve;n.resolve=async(i,a,o,s)=>(await Nn(o),r?.(i,a,o,s))}return n}})},Bn="cacheControl",Mn=(e,n)=>{const{scope:t="private",sMaxAge:r=0,staleWhileRevalidate:i=0}=e;return`${n?"private":t}, s-maxage=${r}, stale-while-revalidate=${i}`},De=(e,n)=>typeof e=="number"&&typeof n=="number"?e>n?n:e:typeof e=="number"?e:n,$n=(e,n)=>typeof e=="string"&&typeof n=="string"?e==="public"&&n==="public"?"public":"private":e||n,nn={typeDefs:"directive @cacheControl(sMaxAge: Int, staleWhileRevalidate: Int, scope: String) on FIELD_DEFINITION",transformer:e=>z.mapSchema(e,{[z.MapperKind.OBJECT_FIELD]:n=>{const t=z.getDirective(e,n,Bn)?.[0];if(t){const{sMaxAge:r,staleWhileRevalidate:i,scope:a}=t,o=n.resolve;n.resolve=(s,l,d,g)=>(d.cacheControl={sMaxAge:De(d.cacheControl?.sMaxAge,r),staleWhileRevalidate:De(d.cacheControl?.staleWhileRevalidate,i),scope:$n(d.cacheControl?.scope,a)},o?.(s,l,d,g))}return n}})},tn=e=>(n,t)=>{const r=Ge.mergeTypeDefs([...(e??[]).map(({typeDefs:i})=>i),t]);return(e??[]).reduce((i,{transformer:a})=>a?.(i)??i,He.makeExecutableSchema({typeDefs:r,resolvers:n}))},ce="@faststore/api",le="4.4.0-dev.6",Pe={name:ce,version:le},zn=(e,n)=>(t,r,i,a)=>{if((i?.OTEL?.enabled??!1)===!1)return e(t,r,i,a);const o=N.OTELAPI.trace.getTracer(ce,le),s=N.OTELAPI.propagation.extract(N.OTELAPI.context.active(),i.OTEL);return N.OTELAPI.context.with(s,()=>{const l=o.startSpan(n??"Unknown Graphql Resolver",{startTime:Date.now(),kind:N.OTELAPI.SpanKind.INTERNAL,attributes:{timestamp:Date.now(),"@faststore_version":le,"@faststore_package_name":ce,"@faststore_account_name":i.account,"@faststore_environment":process.env.NODE_ENV}});if(!l)return e(t,r,i,a);try{const d=e(t,r,i,a);return d instanceof Promise?d.then(g=>(l.end(),g)):(l.end(),d)}catch(d){throw l.end(),console.error(`Error when executing resolver: ${n}`,d),d}})};class q extends Error{constructor(n,t){super(t),this.extensions=n,this.name="FastStoreError"}}class T extends q{constructor(n){super({status:400,type:"BadRequestError"},n)}}class Y extends q{constructor(n){super({status:401,type:"UnauthorizedError"},n)}}class K extends q{constructor(n){super({status:403,type:"ForbiddenError"},n)}}class L extends q{constructor(n){super({status:404,type:"NotFoundError"},n)}}const Vn=e=>e?.name==="FastStoreError",xn=e=>e?.extensions?.type==="BadRequestError",qn=e=>e?.extensions?.type==="UnauthorizedError",rn=e=>e?.extensions?.type==="ForbiddenError",Ce=e=>e?.extensions?.type==="NotFoundError",jn=`${Pe.name}@${Pe.version}`,y=async(e,n,t)=>{const r=await kn(e,{...n,headers:{...n?.headers??{},"User-Agent":jn}});if(r.ok)return t?.storeCookies&&t.storeCookies(r.headers),r.status!==204?r.json():void 0;console.error(e,n,r);const i=await r.text();if(typeof r?.status=="number")switch(r.status){case 400:throw new T(i);case 401:throw new Y(i);case 403:throw new K(i);case 404:throw new L(i);default:throw new q({status:r.status,type:"UnknownError"},i)}throw new Error(i)},an=e=>{if(!e)return e;const n=new Map,t=e.split(";"),r=[];return t.forEach(i=>{const a=i.trim();if(a){const o=a.indexOf("=");if(o>0){const s=a.substring(0,o),l=a.substring(o+1);n.has(s)||r.push(s),n.set(s,l)}}}),r.map(i=>`${i}=${n.get(i)}`).join("; ")},Wn=/^([^=]+)=([^;]*)/,Gn=(e,n)=>{const t=n.match(Wn);if(t){const r=t[1],i=t[2];e.storage.cookies.set(r,{value:i,setCookie:n})}},Hn=(e,n)=>{n.getSetCookie().forEach(t=>Gn(e,t))},Xn=e=>n=>Hn(e,n),on=e=>{if(!e.headers?.cookie)return null;const n=an(e.headers.cookie),t=Array.from(e.storage.cookies.entries());return t.length===0?n:t.reduce((r,[i,{value:a}])=>Yn(r,i,a),n)},sn=e=>function(t){const r=on(e);return r?{...t,cookie:r}:t},ne=(e,n)=>{const t=an(e);return J.parse(t)[`VtexIdclientAutCookie_${n}`]||""},Yn=(e,n,t)=>{const r=new RegExp(`(${n})=([^;]*)`),i=e.match(r);return i?e.replace(i[0],`${i[1]}=${t}`):`${e};${n}=${t}`};function te(e){return e?JSON.parse(Buffer.from(e.split(".")[1],"base64").toString()):null}const G={method:"POST",headers:{"content-type":"application/json"}},Jn=({account:e,environment:n,incrementAddress:t,subDomainPrefix:r},i)=>{const a=`https://${e}.${n}.com.br`,o=Xn(i),s=sn(i),l=Rn(),d=new Headers(i.headers).get("x-forwarded-host")??i.headers?.host??"",g=r&&r.map(c=>c+".").find(c=>d.includes(c))||"",p=d.replace(g,"");return{catalog:{salesChannel:c=>y(`${a}/api/catalog_system/pub/saleschannel/${c}`,void 0,{storeCookies:o}),brand:{list:()=>y(`${a}/api/catalog_system/pub/brand/list`,void 0,{storeCookies:o})},category:{tree:(c=3)=>y(`${a}/api/catalog_system/pub/category/tree/${c}`,void 0,{storeCookies:o})},portal:{pagetype:c=>y(`${a}/api/catalog_system/pub/portal/pagetype/${c}`,void 0,{storeCookies:o})},products:{crossselling:({type:c,productId:u,groupByProduct:m=!0})=>{const S=new URLSearchParams({sc:i.storage.channel.salesChannel,groupByProduct:m.toString()});return y(`${a}/api/catalog_system/pub/products/crossselling/${c}/${u}?${S}`,void 0,{storeCookies:o})}}},checkout:{simulation:(c,{salesChannel:u}=i.storage.channel)=>{const m=new URLSearchParams({sc:u}),S=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForms/simulation?${m.toString()}`,{...G,headers:S,body:JSON.stringify(c)},{storeCookies:o})},shippingData:({id:c,index:u,deliveryMode:m,selectedAddresses:S},f)=>{const I=f?{startDateUtc:m?.deliveryWindow?.startDate,endDateUtc:m?.deliveryWindow?.endDate}:null,D={logisticsInfo:Array.from({length:u},(P,O)=>({itemIndex:O,selectedDeliveryChannel:m?.deliveryChannel||null,selectedSla:m?.deliveryMethod||null,deliveryWindow:I})),selectedAddresses:S,clearAddressIfPostalCodeNotFound:t},E=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${c}/attachments/shippingData`,{...G,headers:E,body:JSON.stringify(D)},{storeCookies:o})},marketingData:({id:c,marketingData:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${c}/attachments/marketingData`,{headers:m,body:JSON.stringify(u),method:"POST"},{storeCookies:o})},clientPreferencesData:({id:c,clientPreferencesData:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${c}/attachments/clientPreferencesData`,{headers:m,body:JSON.stringify(u),method:"POST"},{storeCookies:o})},orderForm:({id:c,refreshOutdatedData:u=!0,channel:m=i.storage.channel})=>{const{salesChannel:S}=m,f=s({"content-type":"application/json","X-FORWARDED-HOST":p}),I=new URLSearchParams({sc:S});c&&I.set("refreshOutdatedData",u.toString());const D=`${a}/api/checkout/pub/orderForm${c?`/${c}`:""}?${I.toString()}`;return y(D,{...G,headers:f,...c?{}:{body:"{}"}},{storeCookies:o})},clearOrderFormMessages:({id:c})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${c}/messages/clear`,{...G,headers:u,body:"{}"})},updateOrderFormItems:({id:c,orderItems:u,allowOutdatedData:m="paymentData",salesChannel:S=i.storage.channel.salesChannel,shouldSplitItem:f=!0})=>{const I=new URLSearchParams({allowOutdatedData:m,sc:S}),D=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${c}/items?${I}`,{headers:D,body:JSON.stringify({orderItems:u,noSplitItem:!f}),method:"PATCH"},{storeCookies:o})},setCustomData:({id:c,appId:u,key:m,value:S})=>{const f=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${c}/customData/${u}/${m}`,{headers:f,body:JSON.stringify({value:S}),method:"PUT"})},region:async({postalCode:c,geoCoordinates:u,country:m,salesChannel:S})=>{const f=new URLSearchParams({country:m,sc:S??""});c?f.append("postalCode",c):f.append("geoCoordinates",`${u?.longitude};${u?.latitude}`);const I=`${a}/api/checkout/pub/regions/?${f.toString()}`,D=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(I,{headers:D},{storeCookies:o})},address:async({postalCode:c,country:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/postal-code/${u}/${c}`,{headers:m},{storeCookies:o})},cancelOrder:({orderId:c,customerEmail:u,reason:m})=>{const S=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orders/${c}/user-cancel-request`,{method:"POST",headers:S,body:JSON.stringify({customerEmail:u,reason:m})},{})},pickupPoints:({geoCoordinates:c})=>{if(!c)throw new Error("Missing required parameter for listing pickup points.");const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/logistics-shipping/pickuppoints/_search`,{method:"POST",headers:u,body:JSON.stringify({coordinate:c})},{storeCookies:o})}},session:c=>{const u=new URLSearchParams(c);u.set("items","profile.id,profile.email,profile.firstName,profile.lastName,profile.phone,shopper.firstName,shopper.lastName,shopper.organizationManager,store.channel,store.countryCode,store.cultureInfo,store.currencyCode,store.currencySymbol,authentication.customerId,authentication.storeUserId,authentication.storeUserEmail,authentication.unitId,authentication.unitName,checkout.regionId,public.postalCode");const m=s({"content-type":"application/json"}),S=J.parse(i?.headers?.cookie??"")?.vtex_session;return y(`${a}/api/sessions?${u.toString()}`,{method:S?"PATCH":"POST",headers:m,body:"{}"},{storeCookies:o})},subscribeToNewsletter:c=>y(`${a}/api/dataentities/NL/documents/`,{...G,body:JSON.stringify({...c,isNewsletterOptIn:!0}),method:"PATCH"},{storeCookies:o}),profile:{addresses:async c=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/profile-system/pvt/profiles/${c}/addresses`,{headers:u},{storeCookies:o})}},oms:{userOrder:({orderId:c})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/oms/user/orders/${c}`,{method:"GET",headers:u},{storeCookies:o})},listUserOrders:({page:c,status:u,dateInitial:m,dateFinal:S,text:f,clientEmail:I,perPage:D,pendingMyApproval:E})=>{const P=new URLSearchParams;if(m){const w=new Date(m).setHours(0,0,0,0);m=new Date(w).toISOString()}if(S){const w=new Date(S).setHours(23,59,59,999);S=new Date(w).toISOString()}f&&P.append("text",f),u&&u.length>0&&P.append("status",u.filter(Boolean).join(",")),m&&S?P.append("creation_date",`creationDate:[${m} TO ${S}]`):m?P.append("creation_date",`creationDate:[${m} TO *]`):S&&P.append("creation_date",`creationDate:[* TO ${S}]`),I&&P.append("clientEmail",I),c&&P.append("page",c.toString()),D&&P.append("per_page",D.toString()),E&&P.append("my_pending_approvals",String(!0));const O=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/oms/user/orders?${P.toString()}`,{method:"GET",headers:O},{storeCookies:o})},getCommercialAuthorizationsByOrderId:({orderId:c})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/${e}/commercial-authorizations/order/${c}`,{method:"GET",headers:u},{storeCookies:o})},processOrderAuthorization:async({orderAuthorizationId:c,dimensionId:u,ruleId:m,approved:S})=>{const f=s({"content-type":"application/json","X-FORWARDED-HOST":p}),E={params:{ruleId:m,dimensionId:u,score:S?100:0}};return y(`${a}/${e}/commercial-authorizations/${c}/callback`,{method:"POST",headers:f,body:JSON.stringify(E)},{storeCookies:o})}},units:{getUnitByUserId:({userId:c})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/units/v1/${c}/unit`,{method:"GET",headers:u},{})},getOrgUnitById:({orgUnitId:c})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/units/v1/${c}`,{method:"GET",headers:u},{})},getScopesByOrgUnit:({orgUnitId:c})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/units/v1/${c}/scopes`,{method:"GET",headers:u},{})}},licenseManager:{getUserById:({userId:c})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/license-manager/users/${c}`,{method:"GET",headers:u},{})},getUserByEmail:({email:c})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/license-manager/pvt/users/${c}`,{method:"GET",headers:u},{})},getUserRoles:({userId:c})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/license-manager/storefront/users/${c}/roles`,{method:"GET",headers:u},{})}},masterData:{getContractById:({contractId:c})=>{if(!c)throw new T("Missing contractId to fetch CL fields.");const u=l({Accept:"application/json","content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/dataentities/CL/documents/${c}?_fields=_all`,{method:"GET",headers:u},{})},getShopperById:({userId:c})=>{if(!c)throw new T("Missing userId to fetch shopper name.");const u=l({Accept:"application/json","content-type":"application/json","X-FORWARDED-HOST":p}),m=c.replace(/-/g,"");return y(`${a}/api/dataentities/shopper/search?_where=(userId=${m} OR userId=${c})&_fields=_all&_schema=v1`,{method:"GET",headers:u},{})}},vtexid:{validate:()=>{const c=s({"content-type":"application/json","X-FORWARDED-HOST":p}),u=ne(on(i)??"",e);return y(`${a}/api/vtexid/credential/validate`,{headers:c,body:JSON.stringify({token:u}),method:"POST"},{storeCookies:o})}},orderEntry:{uploadFile:({fileBuffer:c,fileName:u,mimeType:m})=>{const S=s({"content-type":"application/json","X-FORWARDED-HOST":p}),f=`----FastStoreUploadBoundary${Date.now()}`,I=`\r
2
- `,E=/^[a-zA-Z0-9][a-zA-Z0-9!#$&\-.^_]*\/[a-zA-Z0-9][a-zA-Z0-9!#$&\-.^_+]*$/.test(m)?m:"application/octet-stream",P=u.replaceAll(/[\r\n"]/g,"_"),O=[`--${f}`,`Content-Disposition: form-data; name="file"; filename="${P}"`,`Content-Type: ${E}`,"",""].join(I),w=`${I}--${f}--${I}`,h=Buffer.from(O),b=Buffer.from(w),C=new Uint8Array(h.byteLength+c.byteLength+b.byteLength);let A=0;return C.set(h,A),A+=h.byteLength,C.set(c,A),A+=c.byteLength,C.set(b,A),y(`${a}/api/order-entry/upload?an=${e}`,{method:"POST",headers:{...S,"content-type":`multipart/form-data; boundary=${f}`},body:C.buffer},{})},startOperation:({objectKey:c,orderFormId:u,sessionToken:m})=>{const S=s({"content-type":"application/json","X-FORWARDED-HOST":p}),f=JSON.stringify({objectKey:c,orderFormId:u,operation:"CreateCart",...m?{sessionToken:m}:{}});return y(`${a}/api/order-entry/operation?an=${e}`,{method:"POST",headers:S,body:f},{})},getOperation:({operationId:c})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/order-entry/operation/${c}?an=${e}`,{method:"GET",headers:u},{})},createOrderForm:()=>{const c=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm?sc=${i.storage.channel.salesChannel}`,{method:"POST",headers:c,body:"{}"},{})},getOrderFormItems:({orderFormId:c})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${c}`,{method:"GET",headers:u},{})}}}},de="fuzzy",ue="operator",pe="pickupPoint",we="shipping",Ae="delivery-options",Kn="in-stock",Qn="trade-policy",Zn="region-id",et=new Set([Qn,Zn,de,ue,pe]),nt=new Set(["zip-code","pickupPoint","country","coordinates","deliveryZonesHash","pickupPointsHash"]),tt=new Set(["productClusterIds"]),Ee=e=>encodeURI(decodeURI(e)),rt=e=>encodeURIComponent(decodeURIComponent(e).normalize("NFD").replaceAll(/[\u0300-\u036f]/g,"")),it=/^pickup-in-point-(.+)$/;function cn(e){if(!e)return{};try{const t=J.parse(e).vtex_segment;if(!t)return{};const r=Buffer.from(t,"base64").toString("utf-8");return JSON.parse(r)}catch{return{}}}function at(e){const n={},t={},r=[];for(const i of e.split(";")){const a=i.indexOf("=");if(a<0)continue;const o=i.slice(0,a),s=i.slice(a+1);!o||!s||(nt.has(o)?n[o]=s:tt.has(o)?t[o]=s:r.push({key:o,value:s}))}return{shipping:n,queryParams:t,extraFacets:r}}function ot(e){const n=typeof e.facets=="string"?e.facets:"",{shipping:t,queryParams:r,extraFacets:i}=at(n);return{segmentParams:{sc:e.channel,regionId:e.regionId,country:e.countryCode??t.country,locale:e.cultureInfo,"zip-code":t["zip-code"],coordinates:t.coordinates,pickupPoint:t.pickupPoint,deliveryZonesHash:t.deliveryZonesHash,pickupPointHash:t.pickupPointsHash,utmSource:e.utm_source??void 0,utmCampaign:e.utm_campaign??void 0,utmiCampaign:e.utmi_campaign??void 0,campaigns:typeof e.campaigns=="string"?e.campaigns:void 0,priceTables:e.priceTables??void 0,productClusterIds:r.productClusterIds},extraFacets:i}}function ln(e,n){const t=[["sc",n.sc],["regionId",n.regionId],["country",n.country],["locale",n.locale],["zip-code",n["zip-code"]],["coordinates",n.coordinates],["pickupPoint",n.pickupPoint],["deliveryZonesHash",n.deliveryZonesHash],["pickupPointHash",n.pickupPointHash],["utmSource",n.utmSource],["utmCampaign",n.utmCampaign],["utmiCampaign",n.utmiCampaign],["campaigns",n.campaigns],["priceTables",n.priceTables],["productClusterId",n.productClusterIds]];for(const[r,i]of t)i!=null&&i!==""&&e.append(r,String(i))}function dn(e){return it.exec(e)?.[1]}function st(e){const n=e.find(r=>r.key==="shipping"),t=n?dn(n.value):void 0;if(t!==void 0)try{return decodeURIComponent(t)}catch{return t}}function ct(e,n){const t=st(n);return t===void 0?e:{...e,pickupPoint:t}}function lt(e){return e.map(n=>n.key!=="shipping"||dn(n.value)===void 0?n:{...n,value:"pickup-in-point"})}function dt(e,n){let t=[...e];const r=t.some(i=>i.key==="shipping");for(const i of n)(!r||i.key!=="shipping")&&t.push(i);return t.some(i=>i.key==="shipping"&&i.value==="ignore")&&(t=t.filter(i=>i.key!=="shipping")),lt(t)}function ut(e){return e.reduce((n,t)=>{let{key:r,value:i}=t;return r==="priceRange"&&(r="price",i=i.replace(" TO ",":")),r==="ft"?n:`${n}${Ee(r)}/${rt(Ee(i)).replaceAll(/ |%20/g,"-")}/`},"")}const pt=e=>e.key==="fuzzy"&&(e.value==="0"||e.value==="1"||e.value==="auto"),gt=e=>e.key==="operator"&&(e.value==="and"||e.value==="or");function mt(e,n){const{segmentParams:t,extraFacets:r}=ot(e??{}),i=n?.salesChannel??t.sc,a=n?.regionId??t.regionId,o=n?.locale??t.locale??"";return{segmentParams:{...t,...i?{sc:i}:{},...a?{regionId:a}:{},locale:o},extraFacets:r}}function ht(e,n){const t=e.filter(({key:l})=>!et.has(l)),r=e.find(({key:l,value:d})=>l===we&&d!=="all-delivery-methods")??null,i=e.find(({key:l,value:d})=>l===Ae&&d!=="all-delivery-options")??null,a=[...t],o=a.some(({key:l})=>l===we),s=a.some(({key:l})=>l===Ae);return r!==null&&!o&&a.push(r),i!==null&&!s&&a.push(i),dt(a,n)}function ft(e,n){const t=e.find(({key:a})=>a===de)??null,r=e.find(({key:a})=>a===ue)??null,i=e.find(({key:a})=>a===pe)??null;t&&pt(t)&&n.append(de,t.value),r&&gt(r)&&n.append(ue,r.value),i&&n.append(pe,i.value)}function Te(e,n,t,r){const{query:i="",page:a,count:o,sort:s,selectedFacets:l=[],showInvisibleItems:d,sponsoredCount:g,hideUnavailableItems:p,allowRedirect:c=!1}=e,u=new URLSearchParams;if(r.includePagination&&a!==void 0&&o!==void 0){const f=a*o,I=o===0?f:f+o-1;u.append("from",f.toString()),u.append("to",I.toString())}i&&u.append("query",i),r.includeSort&&s&&u.append("sort",s);const m=ct(t.segmentParams,l);if(ln(u,m??t.segmentParams),ft(l,u),d&&u.append("show-invisible-items","true"),n?.hideUnavailableItems!==void 0){const f=l.find(({key:D})=>D===Kn),I=f?f.value:p?.toString()??n.hideUnavailableItems.toString();u.append("hideUnavailableItems",I)}n?.simulationBehavior!==void 0&&u.append("simulationBehavior",n.simulationBehavior.toString()),n?.showSponsored!==void 0&&u.append("showSponsored",n.showSponsored.toString()),g!==void 0&&u.append("sponsoredCount",g.toString()),c!==void 0&&u.append("allowRedirect",c.toString());const S=ut(ht(l,t.extraFacets));return{params:u,path:S}}function St(e,n){const{field:t,value:r,hideUnavailableItems:i,showInvisibleItems:a}=e,o=new URLSearchParams({field:t??"",value:r??""});return ln(o,n),i&&o.append("hideUnavailableItems","true"),a&&o.append("show-invisible-items","true"),o}function H(e,n){return{path:e,params:n,toString(){const t=n.toString();return e?t?`${e}?${t}`:e:t?`?${t}`:""}}}function X(e){const{endpoint:n,segment:t,defaults:r,args:i={}}=e,a=mt(t,r);switch(n){case"product-search":case"facets":{const{params:o,path:s}=Te(i,r,a,{includePagination:!0,includeSort:!0});return H(s,o)}case"catalog-count":{const{params:o,path:s}=Te(i,r,a,{includePagination:!1,includeSort:!1});return H(s,o)}case"products":{const o=St(i,a.segmentParams);return H("",o)}case"search-suggestions":{const o=new URLSearchParams({query:i.query?.toString()??"",locale:r?.locale??a.segmentParams.locale??""});return H("",o)}case"top-searches":{const o=new URLSearchParams({locale:r?.locale??a.segmentParams.locale??""});return H("",o)}default:{const o=n;throw new Error(`Unknown intelligent-search endpoint: ${o}`)}}}const yt=10;function It(e){const{regionId:n,seller:t}=e.storage.channel;return(t?Buffer.from(`SW#${t}`).toString("base64"):void 0)??(n||void 0)}function vt(e){const n=cn(e.headers?.cookie);return e.storage.locale||n.cultureInfo||""}const Ot=({account:e,environment:n,hideUnavailableItems:t,simulationBehavior:r,showSponsored:i,subDomainPrefix:a},o)=>{const s=`https://${e}.${n}.com.br`,l=sn(o),d=cn(o.headers?.cookie),g=()=>({salesChannel:o.storage.channel.salesChannel,regionId:It(o),locale:vt(o),hideUnavailableItems:t,simulationBehavior:r,showSponsored:i}),p=new Headers(o.headers).get("x-forwarded-host")??o.headers?.host??"",c=a&&a.map(h=>h+".").find(h=>p.includes(h))||"",u=p.replace(c,""),m=l({"content-type":"application/json","X-FORWARDED-HOST":u}),S=({type:h,...b})=>{const C=h==="facets"?"facets":"product-search",A=X({endpoint:C,segment:d,defaults:g(),args:b});return y(`${s}/api/intelligent-search/v1/${C}/${A.path}?${A.params.toString()}`,{headers:m})},f=h=>S({...h,type:"product_search"}),I=({field:h,value:b,hideUnavailableItems:C,showInvisibleItems:A})=>{const v=X({endpoint:"products",segment:d,defaults:g(),args:{field:h,value:b,hideUnavailableItems:C,showInvisibleItems:A}});return y(`${s}/api/intelligent-search/v1/products?${v.params.toString()}`,{headers:m})};return{facets:h=>S({...h,type:"facets"}),products:f,fetchProduct:I,productsByIdentifier:async({field:h,values:b,showInvisibleItems:C,hideUnavailableItems:A})=>{const v=ve(yt);return(await Promise.all(b.map(_=>v(async()=>{try{return await I({field:h,value:_,hideUnavailableItems:A,showInvisibleItems:C})}catch{return null}})))).filter(_=>_!==null)},suggestedTerms:h=>{const b=X({endpoint:"search-suggestions",segment:d,defaults:g(),args:{query:h.query}});return y(`${s}/api/intelligent-search/v1/search-suggestions?${b.params.toString()}`,{headers:m})},topSearches:()=>{const h=X({endpoint:"top-searches",segment:d,defaults:g()});return y(`${s}/api/intelligent-search/v1/top-searches?${h.params.toString()}`,{headers:m})},productCount:h=>{const b=X({endpoint:"catalog-count",segment:d,defaults:g(),args:h});return y(`${s}/api/intelligent-search/v1/catalog-count/${b.path}?${b.params.toString()}`,{headers:m})}}},Ct=(e,n)=>{const t=Ot(e,n),r=Jn(e,n);return{search:t,commerce:r}},bt=20,Dt=new Set(["brand","category","department","subcategory","collection","cluster"]),V=e=>typeof e.pageType=="string"&&Dt.has(e.pageType.toLowerCase()),Pt=(e,n)=>{const t=ve(bt),r=async i=>Promise.all(i.map(a=>t(async()=>{const o=await n.commerce.catalog.portal.pagetype(a);if(V(o))return o;throw new L(`Catalog returned ${o.pageType} for slug: ${a}. This usually happens when there is more than one category with the same name in the same category tree level.`)})));return new ae(r,{batch:!1})},wt=(e,n)=>{const t=async r=>Promise.all(r.map(i=>n.commerce.catalog.salesChannel(i)));return new ae(t)},At=1,Et=(e,n)=>{const t=ve(At),r=async a=>{const o=a.reduce((p,{items:c})=>[...p,c],[]),s=[...o.flat()],l=await n.commerce.checkout.simulation({country:a[0].country,postalCode:a[0].postalCode,items:s}),d=l.items.reduce((p,c)=>{const u=c.requestIndex;return typeof u=="number"&&u<p.length&&(p[u]=c),p},Array(s.length).fill(null)),g=o.reduce((p,c)=>[...p,c.length+p[p.length-1]],[0]);return o.map((p,c)=>({...l,items:d.slice(g[c],g[c+1]).filter(u=>!!u)}))},i=async a=>t(r,a);return new ae(i,{maxBatchSize:50})},Tt=(e,n)=>_n(e,n);function Ut(e){return{...e,description:e.description?Tt(e.description):e.description}}const B=(e,n)=>({...e,isVariantOf:Ut(n)}),kt=({flags:e},n)=>{const t=async r=>{const i=r.map(g=>g.split("-")[0]),a=r.some(g=>g.split("-")[1]==="invisibleItems"),s=(await n.search.productsByIdentifier({field:"sku",values:i,showInvisibleItems:a,...e?.enableUnavailableItemsOnCart&&{hideUnavailableItems:!1}})).reduce((g,p)=>{for(const c of p.items)g[c.itemId]=B(c,p);return g},{}),l=i.map(g=>s[g]),d=i.filter(g=>!s[g]);if(d.length>0)throw new L(`Search API did not found the following skus: ${d.join(",")}`);return l};return new ae(t,{maxBatchSize:99})},_t=(e,{clients:n})=>{const t=kt(e,n),r=Et(e,n),i=Pt(e,n),a=wt(e,n);return{skuLoader:t,simulationLoader:r,collectionLoader:i,salesChannelLoader:a}},M=e=>e.AvailableQuantity>0,x=e=>e.spotPrice??0,Ft=e=>e.Price??0,Ue=e=>e?"https://schema.org/InStock":"https://schema.org/OutOfStock",un=(e,n)=>M(e)&&!M(n)?-1:!M(e)&&M(n)?1:x(e)-x(n),Rt=e=>e==="available",$=(e,n=0,t=1)=>{const r=n/t;return Math.round((e+r)*100)/100},Nt=(e,n={includeTaxes:!1})=>{const t=e.filter(M),r=t[t.length-1],i=r?x(r):0;return n.includeTaxes?$(i,r?.Tax,r?.product?.unitMultiplier):i},ke=(e,n={includeTaxes:!1})=>{const[t]=e.filter(M),r=t?x(t):0;return n.includeTaxes?$(r,t?.Tax,t?.product?.unitMultiplier):r},Lt={highPrice:e=>Nt(e),lowPrice:e=>ke(e),lowPriceWithTaxes:e=>ke(e,{includeTaxes:!0}),offerCount:e=>e.length,priceCurrency:async(e,n,t)=>{const{loaders:{salesChannelLoader:r},storage:{channel:i}}=t;return(await r.load(i.salesChannel)).CurrencyCode??""},offers:e=>e},Bt={ratingValue:()=>5,reviewCount:()=>0},_e="ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆÍÌÎÏŇÑÓÖÒÔÕØŘŔŠŤÚŮÜÙÛÝŸŽáäâàãåčçćďéěëèêẽĕȇíìîïňñóöòôõøðřŕšťúůüùûýÿžþÞĐđ߯a",Mt="AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa",$t=e=>{let n=e.slice(0);for(let t=0;t<_e.length;t++)n=n.replace(new RegExp(_e.charAt(t),"g"),Mt.charAt(t));return n},zt=e=>e.replace(/[·/_,:]/,"-");function pn(e){const t=e.replace(/,/g,"").replace(/[*+~.()'"!:@&\[\]`/ %$#?{}><=_^]/g,"-");return zt($t(t)).toLowerCase()}const Z=e=>e.type==="brand"||V(e)&&e.pageType.toLowerCase()==="brand",ge=e=>V(e)&&e.pageType.toLowerCase()==="collection",se=e=>Z(e)||ge(e)?pn(e.name):V(e)?new URL(`https://${e.url}`).pathname.slice(1).toLowerCase():new URL(e.url).pathname.slice(1).toLowerCase(),gn={id:({id:e})=>e.toString(),slug:e=>se(e),seo:e=>Z(e)||V(e)?{title:e.title??e.name,description:e.metaTagDescription}:{title:e.Title,description:e.MetaTagDescription},type:e=>Z(e)?"Brand":V(e)?e.pageType:e.level===0?"Department":"Category",meta:e=>{const n=se(e);return Z(e)?{selectedFacets:[{key:"brand",value:n}]}:ge(e)?{selectedFacets:[{key:"productclusterids",value:e.id}]}:{selectedFacets:n.split("/").map((t,r)=>({key:`category-${r+1}`,value:t}))}},breadcrumbList:async(e,n,t)=>{const{loaders:{collectionLoader:r}}=t,a=se(e).split("/").filter(l=>!!l),o=a.map((l,d)=>a.slice(0,d+1).join("/")),s=await Promise.all(o.map(async l=>{const d=await r.load(l);return{slug:l,...d}}));return{itemListElement:s.map((l,d)=>({item:ge(l)?`/${l.slug}`:new URL(`https://${l.url}`).pathname.toLowerCase(),name:l.name,position:d+1})),numberOfItems:s.length}}},mn={buy:"whoboughtalsobought",view:"whosawalsosaw",similars:"similars",viewAndBought:"whosawalsobought",accessories:"accessories",suggestions:"suggestions"},Fe=({key:e,value:n})=>{switch(e){case"price":return{key:e,value:n.replace("-to-",":")};case"channel":case"locale":case"buy":case"view":case"similars":case"viewAndBought":case"accessories":case"suggestions":return[];default:return{key:e,value:n}}},Re=e=>{const n=e.split(":").map(Number);return n.length!==2||Number.isNaN(n[0])||Number.isNaN(n[1])?null:n},Vt=e=>typeof mn[e]=="string",xt=e=>{const n=e?.filter(t=>Vt(t.key));if(Array.isArray(n)&&n.length>1)throw new T(`You passed ${n.length} cross selling facets but only one is allowed. Please leave one of the following facet: ${n.map(t=>t.key).join(",")}`);return n?.[0]??null},qt=e=>e?.find(n=>n.key==="slug")?.value??null,jt=e=>e?.find(n=>n.key==="id")?.value??null,Ne=e=>e?.find(n=>n.key==="locale")?.value??null,Le=e=>e?.find(n=>n.key==="channel")?.value??null,me=(e,n)=>{let t=0;for(let r=1;r<e.length;r++)n(e[t],e[r])>0&&(t=r);return e[t]},Wt={__resolveType:({type:e,values:n})=>e!=="TEXT"&&e!=="DELIVERY"?"StoreFacetRange":!n||n.length===0?"StoreFacetBoolean":n.every(t=>t.range)?"StoreFacetRange":"StoreFacetBoolean"},Gt={key:({key:e})=>e,label:({name:e})=>e,values:({values:e})=>e.sort((n,t)=>n.name.localeCompare(t.name))},Ht={key:({key:e})=>e,label:({name:e})=>e,min:({values:e,key:n},t,{storage:{searchArgs:r}})=>{const i=Re(r?.selectedFacets?.find(s=>s.key===n)?.value??""),o=me(e,(s,l)=>s.range.from-l.range.from)?.range?.from??0;return{selected:i?.[0]??o,absolute:o}},max:({values:e,key:n},t,{storage:{searchArgs:r}})=>{const i=Re(r?.selectedFacets?.find(s=>s.key===n)?.value??""),o=me(e,(s,l)=>l.range.to-s.range.to)?.range?.to??0;return{selected:i?.[1]??o,absolute:o}}},Xt={value:({value:e})=>e,label:({name:e})=>e||"unknown",selected:({selected:e})=>e,quantity:({quantity:e})=>e},Yt=async(e,{data:n},{clients:{commerce:t}})=>{if(!n?.orderId)throw new T("Missing orderId");return{data:(await t.checkout.cancelOrder(n))?.data}};function hn(e){if(!e||e.status!=="pending")return null;for(const n of e.dimensionStatus){if(n.status!=="pending")continue;const t=n.ruleCollection.find(r=>r.status==="pending"&&r.isUserNextAuthorizer);if(t)return{rule:t,orderAuthorizationId:e.id,dimensionId:n.id}}return null}function Jt(e){if(!e||e.status!=="pending")return!1;const n=e.dimensionStatus.filter(t=>t.status==="pending").flatMap(t=>t.ruleCollection).filter(t=>t.status==="pending");return n.length===0?!1:n.every(t=>!t.isUserNextAuthorizer)}const Kt=async(e,{data:n},{clients:{commerce:t}})=>{const r=await t.oms.processOrderAuthorization(n),i=hn(r);return{isPendingForOtherAuthorizer:!i&&Jt(r),ruleForAuthorization:i}},Qt=async(e,{data:n},{clients:{commerce:t}})=>{if(!n?.objectKey)throw new T("Missing objectKey");const r=n.orderFormId||(await t.orderEntry.createOrderForm()).orderFormId;return t.orderEntry.startOperation({objectKey:n.objectKey,orderFormId:r,sessionToken:n.sessionToken??void 0})},Zt=async(e,{data:n},{clients:{commerce:t}})=>({id:(await t.subscribeToNewsletter(n))?.Id}),er=async(e,{data:n},{clients:{commerce:t}})=>{const{fileContent:r,fileName:i,mimeType:a}=n;if(!r||!i||!a)throw new T("Missing required fields: fileContent, fileName, mimeType");const o=r.replaceAll(/\s/g,""),s=5*1024*1024;if(Math.floor(o.length*3/4)>s)throw new T("File exceeds maximum allowed size of 5MB");if(!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(o))throw new T("Invalid Base64 fileContent");const g=Buffer.from(o,"base64");return await t.orderEntry.uploadFile({fileBuffer:g,fileName:i,mimeType:a})};class re{static parse(n){try{const t=JSON.parse(n);return{seller:t.seller??"",regionId:t.regionId??"",salesChannel:t.salesChannel??"",hasOnlyDefaultSalesChannel:t.hasOnlyDefaultSalesChannel??!0}}catch(t){throw console.error(t),new Error("Malformed channel string")}}static stringify(n){return JSON.stringify(n)}}const he=(e,n)=>{e.storage.channel=re.parse(n)},fe=(e,n)=>{e.storage.locale=n},fn=e=>Fn.createHash("md5").update(e).digest("hex"),Q={attachment:"ATTACHMENT",specification:"SPECIFICATION",attribute:"ATTRIBUTE"};function Sn(e){return{name:e.name,value:e.content,valueReference:Q.attachment}}function nr(e){return{propertyID:e.id,name:e.name,value:e.value,valueReference:{valueReference:Q.attribute,visible:e.visible}}}function yn(e){return fn(`${e.name}:${JSON.stringify(e.value)}:${e.valueReference}`)}const tr=e=>{const n=e.postalCode,t=e.geoCoordinates,r={addressType:e.addressType||null,postalCode:n||null,city:null,state:null,country:e.country||null,street:null,number:null,neighborhood:null,complement:null,reference:null,geoCoordinates:[]};if(t){const i=typeof t=="object"&&"latitude"in t?t.latitude:null,a=typeof t=="object"&&"longitude"in t?t.longitude:null;r.geoCoordinates=i!==null&&a!==null?[a,i]:[]}return[r]},rr=(e,n,t)=>{const r=n.postalCode,i=n.geoCoordinates,a=e?.shippingData?.availableAddresses??[],o=e?.shippingData?.selectedAddresses??[];if(!t&&o.length>0)return[o[0]];if(t&&a.length>0)for(const s of a){if(r&&i&&(s.postalCode===r||s.geoCoordinates[0]===i.longitude&&s.geoCoordinates[1]===i.latitude))return[s];if(r&&!i&&s.postalCode===r)return[s];if(i&&!r&&s.geoCoordinates[0]===i.longitude&&s.geoCoordinates[1]===i.latitude)return[s]}return null},In=(e,n)=>{if(!ir(n))return{updateShipping:!1,addressChanged:!1};if(!cr(e))return{updateShipping:!1,addressChanged:!1};const[t]=e?.shippingData?.selectedAddresses??[];if(ar(t,n.postalCode)||or(t,n.geoCoordinates)||sr(t,n.addressType))return{updateShipping:!0,addressChanged:!0};const{logisticsInfo:r}=e.shippingData;return lr(r,n)?{updateShipping:!0,addressChanged:!1}:{updateShipping:!1,addressChanged:!1}},ir=e=>!!e.postalCode||e.geoCoordinates?.latitude&&e.geoCoordinates?.longitude,ar=(e,n)=>typeof n=="string"&&e?.postalCode!==n,or=(e,n)=>typeof n?.latitude=="number"&&typeof n?.longitude=="number"&&(e?.geoCoordinates[0]!==n?.longitude||e?.geoCoordinates[1]!==n?.latitude),sr=(e,n)=>typeof n=="string"&&e?.addressType!==n,cr=e=>e.items.length!==0,lr=(e,n)=>{const t=n?.deliveryMode?.deliveryChannel,r=n?.deliveryMode?.deliveryMethod,{startDate:i,endDate:a}=n?.deliveryMode?.deliveryWindow||{};return e.some(({selectedDeliveryChannel:o,selectedSla:s,slas:l})=>{const d=t&&o!==t,g=r&&s!==r;return l?.some(p=>d&&p.deliveryChannel===t||g&&p.id===r?!0:i&&a&&p.deliveryChannel===t&&p.id===r&&(!p?.deliveryWindow||p?.deliveryWindow?.startDateUtc!==i||p?.deliveryWindow?.endDateUtc!==a)&&p.availableDeliveryWindows?.some(c=>c?.startDateUtc===i&&c?.endDateUtc===a))})},vn=e=>e.valueReference===Q.attachment,Se=e=>[e.itemOffered.sku,e.seller.identifier,e.price<.01?"Gift":void 0,e.itemOffered.additionalProperty?.filter(vn).map(yn).join("-")].filter(Boolean).join("::"),ie=(e,n)=>({listPrice:e.listPrice/100,price:e.sellingPrice/100,quantity:e.quantity,seller:{identifier:e.seller},itemOffered:{sku:e.id,image:[],name:e.name,additionalProperty:e.attachments.map(Sn)},index:n}),dr=e=>({quantity:e.quantity,seller:e.seller.identifier,id:e.itemOffered.sku,index:e.index,attachments:(e.itemOffered.additionalProperty?.filter(vn)??[]).map(n=>({name:n.name,content:n.value}))}),Be=e=>e.reduce((n,t)=>{const r=Se(t);return n.has(r)||n.set(r,[]),n.get(r)?.push(t),n},new Map),ur=(e,n)=>{const t=(s,l)=>({...s,itemOffered:{sku:s.itemOffered.sku},index:l}),r=n.items.map(ie).map(t),i=e.acceptedOffer.map(t),a=e.orderNumber===n.orderFormId,o=Oe(r,i);return a&&o};function On(e,n){return e?.some(t=>t.parentItemIndex!==null&&t.parentItemIndex!==void 0&&e[t.parentItemIndex]?.id===n)}function Cn(e,n){return e?.some(t=>t.id===n&&t.parentItemIndex!==null)}const Me=e=>{const n=e.items.reduce((t,r,i)=>{const a=Cn(e.items,r.id)||On(e.items,r.id)?`${Se(ie(r))}::${i}`:Se(ie(r));return t[a]||(t[a]=[]),t[a].push(r),t},{});return{...e,items:Object.values(n).map(t=>{const[r]=t,i=t.reduce((o,s)=>o+s.quantity,0),a=t.reduce((o,s)=>o+(s?.priceDefinition?.total??(s?.quantity??0)*(s?.sellingPrice??0)),0);return{...r,quantity:i,sellingPrice:a/i}})}},$e=async(e,n,t)=>({order:{orderNumber:e.orderFormId,acceptedOffer:e.items.map(async r=>({...r,product:await n.load(`${r.id}-invisibleItems`)})),shouldSplitItem:t},messages:e.messages.map(({text:r,status:i})=>({text:r,status:i.toUpperCase()}))}),bn=({items:e},n)=>{const t=e.map(r=>({id:r.id,quantity:r.quantity,seller:r.seller,attachments:r.attachments}));return fn(JSON.stringify({sessionId:n?.id??"",items:t}))},ze=async(e,n,t)=>{try{return await n.checkout.setCustomData({id:e.orderFormId,appId:"faststore",key:"cartEtag",value:bn(e,t)})}catch(r){throw console.error(`Error while setting custom data to orderForm.
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ge=require("@graphql-tools/merge"),He=require("@graphql-tools/schema"),z=require("@graphql-tools/utils"),N=require("@faststore/diagnostics"),ee=require("graphql"),J=require("cookie"),_n=require("isomorphic-unfetch"),ve=require("p-limit"),ae=require("dataloader"),kn=require("sanitize-html"),Oe=require("fast-deep-equal"),Fn=require("node:crypto");var Xe=(e=>(e.Accepted="accepted",e.Denied="denied",e.Pending="pending",e))(Xe||{}),Ye=(e=>(e.Brand="Brand",e.Category="Category",e.Cluster="Cluster",e.Collection="Collection",e.Department="Department",e.SubCategory="SubCategory",e))(Ye||{}),Je=(e=>(e.Boolean="BOOLEAN",e.Range="RANGE",e))(Je||{}),Ke=(e=>(e.DiscountDesc="discount_desc",e.NameAsc="name_asc",e.NameDesc="name_desc",e.OrdersDesc="orders_desc",e.PriceAsc="price_asc",e.PriceDesc="price_desc",e.ReleaseDesc="release_desc",e.ScoreDesc="score_desc",e))(Ke||{}),Qe=(e=>(e.Error="ERROR",e.Info="INFO",e.Warning="WARNING",e))(Qe||{}),Ze=(e=>(e.Input="Input",e.Output="Output",e))(Ze||{});const Rn=()=>function(n={}){const t=process.env.FS_DISCOVERY_APP_KEY??"",r=process.env.FS_DISCOVERY_APP_TOKEN??"";if(!t||!r)throw new K("No authentication AppKey and AppToken passed.");return{...n,"X-VTEX-API-AppKey":t,"X-VTEX-API-AppToken":r}},Nn=async e=>{const{clients:{commerce:n}}=e;try{if((await n.vtexid.validate())?.authStatus?.toLowerCase()!=="success")throw new Y("Authentication required")}catch(t){const r=t.extensions?.status??t.status;throw r===401?new Y("Authentication required"):r===403?new K("You are not allowed to access this resource"):new Y("Authentication required")}},Ln="auth",en={typeDefs:"directive @auth on FIELD_DEFINITION",transformer:e=>z.mapSchema(e,{[z.MapperKind.OBJECT_FIELD]:n=>{if(z.getDirective(e,n,Ln)?.[0]){const r=n.resolve;n.resolve=async(i,a,o,s)=>(await Nn(o),r?.(i,a,o,s))}return n}})},Bn="cacheControl",Mn=(e,n)=>{const{scope:t="private",sMaxAge:r=0,staleWhileRevalidate:i=0}=e;return`${n?"private":t}, s-maxage=${r}, stale-while-revalidate=${i}`},De=(e,n)=>typeof e=="number"&&typeof n=="number"?e>n?n:e:typeof e=="number"?e:n,$n=(e,n)=>typeof e=="string"&&typeof n=="string"?e==="public"&&n==="public"?"public":"private":e||n,nn={typeDefs:"directive @cacheControl(sMaxAge: Int, staleWhileRevalidate: Int, scope: String) on FIELD_DEFINITION",transformer:e=>z.mapSchema(e,{[z.MapperKind.OBJECT_FIELD]:n=>{const t=z.getDirective(e,n,Bn)?.[0];if(t){const{sMaxAge:r,staleWhileRevalidate:i,scope:a}=t,o=n.resolve;n.resolve=(s,c,d,g)=>(d.cacheControl={sMaxAge:De(d.cacheControl?.sMaxAge,r),staleWhileRevalidate:De(d.cacheControl?.staleWhileRevalidate,i),scope:$n(d.cacheControl?.scope,a)},o?.(s,c,d,g))}return n}})},tn=e=>(n,t)=>{const r=Ge.mergeTypeDefs([...(e??[]).map(({typeDefs:i})=>i),t]);return(e??[]).reduce((i,{transformer:a})=>a?.(i)??i,He.makeExecutableSchema({typeDefs:r,resolvers:n}))},ce="@faststore/api",le="4.4.1-dev.0",we={name:ce,version:le},zn=(e,n)=>(t,r,i,a)=>{if((i?.OTEL?.enabled??!1)===!1)return e(t,r,i,a);const o=N.OTELAPI.trace.getTracer(ce,le),s=N.OTELAPI.propagation.extract(N.OTELAPI.context.active(),i.OTEL);return N.OTELAPI.context.with(s,()=>{const c=o.startSpan(n??"Unknown Graphql Resolver",{startTime:Date.now(),kind:N.OTELAPI.SpanKind.INTERNAL,attributes:{timestamp:Date.now(),"@faststore_version":le,"@faststore_package_name":ce,"@faststore_account_name":i.account,"@faststore_environment":process.env.NODE_ENV}});if(!c)return e(t,r,i,a);try{const d=e(t,r,i,a);return d instanceof Promise?d.then(g=>(c.end(),g)):(c.end(),d)}catch(d){throw c.end(),console.error(`Error when executing resolver: ${n}`,d),d}})};class V extends Error{constructor(n,t){super(t),this.extensions=n,this.name="FastStoreError"}}class U extends V{constructor(n){super({status:400,type:"BadRequestError"},n)}}class Y extends V{constructor(n){super({status:401,type:"UnauthorizedError"},n)}}class K extends V{constructor(n){super({status:403,type:"ForbiddenError"},n)}}class L extends V{constructor(n){super({status:404,type:"NotFoundError"},n)}}const qn=e=>e?.name==="FastStoreError",xn=e=>e?.extensions?.type==="BadRequestError",Vn=e=>e?.extensions?.type==="UnauthorizedError",rn=e=>e?.extensions?.type==="ForbiddenError",Ce=e=>e?.extensions?.type==="NotFoundError",jn=`${we.name}@${we.version}`,S=async(e,n,t)=>{const r=await _n(e,{...n,headers:{...n?.headers??{},"User-Agent":jn}});if(r.ok)return t?.storeCookies&&t.storeCookies(r.headers),r.status!==204?r.json():void 0;console.error(e,n,r);const i=await r.text();if(typeof r?.status=="number")switch(r.status){case 400:throw new U(i);case 401:throw new Y(i);case 403:throw new K(i);case 404:throw new L(i);default:throw new V({status:r.status,type:"UnknownError"},i)}throw new Error(i)},an=e=>{if(!e)return e;const n=new Map,t=e.split(";"),r=[];return t.forEach(i=>{const a=i.trim();if(a){const o=a.indexOf("=");if(o>0){const s=a.substring(0,o),c=a.substring(o+1);n.has(s)||r.push(s),n.set(s,c)}}}),r.map(i=>`${i}=${n.get(i)}`).join("; ")},Wn=/^([^=]+)=([^;]*)/,Gn=(e,n)=>{const t=n.match(Wn);if(t){const r=t[1],i=t[2];e.storage.cookies.set(r,{value:i,setCookie:n})}},Hn=(e,n)=>{n.getSetCookie().forEach(t=>Gn(e,t))},Xn=e=>n=>Hn(e,n),on=e=>{if(!e.headers?.cookie)return null;const n=an(e.headers.cookie),t=Array.from(e.storage.cookies.entries());return t.length===0?n:t.reduce((r,[i,{value:a}])=>Yn(r,i,a),n)},sn=e=>function(t){const r=on(e);return r?{...t,cookie:r}:t},ne=(e,n)=>{const t=an(e);return J.parse(t)[`VtexIdclientAutCookie_${n}`]||""},Yn=(e,n,t)=>{const r=new RegExp(`(${n})=([^;]*)`),i=e.match(r);return i?e.replace(i[0],`${i[1]}=${t}`):`${e};${n}=${t}`};function te(e){return e?JSON.parse(Buffer.from(e.split(".")[1],"base64").toString()):null}const G={method:"POST",headers:{"content-type":"application/json"}},Jn=/^\d{4}-\d{2}-\d{2}$/,Kn=new Set(["Draft","Requested","InReview","Reviewed","Approved","Declined","Expired","ConvertedToCart","ConvertedToOrder"]);function Qn({page:e,perPage:n,status:t,createdAtFrom:r,createdAtTo:i,expiresAtFrom:a,expiresAtTo:o}){if(e!==void 0&&(!Number.isInteger(e)||e<1))throw new Error(`listUserQuotes: invalid page "${e}" — must be a positive integer`);if(n!==void 0&&(!Number.isInteger(n)||n<1))throw new Error(`listUserQuotes: invalid perPage "${n}" — must be a positive integer`);for(const[s,c]of[["createdAtFrom",r],["createdAtTo",i],["expiresAtFrom",a],["expiresAtTo",o]])if(c&&!Jn.test(c))throw new Error(`listUserQuotes: invalid ${s} "${c}" — must be YYYY-MM-DD`);if(t&&t.length>0){const s=t.filter(c=>!Kn.has(c));if(s.length>0)throw new Error(`listUserQuotes: invalid status values: ${s.join(", ")}`)}}function Zn({page:e,perPage:n,status:t,createdAtFrom:r,createdAtTo:i,expiresAtFrom:a,expiresAtTo:o,label:s}){const c=new URLSearchParams;return e&&c.append("pageNumber",e.toString()),n&&c.append("pageSize",n.toString()),t?.forEach(d=>c.append("status",d)),r&&c.append("createdAtFrom",r),i&&c.append("createdAtTo",i),a&&c.append("expiresAtFrom",a),o&&c.append("expiresAtTo",o),s?.trim()&&c.append("label",s.trim()),c}const et=({account:e,environment:n,incrementAddress:t,subDomainPrefix:r},i)=>{const a=`https://${e}.${n}.com.br`,o=Xn(i),s=sn(i),c=Rn(),d=new Headers(i.headers).get("x-forwarded-host")??i.headers?.host??"",g=r&&r.map(l=>l+".").find(l=>d.includes(l))||"",p=d.replace(g,"");return{catalog:{salesChannel:l=>S(`${a}/api/catalog_system/pub/saleschannel/${l}`,void 0,{storeCookies:o}),brand:{list:()=>S(`${a}/api/catalog_system/pub/brand/list`,void 0,{storeCookies:o})},category:{tree:(l=3)=>S(`${a}/api/catalog_system/pub/category/tree/${l}`,void 0,{storeCookies:o})},portal:{pagetype:l=>S(`${a}/api/catalog_system/pub/portal/pagetype/${l}`,void 0,{storeCookies:o})},products:{crossselling:({type:l,productId:u,groupByProduct:m=!0})=>{const y=new URLSearchParams({sc:i.storage.channel.salesChannel,groupByProduct:m.toString()});return S(`${a}/api/catalog_system/pub/products/crossselling/${l}/${u}?${y}`,void 0,{storeCookies:o})}}},checkout:{simulation:(l,{salesChannel:u}=i.storage.channel)=>{const m=new URLSearchParams({sc:u}),y=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/checkout/pub/orderForms/simulation?${m.toString()}`,{...G,headers:y,body:JSON.stringify(l)},{storeCookies:o})},shippingData:({id:l,index:u,deliveryMode:m,selectedAddresses:y},f)=>{const I=f?{startDateUtc:m?.deliveryWindow?.startDate,endDateUtc:m?.deliveryWindow?.endDate}:null,D={logisticsInfo:Array.from({length:u},(w,O)=>({itemIndex:O,selectedDeliveryChannel:m?.deliveryChannel||null,selectedSla:m?.deliveryMethod||null,deliveryWindow:I})),selectedAddresses:y,clearAddressIfPostalCodeNotFound:t},E=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/checkout/pub/orderForm/${l}/attachments/shippingData`,{...G,headers:E,body:JSON.stringify(D)},{storeCookies:o})},marketingData:({id:l,marketingData:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/checkout/pub/orderForm/${l}/attachments/marketingData`,{headers:m,body:JSON.stringify(u),method:"POST"},{storeCookies:o})},clientPreferencesData:({id:l,clientPreferencesData:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/checkout/pub/orderForm/${l}/attachments/clientPreferencesData`,{headers:m,body:JSON.stringify(u),method:"POST"},{storeCookies:o})},orderForm:({id:l,refreshOutdatedData:u=!0,channel:m=i.storage.channel})=>{const{salesChannel:y}=m,f=s({"content-type":"application/json","X-FORWARDED-HOST":p}),I=new URLSearchParams({sc:y});l&&I.set("refreshOutdatedData",u.toString());const D=`${a}/api/checkout/pub/orderForm${l?`/${l}`:""}?${I.toString()}`;return S(D,{...G,headers:f,...l?{}:{body:"{}"}},{storeCookies:o})},clearOrderFormMessages:({id:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/checkout/pub/orderForm/${l}/messages/clear`,{...G,headers:u,body:"{}"})},updateOrderFormItems:({id:l,orderItems:u,allowOutdatedData:m="paymentData",salesChannel:y=i.storage.channel.salesChannel,shouldSplitItem:f=!0})=>{const I=new URLSearchParams({allowOutdatedData:m,sc:y}),D=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/checkout/pub/orderForm/${l}/items?${I}`,{headers:D,body:JSON.stringify({orderItems:u,noSplitItem:!f}),method:"PATCH"},{storeCookies:o})},setCustomData:({id:l,appId:u,key:m,value:y})=>{const f=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/checkout/pub/orderForm/${l}/customData/${u}/${m}`,{headers:f,body:JSON.stringify({value:y}),method:"PUT"})},region:async({postalCode:l,geoCoordinates:u,country:m,salesChannel:y})=>{const f=new URLSearchParams({country:m,sc:y??""});l?f.append("postalCode",l):f.append("geoCoordinates",`${u?.longitude};${u?.latitude}`);const I=`${a}/api/checkout/pub/regions/?${f.toString()}`,D=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(I,{headers:D},{storeCookies:o})},address:async({postalCode:l,country:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/checkout/pub/postal-code/${u}/${l}`,{headers:m},{storeCookies:o})},cancelOrder:({orderId:l,customerEmail:u,reason:m})=>{const y=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/checkout/pub/orders/${l}/user-cancel-request`,{method:"POST",headers:y,body:JSON.stringify({customerEmail:u,reason:m})},{})},pickupPoints:({geoCoordinates:l})=>{if(!l)throw new Error("Missing required parameter for listing pickup points.");const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/logistics-shipping/pickuppoints/_search`,{method:"POST",headers:u,body:JSON.stringify({coordinate:l})},{storeCookies:o})}},session:l=>{const u=new URLSearchParams(l);u.set("items","profile.id,profile.email,profile.firstName,profile.lastName,profile.phone,shopper.firstName,shopper.lastName,shopper.organizationManager,store.channel,store.countryCode,store.cultureInfo,store.currencyCode,store.currencySymbol,authentication.customerId,authentication.storeUserId,authentication.storeUserEmail,authentication.unitId,authentication.unitName,checkout.regionId,public.postalCode");const m=s({"content-type":"application/json"}),y=J.parse(i?.headers?.cookie??"")?.vtex_session;return S(`${a}/api/sessions?${u.toString()}`,{method:y?"PATCH":"POST",headers:m,body:"{}"},{storeCookies:o})},subscribeToNewsletter:l=>S(`${a}/api/dataentities/NL/documents/`,{...G,body:JSON.stringify({...l,isNewsletterOptIn:!0}),method:"PATCH"},{storeCookies:o}),profile:{addresses:async l=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/profile-system/pvt/profiles/${l}/addresses`,{headers:u},{storeCookies:o})}},oms:{userOrder:({orderId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/oms/user/orders/${l}`,{method:"GET",headers:u},{storeCookies:o})},listUserOrders:({page:l,status:u,dateInitial:m,dateFinal:y,text:f,clientEmail:I,perPage:D,pendingMyApproval:E})=>{const w=new URLSearchParams;if(m){const P=new Date(m).setHours(0,0,0,0);m=new Date(P).toISOString()}if(y){const P=new Date(y).setHours(23,59,59,999);y=new Date(P).toISOString()}f&&w.append("text",f),u&&u.length>0&&w.append("status",u.filter(Boolean).join(",")),m&&y?w.append("creation_date",`creationDate:[${m} TO ${y}]`):m?w.append("creation_date",`creationDate:[${m} TO *]`):y&&w.append("creation_date",`creationDate:[* TO ${y}]`),I&&w.append("clientEmail",I),l&&w.append("page",l.toString()),D&&w.append("per_page",D.toString()),E&&w.append("my_pending_approvals",String(!0));const O=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/oms/user/orders?${w.toString()}`,{method:"GET",headers:O},{storeCookies:o})},getCommercialAuthorizationsByOrderId:({orderId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/${e}/commercial-authorizations/order/${l}`,{method:"GET",headers:u},{storeCookies:o})},processOrderAuthorization:async({orderAuthorizationId:l,dimensionId:u,ruleId:m,approved:y})=>{const f=s({"content-type":"application/json","X-FORWARDED-HOST":p}),E={params:{ruleId:m,dimensionId:u,score:y?100:0}};return S(`${a}/${e}/commercial-authorizations/${l}/callback`,{method:"POST",headers:f,body:JSON.stringify(E)},{storeCookies:o})}},units:{getUnitByUserId:({userId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/units/v1/${l}/unit`,{method:"GET",headers:u},{})},getOrgUnitById:({orgUnitId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/units/v1/${l}`,{method:"GET",headers:u},{})},getScopesByOrgUnit:({orgUnitId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/units/v1/${l}/scopes`,{method:"GET",headers:u},{})}},licenseManager:{getUserById:({userId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/license-manager/users/${l}`,{method:"GET",headers:u},{})},getUserByEmail:({email:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/license-manager/pvt/users/${l}`,{method:"GET",headers:u},{})},getUserRoles:({userId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/license-manager/storefront/users/${l}/roles`,{method:"GET",headers:u},{})}},masterData:{getContractById:({contractId:l})=>{if(!l)throw new U("Missing contractId to fetch CL fields.");const u=c({Accept:"application/json","content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/dataentities/CL/documents/${l}?_fields=_all`,{method:"GET",headers:u},{})},getShopperById:({userId:l})=>{if(!l)throw new U("Missing userId to fetch shopper name.");const u=c({Accept:"application/json","content-type":"application/json","X-FORWARDED-HOST":p}),m=l.replace(/-/g,"");return S(`${a}/api/dataentities/shopper/search?_where=(userId=${m} OR userId=${l})&_fields=_all&_schema=v1`,{method:"GET",headers:u},{})}},quotes:{listUserQuotes:l=>{Qn(l);const u=Zn(l),m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/quoting/quotes?${u.toString()}`,{method:"GET",headers:m},{storeCookies:o})}},vtexid:{validate:()=>{const l=s({"content-type":"application/json","X-FORWARDED-HOST":p}),u=ne(on(i)??"",e);return S(`${a}/api/vtexid/credential/validate`,{headers:l,body:JSON.stringify({token:u}),method:"POST"},{storeCookies:o})}},orderEntry:{uploadFile:({fileBuffer:l,fileName:u,mimeType:m})=>{const y=s({"content-type":"application/json","X-FORWARDED-HOST":p}),f=`----FastStoreUploadBoundary${Date.now()}`,I=`\r
2
+ `,E=/^[a-zA-Z0-9][a-zA-Z0-9!#$&\-.^_]*\/[a-zA-Z0-9][a-zA-Z0-9!#$&\-.^_+]*$/.test(m)?m:"application/octet-stream",w=u.replaceAll(/[\r\n"]/g,"_"),O=[`--${f}`,`Content-Disposition: form-data; name="file"; filename="${w}"`,`Content-Type: ${E}`,"",""].join(I),P=`${I}--${f}--${I}`,h=Buffer.from(O),b=Buffer.from(P),C=new Uint8Array(h.byteLength+l.byteLength+b.byteLength);let A=0;return C.set(h,A),A+=h.byteLength,C.set(l,A),A+=l.byteLength,C.set(b,A),S(`${a}/api/order-entry/upload?an=${e}`,{method:"POST",headers:{...y,"content-type":`multipart/form-data; boundary=${f}`},body:C.buffer},{})},startOperation:({objectKey:l,orderFormId:u,sessionToken:m})=>{const y=s({"content-type":"application/json","X-FORWARDED-HOST":p}),f=JSON.stringify({objectKey:l,orderFormId:u,operation:"CreateCart",...m?{sessionToken:m}:{}});return S(`${a}/api/order-entry/operation?an=${e}`,{method:"POST",headers:y,body:f},{})},getOperation:({operationId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/order-entry/operation/${l}?an=${e}`,{method:"GET",headers:u},{})},createOrderForm:()=>{const l=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/checkout/pub/orderForm?sc=${i.storage.channel.salesChannel}`,{method:"POST",headers:l,body:"{}"},{})},getOrderFormItems:({orderFormId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return S(`${a}/api/checkout/pub/orderForm/${l}`,{method:"GET",headers:u},{})}}}},de="fuzzy",ue="operator",pe="pickupPoint",Pe="shipping",Ae="delivery-options",nt="in-stock",tt="trade-policy",rt="region-id",it=new Set([tt,rt,de,ue,pe]),at=new Set(["zip-code","pickupPoint","country","coordinates","deliveryZonesHash","pickupPointsHash"]),ot=new Set(["productClusterIds"]),Ee=e=>encodeURI(decodeURI(e)),st=e=>encodeURIComponent(decodeURIComponent(e).normalize("NFD").replaceAll(/[\u0300-\u036f]/g,"")),ct=/^pickup-in-point-(.+)$/;function cn(e){if(!e)return{};try{const t=J.parse(e).vtex_segment;if(!t)return{};const r=Buffer.from(t,"base64").toString("utf-8");return JSON.parse(r)}catch{return{}}}function lt(e){const n={},t={},r=[];for(const i of e.split(";")){const a=i.indexOf("=");if(a<0)continue;const o=i.slice(0,a),s=i.slice(a+1);!o||!s||(at.has(o)?n[o]=s:ot.has(o)?t[o]=s:r.push({key:o,value:s}))}return{shipping:n,queryParams:t,extraFacets:r}}function dt(e){const n=typeof e.facets=="string"?e.facets:"",{shipping:t,queryParams:r,extraFacets:i}=lt(n);return{segmentParams:{sc:e.channel,regionId:e.regionId,country:e.countryCode??t.country,locale:e.cultureInfo,"zip-code":t["zip-code"],coordinates:t.coordinates,pickupPoint:t.pickupPoint,deliveryZonesHash:t.deliveryZonesHash,pickupPointHash:t.pickupPointsHash,utmSource:e.utm_source??void 0,utmCampaign:e.utm_campaign??void 0,utmiCampaign:e.utmi_campaign??void 0,campaigns:typeof e.campaigns=="string"?e.campaigns:void 0,priceTables:e.priceTables??void 0,productClusterIds:r.productClusterIds},extraFacets:i}}function ln(e,n){const t=[["sc",n.sc],["regionId",n.regionId],["country",n.country],["locale",n.locale],["zip-code",n["zip-code"]],["coordinates",n.coordinates],["pickupPoint",n.pickupPoint],["deliveryZonesHash",n.deliveryZonesHash],["pickupPointHash",n.pickupPointHash],["utmSource",n.utmSource],["utmCampaign",n.utmCampaign],["utmiCampaign",n.utmiCampaign],["campaigns",n.campaigns],["priceTables",n.priceTables],["productClusterId",n.productClusterIds]];for(const[r,i]of t)i!=null&&i!==""&&e.append(r,String(i))}function dn(e){return ct.exec(e)?.[1]}function ut(e){const n=e.find(r=>r.key==="shipping"),t=n?dn(n.value):void 0;if(t!==void 0)try{return decodeURIComponent(t)}catch{return t}}function pt(e,n){const t=ut(n);return t===void 0?e:{...e,pickupPoint:t}}function gt(e){return e.map(n=>n.key!=="shipping"||dn(n.value)===void 0?n:{...n,value:"pickup-in-point"})}function mt(e,n){let t=[...e];const r=t.some(i=>i.key==="shipping");for(const i of n)(!r||i.key!=="shipping")&&t.push(i);return t.some(i=>i.key==="shipping"&&i.value==="ignore")&&(t=t.filter(i=>i.key!=="shipping")),gt(t)}function ht(e){return e.reduce((n,t)=>{let{key:r,value:i}=t;return r==="priceRange"&&(r="price",i=i.replace(" TO ",":")),r==="ft"?n:`${n}${Ee(r)}/${st(Ee(i)).replaceAll(/ |%20/g,"-")}/`},"")}const ft=e=>e.key==="fuzzy"&&(e.value==="0"||e.value==="1"||e.value==="auto"),St=e=>e.key==="operator"&&(e.value==="and"||e.value==="or");function yt(e,n){const{segmentParams:t,extraFacets:r}=dt(e??{}),i=n?.salesChannel??t.sc,a=n?.regionId??t.regionId,o=n?.locale??t.locale??"";return{segmentParams:{...t,...i?{sc:i}:{},...a?{regionId:a}:{},locale:o},extraFacets:r}}function It(e,n){const t=e.filter(({key:c})=>!it.has(c)),r=e.find(({key:c,value:d})=>c===Pe&&d!=="all-delivery-methods")??null,i=e.find(({key:c,value:d})=>c===Ae&&d!=="all-delivery-options")??null,a=[...t],o=a.some(({key:c})=>c===Pe),s=a.some(({key:c})=>c===Ae);return r!==null&&!o&&a.push(r),i!==null&&!s&&a.push(i),mt(a,n)}function vt(e,n){const t=e.find(({key:a})=>a===de)??null,r=e.find(({key:a})=>a===ue)??null,i=e.find(({key:a})=>a===pe)??null;t&&ft(t)&&n.append(de,t.value),r&&St(r)&&n.append(ue,r.value),i&&n.append(pe,i.value)}function Ue(e,n,t,r){const{query:i="",page:a,count:o,sort:s,selectedFacets:c=[],showInvisibleItems:d,sponsoredCount:g,hideUnavailableItems:p,allowRedirect:l=!1}=e,u=new URLSearchParams;if(r.includePagination&&a!==void 0&&o!==void 0){const f=a*o,I=o===0?f:f+o-1;u.append("from",f.toString()),u.append("to",I.toString())}i&&u.append("query",i),r.includeSort&&s&&u.append("sort",s);const m=pt(t.segmentParams,c);if(ln(u,m??t.segmentParams),vt(c,u),d&&u.append("show-invisible-items","true"),n?.hideUnavailableItems!==void 0){const f=c.find(({key:D})=>D===nt),I=f?f.value:p?.toString()??n.hideUnavailableItems.toString();u.append("hideUnavailableItems",I)}n?.simulationBehavior!==void 0&&u.append("simulationBehavior",n.simulationBehavior.toString()),n?.showSponsored!==void 0&&u.append("showSponsored",n.showSponsored.toString()),g!==void 0&&u.append("sponsoredCount",g.toString()),l!==void 0&&u.append("allowRedirect",l.toString());const y=ht(It(c,t.extraFacets));return{params:u,path:y}}function Ot(e,n){const{field:t,value:r,hideUnavailableItems:i,showInvisibleItems:a}=e,o=new URLSearchParams({field:t??"",value:r??""});return ln(o,n),i&&o.append("hideUnavailableItems","true"),a&&o.append("show-invisible-items","true"),o}function H(e,n){return{path:e,params:n,toString(){const t=n.toString();return e?t?`${e}?${t}`:e:t?`?${t}`:""}}}function X(e){const{endpoint:n,segment:t,defaults:r,args:i={}}=e,a=yt(t,r);switch(n){case"product-search":case"facets":{const{params:o,path:s}=Ue(i,r,a,{includePagination:!0,includeSort:!0});return H(s,o)}case"catalog-count":{const{params:o,path:s}=Ue(i,r,a,{includePagination:!1,includeSort:!1});return H(s,o)}case"products":{const o=Ot(i,a.segmentParams);return H("",o)}case"search-suggestions":{const o=new URLSearchParams({query:i.query?.toString()??"",locale:r?.locale??a.segmentParams.locale??""});return H("",o)}case"top-searches":{const o=new URLSearchParams({locale:r?.locale??a.segmentParams.locale??""});return H("",o)}default:{const o=n;throw new Error(`Unknown intelligent-search endpoint: ${o}`)}}}const Ct=10;function bt(e){const{regionId:n,seller:t}=e.storage.channel;return(t?Buffer.from(`SW#${t}`).toString("base64"):void 0)??(n||void 0)}function Dt(e){const n=cn(e.headers?.cookie);return e.storage.locale||n.cultureInfo||""}const wt=({account:e,environment:n,hideUnavailableItems:t,simulationBehavior:r,showSponsored:i,subDomainPrefix:a},o)=>{const s=`https://${e}.${n}.com.br`,c=sn(o),d=cn(o.headers?.cookie),g=()=>({salesChannel:o.storage.channel.salesChannel,regionId:bt(o),locale:Dt(o),hideUnavailableItems:t,simulationBehavior:r,showSponsored:i}),p=new Headers(o.headers).get("x-forwarded-host")??o.headers?.host??"",l=a&&a.map(h=>h+".").find(h=>p.includes(h))||"",u=p.replace(l,""),m=c({"content-type":"application/json","X-FORWARDED-HOST":u}),y=({type:h,...b})=>{const C=h==="facets"?"facets":"product-search",A=X({endpoint:C,segment:d,defaults:g(),args:b});return S(`${s}/api/intelligent-search/v1/${C}/${A.path}?${A.params.toString()}`,{headers:m})},f=h=>y({...h,type:"product_search"}),I=({field:h,value:b,hideUnavailableItems:C,showInvisibleItems:A})=>{const v=X({endpoint:"products",segment:d,defaults:g(),args:{field:h,value:b,hideUnavailableItems:C,showInvisibleItems:A}});return S(`${s}/api/intelligent-search/v1/products?${v.params.toString()}`,{headers:m})};return{facets:h=>y({...h,type:"facets"}),products:f,fetchProduct:I,productsByIdentifier:async({field:h,values:b,showInvisibleItems:C,hideUnavailableItems:A})=>{const v=ve(Ct);return(await Promise.all(b.map(k=>v(async()=>{try{return await I({field:h,value:k,hideUnavailableItems:A,showInvisibleItems:C})}catch{return null}})))).filter(k=>k!==null)},suggestedTerms:h=>{const b=X({endpoint:"search-suggestions",segment:d,defaults:g(),args:{query:h.query}});return S(`${s}/api/intelligent-search/v1/search-suggestions?${b.params.toString()}`,{headers:m})},topSearches:()=>{const h=X({endpoint:"top-searches",segment:d,defaults:g()});return S(`${s}/api/intelligent-search/v1/top-searches?${h.params.toString()}`,{headers:m})},productCount:h=>{const b=X({endpoint:"catalog-count",segment:d,defaults:g(),args:h});return S(`${s}/api/intelligent-search/v1/catalog-count/${b.path}?${b.params.toString()}`,{headers:m})}}},Pt=(e,n)=>{const t=wt(e,n),r=et(e,n);return{search:t,commerce:r}},At=20,Et=new Set(["brand","category","department","subcategory","collection","cluster"]),q=e=>typeof e.pageType=="string"&&Et.has(e.pageType.toLowerCase()),Ut=(e,n)=>{const t=ve(At),r=async i=>Promise.all(i.map(a=>t(async()=>{const o=await n.commerce.catalog.portal.pagetype(a);if(q(o))return o;throw new L(`Catalog returned ${o.pageType} for slug: ${a}. This usually happens when there is more than one category with the same name in the same category tree level.`)})));return new ae(r,{batch:!1})},Tt=(e,n)=>{const t=async r=>Promise.all(r.map(i=>n.commerce.catalog.salesChannel(i)));return new ae(t)},_t=1,kt=(e,n)=>{const t=ve(_t),r=async a=>{const o=a.reduce((p,{items:l})=>[...p,l],[]),s=[...o.flat()],c=await n.commerce.checkout.simulation({country:a[0].country,postalCode:a[0].postalCode,items:s}),d=c.items.reduce((p,l)=>{const u=l.requestIndex;return typeof u=="number"&&u<p.length&&(p[u]=l),p},Array(s.length).fill(null)),g=o.reduce((p,l)=>[...p,l.length+p[p.length-1]],[0]);return o.map((p,l)=>({...c,items:d.slice(g[l],g[l+1]).filter(u=>!!u)}))},i=async a=>t(r,a);return new ae(i,{maxBatchSize:50})},Ft=(e,n)=>kn(e,n);function Rt(e){return{...e,description:e.description?Ft(e.description):e.description}}const B=(e,n)=>({...e,isVariantOf:Rt(n)}),Nt=({flags:e},n)=>{const t=async r=>{const i=r.map(g=>g.split("-")[0]),a=r.some(g=>g.split("-")[1]==="invisibleItems"),s=(await n.search.productsByIdentifier({field:"sku",values:i,showInvisibleItems:a,...e?.enableUnavailableItemsOnCart&&{hideUnavailableItems:!1}})).reduce((g,p)=>{for(const l of p.items)g[l.itemId]=B(l,p);return g},{}),c=i.map(g=>s[g]),d=i.filter(g=>!s[g]);if(d.length>0)throw new L(`Search API did not found the following skus: ${d.join(",")}`);return c};return new ae(t,{maxBatchSize:99})},Lt=(e,{clients:n})=>{const t=Nt(e,n),r=kt(e,n),i=Ut(e,n),a=Tt(e,n);return{skuLoader:t,simulationLoader:r,collectionLoader:i,salesChannelLoader:a}},M=e=>e.AvailableQuantity>0,x=e=>e.spotPrice??0,Bt=e=>e.Price??0,Te=e=>e?"https://schema.org/InStock":"https://schema.org/OutOfStock",un=(e,n)=>M(e)&&!M(n)?-1:!M(e)&&M(n)?1:x(e)-x(n),Mt=e=>e==="available",$=(e,n=0,t=1)=>{const r=n/t;return Math.round((e+r)*100)/100},$t=(e,n={includeTaxes:!1})=>{const t=e.filter(M),r=t[t.length-1],i=r?x(r):0;return n.includeTaxes?$(i,r?.Tax,r?.product?.unitMultiplier):i},_e=(e,n={includeTaxes:!1})=>{const[t]=e.filter(M),r=t?x(t):0;return n.includeTaxes?$(r,t?.Tax,t?.product?.unitMultiplier):r},zt={highPrice:e=>$t(e),lowPrice:e=>_e(e),lowPriceWithTaxes:e=>_e(e,{includeTaxes:!0}),offerCount:e=>e.length,priceCurrency:async(e,n,t)=>{const{loaders:{salesChannelLoader:r},storage:{channel:i}}=t;return(await r.load(i.salesChannel)).CurrencyCode??""},offers:e=>e},qt={ratingValue:()=>5,reviewCount:()=>0},ke="ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆÍÌÎÏŇÑÓÖÒÔÕØŘŔŠŤÚŮÜÙÛÝŸŽáäâàãåčçćďéěëèêẽĕȇíìîïňñóöòôõøðřŕšťúůüùûýÿžþÞĐđ߯a",xt="AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa",Vt=e=>{let n=e.slice(0);for(let t=0;t<ke.length;t++)n=n.replace(new RegExp(ke.charAt(t),"g"),xt.charAt(t));return n},jt=e=>e.replace(/[·/_,:]/,"-");function pn(e){const t=e.replace(/,/g,"").replace(/[*+~.()'"!:@&\[\]`/ %$#?{}><=_^]/g,"-");return jt(Vt(t)).toLowerCase()}const Z=e=>e.type==="brand"||q(e)&&e.pageType.toLowerCase()==="brand",ge=e=>q(e)&&e.pageType.toLowerCase()==="collection",se=e=>Z(e)||ge(e)?pn(e.name):q(e)?new URL(`https://${e.url}`).pathname.slice(1).toLowerCase():new URL(e.url).pathname.slice(1).toLowerCase(),gn={id:({id:e})=>e.toString(),slug:e=>se(e),seo:e=>Z(e)||q(e)?{title:e.title??e.name,description:e.metaTagDescription}:{title:e.Title,description:e.MetaTagDescription},type:e=>Z(e)?"Brand":q(e)?e.pageType:e.level===0?"Department":"Category",meta:e=>{const n=se(e);return Z(e)?{selectedFacets:[{key:"brand",value:n}]}:ge(e)?{selectedFacets:[{key:"productclusterids",value:e.id}]}:{selectedFacets:n.split("/").map((t,r)=>({key:`category-${r+1}`,value:t}))}},breadcrumbList:async(e,n,t)=>{const{loaders:{collectionLoader:r}}=t,a=se(e).split("/").filter(c=>!!c),o=a.map((c,d)=>a.slice(0,d+1).join("/")),s=await Promise.all(o.map(async c=>{const d=await r.load(c);return{slug:c,...d}}));return{itemListElement:s.map((c,d)=>({item:ge(c)?`/${c.slug}`:new URL(`https://${c.url}`).pathname.toLowerCase(),name:c.name,position:d+1})),numberOfItems:s.length}}},mn={buy:"whoboughtalsobought",view:"whosawalsosaw",similars:"similars",viewAndBought:"whosawalsobought",accessories:"accessories",suggestions:"suggestions"},Fe=({key:e,value:n})=>{switch(e){case"price":return{key:e,value:n.replace("-to-",":")};case"channel":case"locale":case"buy":case"view":case"similars":case"viewAndBought":case"accessories":case"suggestions":return[];default:return{key:e,value:n}}},Re=e=>{const n=e.split(":").map(Number);return n.length!==2||Number.isNaN(n[0])||Number.isNaN(n[1])?null:n},Wt=e=>typeof mn[e]=="string",Gt=e=>{const n=e?.filter(t=>Wt(t.key));if(Array.isArray(n)&&n.length>1)throw new U(`You passed ${n.length} cross selling facets but only one is allowed. Please leave one of the following facet: ${n.map(t=>t.key).join(",")}`);return n?.[0]??null},Ht=e=>e?.find(n=>n.key==="slug")?.value??null,Xt=e=>e?.find(n=>n.key==="id")?.value??null,Ne=e=>e?.find(n=>n.key==="locale")?.value??null,Le=e=>e?.find(n=>n.key==="channel")?.value??null,me=(e,n)=>{let t=0;for(let r=1;r<e.length;r++)n(e[t],e[r])>0&&(t=r);return e[t]},Yt={__resolveType:({type:e,values:n})=>e!=="TEXT"&&e!=="DELIVERY"?"StoreFacetRange":!n||n.length===0?"StoreFacetBoolean":n.every(t=>t.range)?"StoreFacetRange":"StoreFacetBoolean"},Jt={key:({key:e})=>e,label:({name:e})=>e,values:({values:e})=>e.sort((n,t)=>n.name.localeCompare(t.name))},Kt={key:({key:e})=>e,label:({name:e})=>e,min:({values:e,key:n},t,{storage:{searchArgs:r}})=>{const i=Re(r?.selectedFacets?.find(s=>s.key===n)?.value??""),o=me(e,(s,c)=>s.range.from-c.range.from)?.range?.from??0;return{selected:i?.[0]??o,absolute:o}},max:({values:e,key:n},t,{storage:{searchArgs:r}})=>{const i=Re(r?.selectedFacets?.find(s=>s.key===n)?.value??""),o=me(e,(s,c)=>c.range.to-s.range.to)?.range?.to??0;return{selected:i?.[1]??o,absolute:o}}},Qt={value:({value:e})=>e,label:({name:e})=>e||"unknown",selected:({selected:e})=>e,quantity:({quantity:e})=>e},Zt=async(e,{data:n},{clients:{commerce:t}})=>{if(!n?.orderId)throw new U("Missing orderId");return{data:(await t.checkout.cancelOrder(n))?.data}};function hn(e){if(!e||e.status!=="pending")return null;for(const n of e.dimensionStatus){if(n.status!=="pending")continue;const t=n.ruleCollection.find(r=>r.status==="pending"&&r.isUserNextAuthorizer);if(t)return{rule:t,orderAuthorizationId:e.id,dimensionId:n.id}}return null}function er(e){if(!e||e.status!=="pending")return!1;const n=e.dimensionStatus.filter(t=>t.status==="pending").flatMap(t=>t.ruleCollection).filter(t=>t.status==="pending");return n.length===0?!1:n.every(t=>!t.isUserNextAuthorizer)}const nr=async(e,{data:n},{clients:{commerce:t}})=>{const r=await t.oms.processOrderAuthorization(n),i=hn(r);return{isPendingForOtherAuthorizer:!i&&er(r),ruleForAuthorization:i}},tr=async(e,{data:n},{clients:{commerce:t}})=>{if(!n?.objectKey)throw new U("Missing objectKey");const r=n.orderFormId||(await t.orderEntry.createOrderForm()).orderFormId;return t.orderEntry.startOperation({objectKey:n.objectKey,orderFormId:r,sessionToken:n.sessionToken??void 0})},rr=async(e,{data:n},{clients:{commerce:t}})=>({id:(await t.subscribeToNewsletter(n))?.Id}),ir=async(e,{data:n},{clients:{commerce:t}})=>{const{fileContent:r,fileName:i,mimeType:a}=n;if(!r||!i||!a)throw new U("Missing required fields: fileContent, fileName, mimeType");const o=r.replaceAll(/\s/g,""),s=5*1024*1024;if(Math.floor(o.length*3/4)>s)throw new U("File exceeds maximum allowed size of 5MB");if(!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(o))throw new U("Invalid Base64 fileContent");const g=Buffer.from(o,"base64");return await t.orderEntry.uploadFile({fileBuffer:g,fileName:i,mimeType:a})};class re{static parse(n){try{const t=JSON.parse(n);return{seller:t.seller??"",regionId:t.regionId??"",salesChannel:t.salesChannel??"",hasOnlyDefaultSalesChannel:t.hasOnlyDefaultSalesChannel??!0}}catch(t){throw console.error(t),new Error("Malformed channel string")}}static stringify(n){return JSON.stringify(n)}}const he=(e,n)=>{e.storage.channel=re.parse(n)},fe=(e,n)=>{e.storage.locale=n},fn=e=>Fn.createHash("md5").update(e).digest("hex"),Q={attachment:"ATTACHMENT",specification:"SPECIFICATION",attribute:"ATTRIBUTE"};function Sn(e){return{name:e.name,value:e.content,valueReference:Q.attachment}}function ar(e){return{propertyID:e.id,name:e.name,value:e.value,valueReference:{valueReference:Q.attribute,visible:e.visible}}}function yn(e){return fn(`${e.name}:${JSON.stringify(e.value)}:${e.valueReference}`)}const or=e=>{const n=e.postalCode,t=e.geoCoordinates,r={addressType:e.addressType||null,postalCode:n||null,city:null,state:null,country:e.country||null,street:null,number:null,neighborhood:null,complement:null,reference:null,geoCoordinates:[]};if(t){const i=typeof t=="object"&&"latitude"in t?t.latitude:null,a=typeof t=="object"&&"longitude"in t?t.longitude:null;r.geoCoordinates=i!==null&&a!==null?[a,i]:[]}return[r]},sr=(e,n,t)=>{const r=n.postalCode,i=n.geoCoordinates,a=e?.shippingData?.availableAddresses??[],o=e?.shippingData?.selectedAddresses??[];if(!t&&o.length>0)return[o[0]];if(t&&a.length>0)for(const s of a){if(r&&i&&(s.postalCode===r||s.geoCoordinates[0]===i.longitude&&s.geoCoordinates[1]===i.latitude))return[s];if(r&&!i&&s.postalCode===r)return[s];if(i&&!r&&s.geoCoordinates[0]===i.longitude&&s.geoCoordinates[1]===i.latitude)return[s]}return null},In=(e,n)=>{if(!cr(n))return{updateShipping:!1,addressChanged:!1};if(!pr(e))return{updateShipping:!1,addressChanged:!1};const[t]=e?.shippingData?.selectedAddresses??[];if(lr(t,n.postalCode)||dr(t,n.geoCoordinates)||ur(t,n.addressType))return{updateShipping:!0,addressChanged:!0};const{logisticsInfo:r}=e.shippingData;return gr(r,n)?{updateShipping:!0,addressChanged:!1}:{updateShipping:!1,addressChanged:!1}},cr=e=>!!e.postalCode||e.geoCoordinates?.latitude&&e.geoCoordinates?.longitude,lr=(e,n)=>typeof n=="string"&&e?.postalCode!==n,dr=(e,n)=>typeof n?.latitude=="number"&&typeof n?.longitude=="number"&&(e?.geoCoordinates[0]!==n?.longitude||e?.geoCoordinates[1]!==n?.latitude),ur=(e,n)=>typeof n=="string"&&e?.addressType!==n,pr=e=>e.items.length!==0,gr=(e,n)=>{const t=n?.deliveryMode?.deliveryChannel,r=n?.deliveryMode?.deliveryMethod,{startDate:i,endDate:a}=n?.deliveryMode?.deliveryWindow||{};return e.some(({selectedDeliveryChannel:o,selectedSla:s,slas:c})=>{const d=t&&o!==t,g=r&&s!==r;return c?.some(p=>d&&p.deliveryChannel===t||g&&p.id===r?!0:i&&a&&p.deliveryChannel===t&&p.id===r&&(!p?.deliveryWindow||p?.deliveryWindow?.startDateUtc!==i||p?.deliveryWindow?.endDateUtc!==a)&&p.availableDeliveryWindows?.some(l=>l?.startDateUtc===i&&l?.endDateUtc===a))})},vn=e=>e.valueReference===Q.attachment,Se=e=>[e.itemOffered.sku,e.seller.identifier,e.price<.01?"Gift":void 0,e.itemOffered.additionalProperty?.filter(vn).map(yn).join("-")].filter(Boolean).join("::"),ie=(e,n)=>({listPrice:e.listPrice/100,price:e.sellingPrice/100,quantity:e.quantity,seller:{identifier:e.seller},itemOffered:{sku:e.id,image:[],name:e.name,additionalProperty:e.attachments.map(Sn)},index:n}),mr=e=>({quantity:e.quantity,seller:e.seller.identifier,id:e.itemOffered.sku,index:e.index,attachments:(e.itemOffered.additionalProperty?.filter(vn)??[]).map(n=>({name:n.name,content:n.value}))}),Be=e=>e.reduce((n,t)=>{const r=Se(t);return n.has(r)||n.set(r,[]),n.get(r)?.push(t),n},new Map),hr=(e,n)=>{const t=(s,c)=>({...s,itemOffered:{sku:s.itemOffered.sku},index:c}),r=n.items.map(ie).map(t),i=e.acceptedOffer.map(t),a=e.orderNumber===n.orderFormId,o=Oe(r,i);return a&&o};function On(e,n){return e?.some(t=>t.parentItemIndex!==null&&t.parentItemIndex!==void 0&&e[t.parentItemIndex]?.id===n)}function Cn(e,n){return e?.some(t=>t.id===n&&t.parentItemIndex!==null)}const Me=e=>{const n=e.items.reduce((t,r,i)=>{const a=Cn(e.items,r.id)||On(e.items,r.id)?`${Se(ie(r))}::${i}`:Se(ie(r));return t[a]||(t[a]=[]),t[a].push(r),t},{});return{...e,items:Object.values(n).map(t=>{const[r]=t,i=t.reduce((o,s)=>o+s.quantity,0),a=t.reduce((o,s)=>o+(s?.priceDefinition?.total??(s?.quantity??0)*(s?.sellingPrice??0)),0);return{...r,quantity:i,sellingPrice:a/i}})}},$e=async(e,n,t)=>({order:{orderNumber:e.orderFormId,acceptedOffer:e.items.map(async r=>({...r,product:await n.load(`${r.id}-invisibleItems`)})),shouldSplitItem:t},messages:e.messages.map(({text:r,status:i})=>({text:r,status:i.toUpperCase()}))}),bn=({items:e},n)=>{const t=e.map(r=>({id:r.id,quantity:r.quantity,seller:r.seller,attachments:r.attachments}));return fn(JSON.stringify({sessionId:n?.id??"",items:t}))},ze=async(e,n,t)=>{try{return await n.checkout.setCustomData({id:e.orderFormId,appId:"faststore",key:"cartEtag",value:bn(e,t)})}catch(r){throw console.error(`Error while setting custom data to orderForm.
3
3
  Make sure to add the following custom app to the orderForm:
4
4
  {"fields":["cartEtag"],"id":"faststore","major":1}.
5
- More info at: https://developers.vtex.com/vtex-rest-api/docs/customizable-fields-with-checkout-api`),r}},pr=(e,n)=>{const r=e.customData?.customApps.find(a=>a.id==="faststore")?.fields?.cartEtag;return r==null?!0:bn(e,n)!==r},gr=async(e,{clients:{commerce:n}})=>n.checkout.clearOrderFormMessages({id:e}),Ve=async(e,n,{clients:{commerce:t}})=>{if(!n)return e;const{updateShipping:r,addressChanged:i}=In(e,n);if(r){const a=rr(e,n,i),s=a||tr(n);return!!n.deliveryMode?.deliveryWindow&&await t.checkout.shippingData({id:e.orderFormId,index:e.items.length,deliveryMode:n.deliveryMode,selectedAddresses:s},!1),t.checkout.shippingData({id:e.orderFormId,index:e.items.length,deliveryMode:n.deliveryMode,selectedAddresses:s},!0)}return e},mr=(e,n)=>{if(!e)return"";const r=J.parse(e)[n];return r?r.split("=")[1]:""},hr=async(e,{cart:{order:n},session:t},r)=>{const i=mr(r.headers.cookie,"checkout.vtex.com"),{clients:{commerce:a},loaders:{skuLoader:o}}=r,s=t?.channel,l=t?.locale;s&&he(r,s),l&&fe(r,l);const d=await a.checkout.orderForm({id:i||void 0,channel:r.storage.channel}),g=d.orderFormId;d.messages.length!==0&&await gr(g,r);const p=J.parse(r?.headers?.cookie??"")?.vtex_session,c=te(p),{acceptedOffer:u,shouldSplitItem:m}=n;if(pr(d,c)){const v=await ze(d,a,c).then(Me);if(g)return $e(v,o,m)}const f=Be(u),I=Be(d.items.map(ie)),D=Array.from(I.entries()),E=Array.from(f.entries()),{itemsToAdd:P,itemsToUpdate:O}=E.reduce((v,[U,_])=>{const j=I.get(U);if(!j)return _.forEach(W=>v.itemsToAdd.push(W)),v;const[k,...be]=j;if(Cn(d.items,k.itemOffered.sku)||On(d.items,k.itemOffered.sku))return v.itemsToUpdate.push(k),v;const oe=_.reduce((W,Un)=>W+Un.quantity,0);return v.itemsToUpdate.push({...k,quantity:oe}),be.forEach(W=>v.itemsToUpdate.push({...W,quantity:0})),v},{itemsToAdd:[],itemsToUpdate:[]}),w=D.filter(([v])=>!f.has(v)).flatMap(([,v])=>v.map(U=>({...U,quantity:0}))),h=[...P,...O,...w].map(dr),{updateShipping:b}=t?In(d,t):{updateShipping:!1};if(h.length===0&&!b)return null;let C;h.length>0?C=await a.checkout.updateOrderFormItems({id:d.orderFormId,orderItems:h,shouldSplitItem:m}).then(v=>Ve(v,t,r)):C=await Ve(d,t,r),C=await Promise.resolve(C).then(v=>{if(t?.marketingData){const U={...v.marketingData,...t.marketingData};return a.checkout.marketingData({id:d.orderFormId,marketingData:U})}return v}).then(v=>l&&v.clientPreferencesData?.locale!==l?a.checkout.clientPreferencesData({id:v.orderFormId,clientPreferencesData:{...v.clientPreferencesData,locale:l}}):v).then(v=>ze(v,a,c)).then(Me);const A=Oe(d.messages,C.messages);return ur(n,C)&&A?null:$e(C,o,m)};async function fr(e,n,t){try{const r=await e.commerce.checkout.address({postalCode:t,country:n}),i=r.geoCoordinates?{latitude:r.geoCoordinates[1],longitude:r.geoCoordinates[0]}:null;return{city:r.city,geoCoordinates:i}}catch(r){throw console.error(`Error while getting geo coordinates for the current postal code (${t}) and country (${n}).
6
- `),r}}const Sr=async(e,{session:n,search:t},{clients:r,headers:i,account:a})=>{const o=re.parse(n.channel??""),s=String(n.postalCode??""),l=n.country??"";let d=n.city??null,g=n.geoCoordinates??null;if((!d||!g)&&s!==""&&l!==""){const k=await fr(r,l,s);d=k.city,g=k.geoCoordinates}const c=new URLSearchParams(t);c.has("facets")&&c.delete("facets");const u=c.get("sc")??o.salesChannel;c.set("sc",u),s&&c.set("postalCode",s),l&&c.set("country",l),g&&c.set("geoCoordinates",`${g.longitude},${g.latitude}`),c.set("locale",n.locale);const{marketingData:m}=n,S={utmCampaign:c.get("utm_campaign")??m?.utmCampaign??"",utmMedium:c.get("utm_medium")??m?.utmMedium??"",utmSource:c.get("utm_source")??m?.utmSource??"",utmiCampaign:c.get("utmi_cp")??m?.utmiCampaign??"",utmiPage:c.get("utmi_p")??m?.utmiPage??"",utmiPart:c.get("utmi_pc")??m?.utmiPart??""},f=te(ne(i?.cookie??"",a));let I=!1;if(f)try{I=(await r.commerce.vtexid.validate())?.authStatus?.toLowerCase()==="success"}catch(k){console.warn("JWT validation failed:",k),I=!1}const D=I?f?.isRepresentative:!1,E=I?f?.customerId:void 0,P=I?f?.unitId:void 0,O=await r.commerce.session(c.toString()).catch(()=>null),w=O?.namespaces.profile??null,h=O?.namespaces.shopper??null,b=O?.namespaces.store??null,C=O?.namespaces.authentication??null,A=O?.namespaces.checkout??null,v=O?.namespaces.public??null;let U=null;if(D&&w?.id?.value)try{U=await r.commerce.masterData.getContractById({contractId:w.id.value})}catch{console.error(`Error while getting contract data for profile ID (${w.id.value}).
7
- `)}let _;o.seller&&(s||g)&&(_=(await r.commerce.checkout.region({postalCode:s,geoCoordinates:g,country:l,salesChannel:u}))?.[0]?.sellers.find(oe=>o.seller===oe.id));const j={...n,currency:{code:b?.currencyCode?.value??n.currency.code,symbol:b?.currencySymbol?.value??n.currency.symbol},country:b?.countryCode?.value??l,channel:re.stringify({salesChannel:b?.channel?.value??o.salesChannel,regionId:A?.regionId?.value??o.regionId,seller:_?.id,hasOnlyDefaultSalesChannel:!b?.channel?.value}),b2b:D?{isRepresentative:D??!1,customerId:C?.customerId?.value??E??"",unitName:C?.unitName?.value??"",unitId:C?.unitId?.value??P??"",firstName:typeof h?.firstName?.value=="string"?h.firstName.value:"",lastName:typeof h?.lastName?.value=="string"?h.lastName.value:"",userName:`${typeof h?.firstName?.value=="string"?h.firstName.value:""} ${typeof h?.lastName?.value=="string"?h.lastName.value:""}`.trim(),userEmail:C?.storeUserEmail.value??"",savedPostalCode:v?.postalCode?.value??"",contractName:U?.corporateName??"",organizationManager:h?.organizationManager?.value??!1}:null,marketingData:S,person:w?.id?{id:w.id?.value??"",email:w.email?.value??"",givenName:w.firstName?.value??"",familyName:w.lastName?.value??""}:null,geoCoordinates:g?.latitude&&g?.longitude&&g||null,city:d};return Oe(n,j)?null:j},yr={validateCart:hr,validateSession:Sr,subscribeToNewsletter:Zt,cancelOrder:Yt,processOrderAuthorization:Kt,uploadFileToOrderEntry:er,startOrderEntryOperation:Qt};var ye;(function(e){e.NAME="Name",e.DOCUMENT="Document",e.OPERATION_DEFINITION="OperationDefinition",e.VARIABLE_DEFINITION="VariableDefinition",e.SELECTION_SET="SelectionSet",e.FIELD="Field",e.ARGUMENT="Argument",e.FRAGMENT_SPREAD="FragmentSpread",e.INLINE_FRAGMENT="InlineFragment",e.FRAGMENT_DEFINITION="FragmentDefinition",e.VARIABLE="Variable",e.INT="IntValue",e.FLOAT="FloatValue",e.STRING="StringValue",e.BOOLEAN="BooleanValue",e.NULL="NullValue",e.ENUM="EnumValue",e.LIST="ListValue",e.OBJECT="ObjectValue",e.OBJECT_FIELD="ObjectField",e.DIRECTIVE="Directive",e.NAMED_TYPE="NamedType",e.LIST_TYPE="ListType",e.NON_NULL_TYPE="NonNullType",e.SCHEMA_DEFINITION="SchemaDefinition",e.OPERATION_TYPE_DEFINITION="OperationTypeDefinition",e.SCALAR_TYPE_DEFINITION="ScalarTypeDefinition",e.OBJECT_TYPE_DEFINITION="ObjectTypeDefinition",e.FIELD_DEFINITION="FieldDefinition",e.INPUT_VALUE_DEFINITION="InputValueDefinition",e.INTERFACE_TYPE_DEFINITION="InterfaceTypeDefinition",e.UNION_TYPE_DEFINITION="UnionTypeDefinition",e.ENUM_TYPE_DEFINITION="EnumTypeDefinition",e.ENUM_VALUE_DEFINITION="EnumValueDefinition",e.INPUT_OBJECT_TYPE_DEFINITION="InputObjectTypeDefinition",e.DIRECTIVE_DEFINITION="DirectiveDefinition",e.SCHEMA_EXTENSION="SchemaExtension",e.SCALAR_TYPE_EXTENSION="ScalarTypeExtension",e.OBJECT_TYPE_EXTENSION="ObjectTypeExtension",e.INTERFACE_TYPE_EXTENSION="InterfaceTypeExtension",e.UNION_TYPE_EXTENSION="UnionTypeExtension",e.ENUM_TYPE_EXTENSION="EnumTypeExtension",e.INPUT_OBJECT_TYPE_EXTENSION="InputObjectTypeExtension"})(ye||(ye={}));const Ir=e=>typeof e=="string"?Dn(e):null;function Dn(e){try{return JSON.parse(e)}catch{return e}}const vr=e=>typeof e=="object"?JSON.stringify(e):typeof e=="string"?e:null,Or=new ee.GraphQLScalarType({name:"ObjectOrString",description:"A string or the string representation of an object (a stringified object).",parseValue:Ir,serialize:vr,parseLiteral(e){return e.kind===ye.STRING?Dn(e.value):null}}),R=e=>"Price"in e&&"seller"in e&&"product"in e,F=e=>"skuName"in e,Cr={priceCurrency:async(e,n,t)=>{const{loaders:{salesChannelLoader:r},storage:{channel:i}}=t;return(await r.load(i.salesChannel)).CurrencyCode??""},priceValidUntil:e=>R(e)?e.PriceValidUntil??"":F(e)?e.priceValidUntil??"":null,itemCondition:()=>"https://schema.org/NewCondition",availability:async e=>R(e)?Ue(M(e)):F(e)?Ue(Rt(e.availability)):null,seller:(e,n,t)=>R(e)?{identifier:t.storage.channel?.seller||e.seller.sellerId||""}:F(e)?{identifier:e.seller}:null,price:e=>R(e)?x(e):F(e)?e.sellingPrice/100:null,priceWithTaxes:e=>R(e)?$(x(e),e?.Tax,e.product.unitMultiplier):F(e)?$(e.sellingPrice/100,e.tax/100,e.unitMultiplier):null,sellingPrice:e=>R(e)?Ft(e):F(e)?e.sellingPrice/100:null,listPrice:e=>R(e)?e.ListPrice??0:F(e)?e.listPrice/100:null,listPriceWithTaxes:e=>R(e)?$(e.ListPrice??0,e?.Tax,e.product.unitMultiplier):F(e)?$(e.listPrice/100,e.tax/100,e.unitMultiplier):null,itemOffered:e=>R(e)?e.product:F(e)?{...e.product,attachmentsValues:e.attachments}:null,quantity:e=>R(e)?e.AvailableQuantity??0:F(e)?e.quantity:null,isGift:e=>F(e)?e.isGift??!1:null},br=({linkText:e})=>`/${e}/p`,Dr=({offer:e,seller:n,product:t})=>({...e,product:t,seller:n}),Pr={imageText:"image",imageUrl:"https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg",imageLabel:"label"},Pn=(e,n)=>`${e}-${n}`,wr=(e,n)=>`/${Pn(e,n)}/p`,Ar=e=>Array.isArray(e)&&e.length>0?e:null;function wn(e){return e.replace(/^\/+|\/+$/g,"")}const Er=(e,n)=>{const t=e.findIndex(r=>wn(r).split("/").at(-1)===n);return t<0?0:t},Tr={productID:({itemId:e})=>e,name:({isVariantOf:e,name:n})=>n??e.productName,slug:({isVariantOf:{linkText:e},itemId:n})=>Pn(e,n),description:({isVariantOf:{description:e}})=>e,seo:({isVariantOf:e})=>({title:e.productTitle||e.productName,description:e.metaTagDescription||e.description,canonical:br(e)}),brand:({isVariantOf:{brand:e}})=>({name:e}),unitMultiplier:({unitMultiplier:e})=>e,breadcrumbList:({isVariantOf:{categories:e,productName:n,linkText:t,categoryId:r,categoriesIds:i},itemId:a})=>{const o=Er(i,r),s=e[o],l=wn(s).split("/");return{itemListElement:[...l.map((d,g)=>{const p=`/${l.slice(0,g+1).map(pn).join("/")}/`;return{name:d,item:p,position:g+1}}),{name:n,item:wr(t,a),position:l.length+1}],numberOfItems:l.length}},image:({images:e},n)=>{const t=(Ar(e)??[Pr]).map(({imageUrl:s,imageText:l,imageLabel:d})=>({alternateName:l??"",url:s.replace("vteximg.com.br","vtexassets.com"),keywords:d}));if(typeof n!="object")return t;let{context:r,limit:i}=n;const a=r!=="generic";i=i||-1,i=i<=-1?void 0:i;let o=a?t.filter(({keywords:s})=>s===r):t;return o=o.length===0?t:o,o.slice(0,i)},sku:({itemId:e})=>e,gtin:({ean:e,referenceId:n})=>e||(n[0]?.Value??""),mpn:({isVariantOf:{manufacturerCode:e}})=>e??"",review:()=>[],aggregateRating:()=>({}),offers:e=>e.sellers.map(n=>Dr({offer:n.commertialOffer,seller:n,product:e})).sort(un),isVariantOf:e=>e,additionalProperty:({variations:e=[],attachmentsValues:n=[],attributes:t=[]})=>{const r=e.flatMap(({name:o,values:s})=>s.map(l=>({name:o,value:l,valueReference:Q.specification}))),i=n.map(Sn),a=t.map(nr);return[...r,...i,...a]},hasSpecifications:({isVariantOf:e})=>!!e.skuSpecifications?.length,skuSpecifications:({isVariantOf:{skuSpecifications:e}})=>e??[],specificationGroups:({isVariantOf:{specificationGroups:e}})=>e,releaseDate:({isVariantOf:{releaseDate:e}})=>e??"",advertisement:({isVariantOf:{advertisement:e}})=>e,deliveryPromiseBadges:({isVariantOf:{deliveryPromisesBadges:e}})=>e},Ur=new Set(["allSpecifications"]),kr={hasVariant:e=>e.isVariantOf.items.map(n=>B(n,e.isVariantOf)),productGroupID:({isVariantOf:e})=>e.productId,name:e=>e.isVariantOf.productName,skuVariants:e=>e,additionalProperty:({isVariantOf:{specificationGroups:e}})=>e.filter(n=>!Ur.has(n.name)).flatMap(({specifications:n})=>n.flatMap(({name:t,values:r})=>r.map(i=>({name:t,value:i,valueReference:Q.specification}))))},_r={propertyID:e=>e.propertyID||yn(e),name:({name:e})=>e,value:({value:e})=>e,valueReference:({valueReference:e})=>e},Fr=async(e,{operationId:n},{clients:{commerce:t}})=>{if(!n)throw new T("Missing operationId");return t.orderEntry.getOperation({operationId:n})},Rr=async(e,{orderFormId:n},{clients:{commerce:t}})=>{if(!n)throw new T("Missing orderFormId");const{items:r}=await t.orderEntry.getOrderFormItems({orderFormId:n});return(r??[]).map(i=>({id:i.id,name:i.name,price:i.price,listPrice:i.listPrice,quantity:i.quantity,imageUrl:i.imageUrl??null,availability:i.availability,seller:i.seller,unitMultiplier:i.unitMultiplier??1}))},Ie=e=>{const n=e.flatMap(r=>r.sellers.map(i=>({offer:i.commertialOffer,sku:r}))),t=me(n,({offer:r},{offer:i})=>un(r,i));return t?t.sku:e[0]},Nr=e=>e!==""&&!Number.isNaN(Number(e)),xe={price_desc:"price:desc",price_asc:"price:asc",orders_desc:"orders:desc",name_desc:"name:desc",name_asc:"name:asc",release_desc:"release:desc",discount_desc:"discount:desc",score_desc:""},An="Invalid SkuId",Lr="Slug was set but the fetched sku does not satisfy the slug condition.",Br=e=>Ce(e)||e instanceof Error&&(e.message===An||e.message.startsWith(Lr)),Mr={product:async(e,{locator:n},t)=>{const r=Le(n),i=Ne(n),a=jt(n),o=qt(n);r&&he(t,r),i&&fe(t,i);const{loaders:{skuLoader:s},clients:{commerce:l,search:d}}=t;try{const g=a??o?.split("-").pop()??"";if(!Nr(g))throw new Error(An);const p=await s.load(g);if(o&&p.isVariantOf.linkText&&!o.startsWith(p.isVariantOf.linkText))throw new Error(`Slug was set but the fetched sku does not satisfy the slug condition. slug: ${o}, linkText: ${p.isVariantOf.linkText}`);return p}catch(g){if(!Br(g))throw g;if(o==null)throw new T("Missing slug or id");const p=await l.catalog.portal.pagetype(`${o}/p`);if(p.pageType!=="Product"||!p.id)throw new L(`No product found for slug ${o}`);const c=await d.fetchProduct({field:"id",value:String(p.id)}).catch(()=>null);if(!c)throw new L(`No product found for id ${p.id}`);const u=Ie(c.items);return B(u,c)}},collection:(e,{slug:n},t)=>{const{loaders:{collectionLoader:r}}=t;return r.load(n)},search:async(e,{first:n,after:t,sort:r,term:i,selectedFacets:a,sponsoredCount:o},s)=>{const l=Le(a),d=Ne(a),g=xt(a);l&&he(s,l),d&&fe(s,d);const p=t?Number(t):0,c={page:Math.ceil(p/n)||0,count:n,query:i??void 0,sort:xe[r??"score_desc"]??xe.score_desc,selectedFacets:a?.flatMap(Fe)??[],sponsoredCount:o??void 0};if(g){const S=(await s.clients.commerce.catalog.products.crossselling({type:mn[g.key],productId:g.value})).map(I=>I.productId).slice(0,n),f=s.clients.search.productsByIdentifier({field:"id",values:S}).then(I=>({products:I,recordsFiltered:I.length,pagination:{count:I.length,current:{index:0,proxyURL:""},before:[],after:[],perPage:n,next:{index:0,proxyURL:""},previous:{index:0,proxyURL:""},first:{index:0,proxyURL:""},last:{index:0,proxyURL:""}},sampling:!1,options:{sorts:[],counts:[]},translated:!1,locale:"",query:"",operator:"and",fuzzy:"0",searchId:""}));return{searchArgs:c,productSearchPromise:f}}const u=s.clients.search.products(c);return{searchArgs:c,productSearchPromise:u}},allProducts:async(e,{first:n,after:t},r)=>{const{clients:{search:i}}=r,a=t?Number(t):0,o=await i.products({page:Math.ceil(a/n),count:n}),s=o.products.flatMap(l=>l.items.map(d=>B(d,l))).filter(l=>l.sellers.length>0);return{pageInfo:{hasNextPage:o.pagination.after.length>0,hasPreviousPage:o.pagination.before.length>0,startCursor:"0",endCursor:o.recordsFiltered.toString(),totalCount:o.recordsFiltered},edges:s.map((l,d)=>({node:l,cursor:(a+d).toString()}))}},products:async(e,{productIds:n},t)=>{const{clients:{search:r}}=t;return n.length?(await r.productsByIdentifier({field:"id",values:n})).flatMap(a=>a.items.map(o=>B(o,a))).filter(a=>n.includes(a.itemId)&&a.sellers.length>0):[]},allCollections:async(e,{first:n,after:t},r)=>{const{clients:{commerce:i}}=r,a=t?Number(t):0,[o,s]=await Promise.all([i.catalog.brand.list(),i.catalog.category.tree()]),l=[],d=(c,u)=>{l.push({...c,level:u});for(const m of c.children)d(m,u+1)};for(const c of s)d(c,0);const p=[...o.filter(c=>c.isActive).map(c=>({...c,type:"brand"})),...l].filter(c=>!!gn.slug(c,null,r,null));return{pageInfo:{hasNextPage:p.length-a>n,hasPreviousPage:a>0,startCursor:"0",endCursor:(Math.min(n,p.length-a)-1).toString(),totalCount:p.length},edges:p.slice(a,a+n).map((c,u)=>({node:c,cursor:(a+u).toString()}))}},shipping:async(e,{country:n,items:t,postalCode:r},i)=>{const{loaders:{simulationLoader:a},clients:{commerce:o}}=i,[s,l]=await Promise.all([a.load({country:n,items:t,postalCode:r}),o.checkout.address({postalCode:r,country:n})]);return{...s,address:l}},redirect:async(e,{term:n,selectedFacets:t},r)=>{if(!n&&(!t||!t.length))return null;const{redirect:i}=await r.clients.search.products({page:1,count:1,query:n??void 0,selectedFacets:t?.flatMap(Fe)??[],allowRedirect:!0});return{url:i}},sellers:async(e,{postalCode:n,geoCoordinates:t,country:r,salesChannel:i},a)=>{const{clients:{commerce:o}}=a,l=(await o.checkout.region({postalCode:n,geoCoordinates:t,country:r,salesChannel:i}))?.[0],{id:d,sellers:g}=l;return{id:d,sellers:g}},profile:async(e,{id:n},t)=>{const{clients:{commerce:r}}=t,i=await r.profile.addresses(n);function a(s){return!s||Object.keys(s).length===0?[]:Object.values(s).map(l=>JSON.parse(l))}return{addresses:a(i)}},productCount:async(e,{term:n},t)=>{const{clients:{search:r}}=t;return await r.productCount({query:n??void 0})},userOrder:async(e,{orderId:n},t)=>{try{if(!n)throw new T("Missing orderId");const{clients:{commerce:r}}=t,i=await r.oms.userOrder({orderId:n});if(!i)throw new L(`No order found for id ${n}`);let a=null;try{const l=await r.oms.getCommercialAuthorizationsByOrderId({orderId:n});a=hn(l)}catch{}const s=(await r.masterData.getShopperById({userId:i.purchaseAgentData?.purchaseAgents?.[0]?.userId??""})??[])[0]??{};return{orderId:i.orderId,creationDate:i.creationDate,totals:i.totals,items:i.items,shippingData:i.shippingData,paymentData:i.paymentData,customData:i.customData,status:i.status,statusDescription:i.statusDescription,allowCancellation:i.allowCancellation,storePreferencesData:i.storePreferencesData,clientProfileData:i.clientProfileData,canProcessOrderAuthorization:(i.status==="waiting-for-confirmation"||i.status==="waiting-for-authorization")&&!!a,ruleForAuthorization:a,shopper:{firstName:s?.firstName||"",lastName:s?.lastName||"",email:s?.email||"",phone:s?.phone||""},budgetData:i.budgetData??{budgets:[]}}}catch(r){const i=r.message;let a={};try{const s=JSON.parse(i);a=s.error||s}catch{a={message:i}}const o=a?.message||i;throw Ce(r)?new L(`No order found for id ${n}. ${o}.`):rn(r)?new K(`You are forbidden to interact with order with id ${n}. ${o}.`):r}},listUserOrders:async(e,n,t)=>{const{clients:{commerce:r}}=t,i=await r.oms.listUserOrders(n);return{list:i.list?.map(a=>({orderId:a.orderId,creationDate:a.creationDate,clientName:a.clientName,items:a.items,totalValue:a.totalValue,status:a.status,statusDescription:a.statusDescription,ShippingEstimatedDate:a.ShippingEstimatedDate,customFields:a.customFields,currencyCode:a.currencyCode})),paging:i.paging}},validateUser:async(e,n,t)=>({isValid:!0}),userDetails:async(e,n,t)=>{const{account:r,headers:i,clients:{commerce:a}}=t,s=te(ne(i?.cookie??"",r))?.userId??"",[l,d,g]=await Promise.all([a.session("").catch(()=>null),s?a.masterData.getShopperById({userId:s}).catch(()=>null):Promise.resolve(null),s?a.licenseManager.getUserRoles({userId:s}).catch(()=>null):Promise.resolve(null)]),p=d?.[0],c=l?.namespaces.authentication??null,u=`${(p?.firstName??"").trim()} ${(p?.lastName??"").trim()}`.trim();return{username:c?.storeUserEmail?.value??"",name:u,email:c?.storeUserEmail?.value??"",phone:p?.phone??"",role:g?.Roles?.map(m=>m.Name)??[],orgUnit:c?.unitName?.value??""}},accountProfile:async(e,n,t)=>{const{account:r,headers:i,clients:{commerce:a}}=t,o=te(ne(i?.cookie??"",r));if(!o?.userId)return null;if(o?.isRepresentative){const l=await a.session("").catch(()=>null);if(!l)return null;const d=l.namespaces.profile??null;return{name:((await a.masterData.getContractById({contractId:d?.id?.value??""}))?.corporateName??`${(d?.firstName?.value??"").trim()} ${(d?.lastName?.value??"").trim()}`.trim())||"",email:d?.email?.value||"",id:d?.id?.value||""}}const s=await a.licenseManager.getUserById({userId:o?.userId}).catch(()=>null);return{name:s?.name||"",email:s?.email||"",id:s?.id||""}},pickupPoints:async(e,{geoCoordinates:n},t)=>{const{clients:{commerce:r}}=t;return await r.checkout.pickupPoints({geoCoordinates:n})},orderEntryOperation:Fr,orderFormItems:Rr},$r={reviewRating:()=>({ratingValue:5,bestRating:5}),author:()=>({name:""})},zr=(e,n,t)=>n?e.key==="category-1":t?e.key==="brand":!1,Vr={suggestions:async(e,n,t)=>{const{clients:{search:r}}=t,{searchArgs:i}=e;if(!i.query)return{terms:(await r.topSearches()).searches.map(p=>({value:p.term,count:p.count})),products:[]};const{productSearchPromise:a}=e,[o,s]=await Promise.all([r.suggestedTerms(i),a]),l=s.products.map(g=>{const p=Ie(g.items);return p&&B(p,g)}).filter(g=>!!g),{searches:d}=o;return{terms:d.map(g=>({value:g.term,count:g.count})),products:l}},products:async({productSearchPromise:e})=>{const n=await e,t=n.products.map(r=>{const i=Ie(r.items);return i&&B(i,r)}).filter(r=>!!r);return{pageInfo:{hasNextPage:n.pagination.after.length>0,hasPreviousPage:n.pagination.before.length>0,startCursor:"0",endCursor:n.recordsFiltered.toString(),totalCount:n.recordsFiltered},edges:t.map((r,i)=>({node:r,cursor:i.toString()}))}},facets:async({searchArgs:e},n,t)=>{const{clients:{search:r}}=t;t.storage.searchArgs=e;const{facets:i=[]}=await r.facets(e),a=!e.query,o=e.selectedFacets?.length?e.selectedFacets[0].key==="category-1":!1,s=e.selectedFacets?.length?e.selectedFacets[0].key==="brand":!1;return i.filter(d=>!a||!zr(d,o,s))},metadata:async({productSearchPromise:e})=>{const n=await e;return{isTermMisspelled:n.correction?.misspelled??!1,logicalOperator:n.operator,fuzzy:n.fuzzy}},searchId:async({productSearchPromise:e})=>(await e).searchId},xr={title:({title:e})=>e??"",description:({description:e})=>e??"",canonical:({canonical:e})=>e??"",titleTemplate:()=>""},qr=["bd","d","h","m"],jr=e=>qr.includes(e),Wr={bd:{0:"Today",1:"In 1 business day",other:"Up to # business days"},d:{0:"Today",1:"In 1 day",other:"Up to # days"},h:{0:"Now",1:"In 1 hour",other:"Up to # hours"},m:{0:"Now",1:"In 1 minute",other:"Up to # minutes"}},En=e=>{const[n,t]=[e.split(/\D+/)[0],e.split(/[0-9]+/)[1]],r=n!==""&&!Number.isNaN(Number(n)),i=jr(t);if(!r||!i)return"";const a=Number(n)<2?Number(n):"other";return Wr[t][a].replace("#",n)??""},Gr={carrier:e=>e?.friendlyName??e?.name??"",price:e=>e?.price?e.price/100:e?.price,localizedEstimates:e=>e?.shippingEstimate?En(e.shippingEstimate):""},qe="skuvariation";function je(e,n){const t=`${qe}${n}`.toLowerCase(),r=e.find(a=>a.imageLabel===t);if(r)return r;const i=e.find(a=>a.imageLabel===qe);return i||e[0]}function Hr(e,n,t){const r={};return e.forEach(i=>{const a=i.variations;if(a.length===0)return;const o=`${n}-${a.find(l=>l.name===n)?.values[0]??""}`,s=a.reduce((l,d)=>d.name===n?l:l+`-${d.name}-${d.values[0]}`,o);r[s]=`${t}-${i.itemId}`}),r}function We(e){const n={};return e.forEach(t=>{n[t.name]=t.values[0]}),n}function Xr(e){const n={};return e?.forEach(t=>{n[t.field.originalName??t.field.name]=t.values.map(r=>r.originalName??r.name)}),n}function Yr(e,n){return Number.isNaN(Number(e)-Number(n))?e<n?-1:e>n?1:0:Number(e)-Number(n)}function Jr(e){const n=e;for(const t in e)e[t].every(i=>!Number.isNaN(Number(i.value)))&&e[t].sort((i,a)=>Yr(i.value,a.value));return n}function Kr(e,n,t){const r={},i=new Set;return e.forEach(a=>{if(a.variations.length===0)return;const o=a.variations.find(l=>l.name===n);if(!(o?.values[0]===t)){const l=`${n}-${o?.values[0]}`;if(!o||i.has(l))return;i.add(l);const d=je(a.images,n),g={src:d.imageUrl,alt:d.imageLabel??"",label:`${n}: ${o.values[0]}`,value:o.values[0]};r[o.name]?r[o.name].push(g):r[o.name]=[g];return}a.variations.forEach(l=>{const d=`${l.name}-${l.values[0]}`;if(i.has(d))return;i.add(d);const g=je(a.images,l.name),p={src:g.imageUrl,alt:g.imageText??"",label:`${l.name}: ${l.values[0]}`,value:l.values[0]};r[l.name]?r[l.name].push(p):r[l.name]=[p]})}),Jr(r)}const Qr={activeVariations:e=>We(e.variations),allVariantsByName:e=>Xr(e.isVariantOf.skuSpecifications),slugsMap:(e,n)=>Hr(e.isVariantOf.items,n.dominantVariantName??e.variations[0]?.name,e.isVariantOf.linkText),availableVariations:(e,n)=>{const t=n.dominantVariantName??e.variations[0]?.name,i=We(e.variations)[t];return Kr(e.isVariantOf.items,t,i)},allVariantProducts:e=>e.isVariantOf.items.map(n=>B(n,e.isVariantOf))},Zr={"pickup-in-point":"Pickup",delivery:"Delivery",pickup:"Pickup","take-away":"Take away","":""},ei={deliveryOptionsData:e=>{const{shippingData:n,items:t}=e,r=n?.logisticsInfo||[],i=n?.selectedAddresses||n?.availableAddresses||[n?.address],a=r.reduce((d,g)=>{const p=g?.selectedSla||"",c=g?.selectedDeliveryChannel||g?.deliveryChannel||"",u=g?.deliveryCompany||"",m=g?.deliveryWindow,S=g?.pickupStoreInfo,f=g?.shippingEstimate||"",I=g?.shippingEstimate?En(g?.shippingEstimate):"",D=g?.shippingEstimateDate||"",E=g?.addressId||"",P=g?.itemIndex??0,O=t?.[P],w=O?.seller||"",h=`${p}|${c}|${u}|${w}|${f}|${D}|${E}|${m?.startDateUtc}|${m?.endDateUtc}`,b=i?.find(_=>_?.addressId===E),C=`${Zr[c]||""} ${I} ${b?.neighborhood?`to ${b?.neighborhood}`:""}`.trim(),{taxPriceTagsTotal:A,taxPriceTags:v}=ni(O?.priceTags??[]),U=(O?.sellingPrice??0)*(O?.quantity??0)+(O?.tax??0)+(A??0);return d[h]||(d[h]={selectedSla:p,deliveryChannel:c,deliveryCompany:u,deliveryWindow:m,shippingEstimate:f,shippingEstimateDate:D,seller:w,friendlyShippingEstimate:I,friendlyDeliveryOptionName:C,address:b,pickupStoreInfo:S,quantityOfDifferentItems:0,total:0,items:[]}),d[h]&&(d[h].items?.push({id:O?.id||"",uniqueId:O?.uniqueId||"",name:O?.name||"",quantity:O?.quantity||0,price:O?.price||0,sellingPrice:O?.sellingPrice||0,imageUrl:O?.imageUrl||"",taxPriceTags:v??[],taxPriceTagsTotal:A??0,tax:O?.tax||0,total:U}),d[h].quantityOfDifferentItems=(d[h].quantityOfDifferentItems??0)+1,d[h].total=(d[h].total??0)+U),d},{}),o=Object.values(a),s=n?.contactInformation?.[0],l={name:`${s?.firstName??""} ${s?.lastName??""}`.trim()||o?.[0]?.address?.receiverName||"",email:s?.email||"",phone:s?.phone||""};return{deliveryOptions:o,contact:l}},customFields:e=>{const n=e?.customData?.customFields||[];return Object.values(n.reduce((t,r)=>{const i=r?.linkedEntity?.type||"",a=r?.linkedEntity?.id||"",o=`${i}|${a||""}`;return t[o]||(t[o]={type:i,id:a,fields:[]}),t[o].fields.push(...r?.fields||[]),t},{}))||[]}};function ni(e){const t=e.filter(i=>i?.name?.includes("TAX")),r=t.reduce((i,a)=>i+(a.rawValue?a.rawValue*100:0),0);return{taxPriceTags:t,taxPriceTagsTotal:r}}const ti={StoreCollection:gn,StoreAggregateOffer:Lt,StoreProduct:Tr,StoreSeo:xr,StoreFacet:Wt,StoreFacetBoolean:Gt,StoreFacetRange:Ht,StoreFacetValueBoolean:Xt,StoreOffer:Cr,StoreAggregateRating:Bt,StoreReview:$r,StoreProductGroup:kr,StoreSearchResult:Vr,StorePropertyValue:_r,SkuVariants:Qr,ShippingSLA:Gr,UserOrderResult:ei,ObjectOrString:Or,Query:Mr,Mutation:yr},ri=()=>ti,ii=`"""
5
+ More info at: https://developers.vtex.com/vtex-rest-api/docs/customizable-fields-with-checkout-api`),r}},fr=(e,n)=>{const r=e.customData?.customApps.find(a=>a.id==="faststore")?.fields?.cartEtag;return r==null?!0:bn(e,n)!==r},Sr=async(e,{clients:{commerce:n}})=>n.checkout.clearOrderFormMessages({id:e}),qe=async(e,n,{clients:{commerce:t}})=>{if(!n)return e;const{updateShipping:r,addressChanged:i}=In(e,n);if(r){const a=sr(e,n,i),s=a||or(n);return!!n.deliveryMode?.deliveryWindow&&await t.checkout.shippingData({id:e.orderFormId,index:e.items.length,deliveryMode:n.deliveryMode,selectedAddresses:s},!1),t.checkout.shippingData({id:e.orderFormId,index:e.items.length,deliveryMode:n.deliveryMode,selectedAddresses:s},!0)}return e},yr=(e,n)=>{if(!e)return"";const r=J.parse(e)[n];return r?r.split("=")[1]:""},Ir=async(e,{cart:{order:n},session:t},r)=>{const i=yr(r.headers.cookie,"checkout.vtex.com"),{clients:{commerce:a},loaders:{skuLoader:o}}=r,s=t?.channel,c=t?.locale;s&&he(r,s),c&&fe(r,c);const d=await a.checkout.orderForm({id:i||void 0,channel:r.storage.channel}),g=d.orderFormId;d.messages.length!==0&&await Sr(g,r);const p=J.parse(r?.headers?.cookie??"")?.vtex_session,l=te(p),{acceptedOffer:u,shouldSplitItem:m}=n;if(fr(d,l)){const v=await ze(d,a,l).then(Me);if(g)return $e(v,o,m)}const f=Be(u),I=Be(d.items.map(ie)),D=Array.from(I.entries()),E=Array.from(f.entries()),{itemsToAdd:w,itemsToUpdate:O}=E.reduce((v,[T,k])=>{const j=I.get(T);if(!j)return k.forEach(W=>v.itemsToAdd.push(W)),v;const[_,...be]=j;if(Cn(d.items,_.itemOffered.sku)||On(d.items,_.itemOffered.sku))return v.itemsToUpdate.push(_),v;const oe=k.reduce((W,Tn)=>W+Tn.quantity,0);return v.itemsToUpdate.push({..._,quantity:oe}),be.forEach(W=>v.itemsToUpdate.push({...W,quantity:0})),v},{itemsToAdd:[],itemsToUpdate:[]}),P=D.filter(([v])=>!f.has(v)).flatMap(([,v])=>v.map(T=>({...T,quantity:0}))),h=[...w,...O,...P].map(mr),{updateShipping:b}=t?In(d,t):{updateShipping:!1};if(h.length===0&&!b)return null;let C;h.length>0?C=await a.checkout.updateOrderFormItems({id:d.orderFormId,orderItems:h,shouldSplitItem:m}).then(v=>qe(v,t,r)):C=await qe(d,t,r),C=await Promise.resolve(C).then(v=>{if(t?.marketingData){const T={...v.marketingData,...t.marketingData};return a.checkout.marketingData({id:d.orderFormId,marketingData:T})}return v}).then(v=>c&&v.clientPreferencesData?.locale!==c?a.checkout.clientPreferencesData({id:v.orderFormId,clientPreferencesData:{...v.clientPreferencesData,locale:c}}):v).then(v=>ze(v,a,l)).then(Me);const A=Oe(d.messages,C.messages);return hr(n,C)&&A?null:$e(C,o,m)};async function vr(e,n,t){try{const r=await e.commerce.checkout.address({postalCode:t,country:n}),i=r.geoCoordinates?{latitude:r.geoCoordinates[1],longitude:r.geoCoordinates[0]}:null;return{city:r.city,geoCoordinates:i}}catch(r){throw console.error(`Error while getting geo coordinates for the current postal code (${t}) and country (${n}).
6
+ `),r}}const Or=async(e,{session:n,search:t},{clients:r,headers:i,account:a})=>{const o=re.parse(n.channel??""),s=String(n.postalCode??""),c=n.country??"";let d=n.city??null,g=n.geoCoordinates??null;if((!d||!g)&&s!==""&&c!==""){const _=await vr(r,c,s);d=_.city,g=_.geoCoordinates}const l=new URLSearchParams(t);l.has("facets")&&l.delete("facets");const u=l.get("sc")??o.salesChannel;l.set("sc",u),s&&l.set("postalCode",s),c&&l.set("country",c),g&&l.set("geoCoordinates",`${g.longitude},${g.latitude}`),l.set("locale",n.locale);const{marketingData:m}=n,y={utmCampaign:l.get("utm_campaign")??m?.utmCampaign??"",utmMedium:l.get("utm_medium")??m?.utmMedium??"",utmSource:l.get("utm_source")??m?.utmSource??"",utmiCampaign:l.get("utmi_cp")??m?.utmiCampaign??"",utmiPage:l.get("utmi_p")??m?.utmiPage??"",utmiPart:l.get("utmi_pc")??m?.utmiPart??""},f=te(ne(i?.cookie??"",a));let I=!1;if(f)try{I=(await r.commerce.vtexid.validate())?.authStatus?.toLowerCase()==="success"}catch(_){console.warn("JWT validation failed:",_),I=!1}const D=I?f?.isRepresentative:!1,E=I?f?.customerId:void 0,w=I?f?.unitId:void 0,O=await r.commerce.session(l.toString()).catch(()=>null),P=O?.namespaces.profile??null,h=O?.namespaces.shopper??null,b=O?.namespaces.store??null,C=O?.namespaces.authentication??null,A=O?.namespaces.checkout??null,v=O?.namespaces.public??null;let T=null;if(D&&P?.id?.value)try{T=await r.commerce.masterData.getContractById({contractId:P.id.value})}catch{console.error(`Error while getting contract data for profile ID (${P.id.value}).
7
+ `)}let k;o.seller&&(s||g)&&(k=(await r.commerce.checkout.region({postalCode:s,geoCoordinates:g,country:c,salesChannel:u}))?.[0]?.sellers.find(oe=>o.seller===oe.id));const j={...n,currency:{code:b?.currencyCode?.value??n.currency.code,symbol:b?.currencySymbol?.value??n.currency.symbol},country:b?.countryCode?.value??c,channel:re.stringify({salesChannel:b?.channel?.value??o.salesChannel,regionId:A?.regionId?.value??o.regionId,seller:k?.id,hasOnlyDefaultSalesChannel:!b?.channel?.value}),b2b:D?{isRepresentative:D??!1,customerId:C?.customerId?.value??E??"",unitName:C?.unitName?.value??"",unitId:C?.unitId?.value??w??"",firstName:typeof h?.firstName?.value=="string"?h.firstName.value:"",lastName:typeof h?.lastName?.value=="string"?h.lastName.value:"",userName:`${typeof h?.firstName?.value=="string"?h.firstName.value:""} ${typeof h?.lastName?.value=="string"?h.lastName.value:""}`.trim(),userEmail:C?.storeUserEmail.value??"",savedPostalCode:v?.postalCode?.value??"",contractName:T?.corporateName??"",organizationManager:h?.organizationManager?.value??!1}:null,marketingData:y,person:P?.id?{id:P.id?.value??"",email:P.email?.value??"",givenName:P.firstName?.value??"",familyName:P.lastName?.value??""}:null,geoCoordinates:g?.latitude&&g?.longitude&&g||null,city:d};return Oe(n,j)?null:j},Cr={validateCart:Ir,validateSession:Or,subscribeToNewsletter:rr,cancelOrder:Zt,processOrderAuthorization:nr,uploadFileToOrderEntry:ir,startOrderEntryOperation:tr};var ye;(function(e){e.NAME="Name",e.DOCUMENT="Document",e.OPERATION_DEFINITION="OperationDefinition",e.VARIABLE_DEFINITION="VariableDefinition",e.SELECTION_SET="SelectionSet",e.FIELD="Field",e.ARGUMENT="Argument",e.FRAGMENT_SPREAD="FragmentSpread",e.INLINE_FRAGMENT="InlineFragment",e.FRAGMENT_DEFINITION="FragmentDefinition",e.VARIABLE="Variable",e.INT="IntValue",e.FLOAT="FloatValue",e.STRING="StringValue",e.BOOLEAN="BooleanValue",e.NULL="NullValue",e.ENUM="EnumValue",e.LIST="ListValue",e.OBJECT="ObjectValue",e.OBJECT_FIELD="ObjectField",e.DIRECTIVE="Directive",e.NAMED_TYPE="NamedType",e.LIST_TYPE="ListType",e.NON_NULL_TYPE="NonNullType",e.SCHEMA_DEFINITION="SchemaDefinition",e.OPERATION_TYPE_DEFINITION="OperationTypeDefinition",e.SCALAR_TYPE_DEFINITION="ScalarTypeDefinition",e.OBJECT_TYPE_DEFINITION="ObjectTypeDefinition",e.FIELD_DEFINITION="FieldDefinition",e.INPUT_VALUE_DEFINITION="InputValueDefinition",e.INTERFACE_TYPE_DEFINITION="InterfaceTypeDefinition",e.UNION_TYPE_DEFINITION="UnionTypeDefinition",e.ENUM_TYPE_DEFINITION="EnumTypeDefinition",e.ENUM_VALUE_DEFINITION="EnumValueDefinition",e.INPUT_OBJECT_TYPE_DEFINITION="InputObjectTypeDefinition",e.DIRECTIVE_DEFINITION="DirectiveDefinition",e.SCHEMA_EXTENSION="SchemaExtension",e.SCALAR_TYPE_EXTENSION="ScalarTypeExtension",e.OBJECT_TYPE_EXTENSION="ObjectTypeExtension",e.INTERFACE_TYPE_EXTENSION="InterfaceTypeExtension",e.UNION_TYPE_EXTENSION="UnionTypeExtension",e.ENUM_TYPE_EXTENSION="EnumTypeExtension",e.INPUT_OBJECT_TYPE_EXTENSION="InputObjectTypeExtension"})(ye||(ye={}));const br=e=>typeof e=="string"?Dn(e):null;function Dn(e){try{return JSON.parse(e)}catch{return e}}const Dr=e=>typeof e=="object"?JSON.stringify(e):typeof e=="string"?e:null,wr=new ee.GraphQLScalarType({name:"ObjectOrString",description:"A string or the string representation of an object (a stringified object).",parseValue:br,serialize:Dr,parseLiteral(e){return e.kind===ye.STRING?Dn(e.value):null}}),R=e=>"Price"in e&&"seller"in e&&"product"in e,F=e=>"skuName"in e,Pr={priceCurrency:async(e,n,t)=>{const{loaders:{salesChannelLoader:r},storage:{channel:i}}=t;return(await r.load(i.salesChannel)).CurrencyCode??""},priceValidUntil:e=>R(e)?e.PriceValidUntil??"":F(e)?e.priceValidUntil??"":null,itemCondition:()=>"https://schema.org/NewCondition",availability:async e=>R(e)?Te(M(e)):F(e)?Te(Mt(e.availability)):null,seller:(e,n,t)=>R(e)?{identifier:t.storage.channel?.seller||e.seller.sellerId||""}:F(e)?{identifier:e.seller}:null,price:e=>R(e)?x(e):F(e)?e.sellingPrice/100:null,priceWithTaxes:e=>R(e)?$(x(e),e?.Tax,e.product.unitMultiplier):F(e)?$(e.sellingPrice/100,e.tax/100,e.unitMultiplier):null,sellingPrice:e=>R(e)?Bt(e):F(e)?e.sellingPrice/100:null,listPrice:e=>R(e)?e.ListPrice??0:F(e)?e.listPrice/100:null,listPriceWithTaxes:e=>R(e)?$(e.ListPrice??0,e?.Tax,e.product.unitMultiplier):F(e)?$(e.listPrice/100,e.tax/100,e.unitMultiplier):null,itemOffered:e=>R(e)?e.product:F(e)?{...e.product,attachmentsValues:e.attachments}:null,quantity:e=>R(e)?e.AvailableQuantity??0:F(e)?e.quantity:null,isGift:e=>F(e)?e.isGift??!1:null},Ar=({linkText:e})=>`/${e}/p`,Er=({offer:e,seller:n,product:t})=>({...e,product:t,seller:n}),Ur={imageText:"image",imageUrl:"https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg",imageLabel:"label"},wn=(e,n)=>`${e}-${n}`,Tr=(e,n)=>`/${wn(e,n)}/p`,_r=e=>Array.isArray(e)&&e.length>0?e:null;function Pn(e){return e.replace(/^\/+|\/+$/g,"")}const kr=(e,n)=>{const t=e.findIndex(r=>Pn(r).split("/").at(-1)===n);return t<0?0:t},Fr={productID:({itemId:e})=>e,name:({isVariantOf:e,name:n})=>n??e.productName,slug:({isVariantOf:{linkText:e},itemId:n})=>wn(e,n),description:({isVariantOf:{description:e}})=>e,seo:({isVariantOf:e})=>({title:e.productTitle||e.productName,description:e.metaTagDescription||e.description,canonical:Ar(e)}),brand:({isVariantOf:{brand:e}})=>({name:e}),unitMultiplier:({unitMultiplier:e})=>e,breadcrumbList:({isVariantOf:{categories:e,productName:n,linkText:t,categoryId:r,categoriesIds:i},itemId:a})=>{const o=kr(i,r),s=e[o],c=Pn(s).split("/");return{itemListElement:[...c.map((d,g)=>{const p=`/${c.slice(0,g+1).map(pn).join("/")}/`;return{name:d,item:p,position:g+1}}),{name:n,item:Tr(t,a),position:c.length+1}],numberOfItems:c.length}},image:({images:e},n)=>{const t=(_r(e)??[Ur]).map(({imageUrl:s,imageText:c,imageLabel:d})=>({alternateName:c??"",url:s.replace("vteximg.com.br","vtexassets.com"),keywords:d}));if(typeof n!="object")return t;let{context:r,limit:i}=n;const a=r!=="generic";i=i||-1,i=i<=-1?void 0:i;let o=a?t.filter(({keywords:s})=>s===r):t;return o=o.length===0?t:o,o.slice(0,i)},sku:({itemId:e})=>e,gtin:({ean:e,referenceId:n})=>e||(n[0]?.Value??""),mpn:({isVariantOf:{manufacturerCode:e}})=>e??"",review:()=>[],aggregateRating:()=>({}),offers:e=>e.sellers.map(n=>Er({offer:n.commertialOffer,seller:n,product:e})).sort(un),isVariantOf:e=>e,additionalProperty:({variations:e=[],attachmentsValues:n=[],attributes:t=[]})=>{const r=e.flatMap(({name:o,values:s})=>s.map(c=>({name:o,value:c,valueReference:Q.specification}))),i=n.map(Sn),a=t.map(ar);return[...r,...i,...a]},hasSpecifications:({isVariantOf:e})=>!!e.skuSpecifications?.length,skuSpecifications:({isVariantOf:{skuSpecifications:e}})=>e??[],specificationGroups:({isVariantOf:{specificationGroups:e}})=>e,releaseDate:({isVariantOf:{releaseDate:e}})=>e??"",advertisement:({isVariantOf:{advertisement:e}})=>e,deliveryPromiseBadges:({isVariantOf:{deliveryPromisesBadges:e}})=>e},Rr=new Set(["allSpecifications"]),Nr={hasVariant:e=>e.isVariantOf.items.map(n=>B(n,e.isVariantOf)),productGroupID:({isVariantOf:e})=>e.productId,name:e=>e.isVariantOf.productName,skuVariants:e=>e,additionalProperty:({isVariantOf:{specificationGroups:e}})=>e.filter(n=>!Rr.has(n.name)).flatMap(({specifications:n})=>n.flatMap(({name:t,values:r})=>r.map(i=>({name:t,value:i,valueReference:Q.specification}))))},Lr={propertyID:e=>e.propertyID||yn(e),name:({name:e})=>e,value:({value:e})=>e,valueReference:({valueReference:e})=>e},Br=async(e,{operationId:n},{clients:{commerce:t}})=>{if(!n)throw new U("Missing operationId");return t.orderEntry.getOperation({operationId:n})},Mr=async(e,{orderFormId:n},{clients:{commerce:t}})=>{if(!n)throw new U("Missing orderFormId");const{items:r}=await t.orderEntry.getOrderFormItems({orderFormId:n});return(r??[]).map(i=>({id:i.id,name:i.name,price:i.price,listPrice:i.listPrice,quantity:i.quantity,imageUrl:i.imageUrl??null,availability:i.availability,seller:i.seller,unitMultiplier:i.unitMultiplier??1}))},Ie=e=>{const n=e.flatMap(r=>r.sellers.map(i=>({offer:i.commertialOffer,sku:r}))),t=me(n,({offer:r},{offer:i})=>un(r,i));return t?t.sku:e[0]},$r=e=>e!==""&&!Number.isNaN(Number(e)),xe={price_desc:"price:desc",price_asc:"price:asc",orders_desc:"orders:desc",name_desc:"name:desc",name_asc:"name:asc",release_desc:"release:desc",discount_desc:"discount:desc",score_desc:""},An="Invalid SkuId",zr="Slug was set but the fetched sku does not satisfy the slug condition.",qr=e=>Ce(e)||e instanceof Error&&(e.message===An||e.message.startsWith(zr)),xr={product:async(e,{locator:n},t)=>{const r=Le(n),i=Ne(n),a=Xt(n),o=Ht(n);r&&he(t,r),i&&fe(t,i);const{loaders:{skuLoader:s},clients:{commerce:c,search:d}}=t;try{const g=a??o?.split("-").pop()??"";if(!$r(g))throw new Error(An);const p=await s.load(g);if(o&&p.isVariantOf.linkText&&!o.startsWith(p.isVariantOf.linkText))throw new Error(`Slug was set but the fetched sku does not satisfy the slug condition. slug: ${o}, linkText: ${p.isVariantOf.linkText}`);return p}catch(g){if(!qr(g))throw g;if(o==null)throw new U("Missing slug or id");const p=await c.catalog.portal.pagetype(`${o}/p`);if(p.pageType!=="Product"||!p.id)throw new L(`No product found for slug ${o}`);const l=await d.fetchProduct({field:"id",value:String(p.id)}).catch(()=>null);if(!l)throw new L(`No product found for id ${p.id}`);const u=Ie(l.items);return B(u,l)}},collection:(e,{slug:n},t)=>{const{loaders:{collectionLoader:r}}=t;return r.load(n)},search:async(e,{first:n,after:t,sort:r,term:i,selectedFacets:a,sponsoredCount:o},s)=>{const c=Le(a),d=Ne(a),g=Gt(a);c&&he(s,c),d&&fe(s,d);const p=t?Number(t):0,l={page:Math.ceil(p/n)||0,count:n,query:i??void 0,sort:xe[r??"score_desc"]??xe.score_desc,selectedFacets:a?.flatMap(Fe)??[],sponsoredCount:o??void 0};if(g){const y=(await s.clients.commerce.catalog.products.crossselling({type:mn[g.key],productId:g.value})).map(I=>I.productId).slice(0,n),f=s.clients.search.productsByIdentifier({field:"id",values:y}).then(I=>({products:I,recordsFiltered:I.length,pagination:{count:I.length,current:{index:0,proxyURL:""},before:[],after:[],perPage:n,next:{index:0,proxyURL:""},previous:{index:0,proxyURL:""},first:{index:0,proxyURL:""},last:{index:0,proxyURL:""}},sampling:!1,options:{sorts:[],counts:[]},translated:!1,locale:"",query:"",operator:"and",fuzzy:"0",searchId:""}));return{searchArgs:l,productSearchPromise:f}}const u=s.clients.search.products(l);return{searchArgs:l,productSearchPromise:u}},allProducts:async(e,{first:n,after:t},r)=>{const{clients:{search:i}}=r,a=t?Number(t):0,o=await i.products({page:Math.ceil(a/n),count:n}),s=o.products.flatMap(c=>c.items.map(d=>B(d,c))).filter(c=>c.sellers.length>0);return{pageInfo:{hasNextPage:o.pagination.after.length>0,hasPreviousPage:o.pagination.before.length>0,startCursor:"0",endCursor:o.recordsFiltered.toString(),totalCount:o.recordsFiltered},edges:s.map((c,d)=>({node:c,cursor:(a+d).toString()}))}},products:async(e,{productIds:n},t)=>{const{clients:{search:r}}=t;return n.length?(await r.productsByIdentifier({field:"id",values:n})).flatMap(a=>a.items.map(o=>B(o,a))).filter(a=>n.includes(a.itemId)&&a.sellers.length>0):[]},allCollections:async(e,{first:n,after:t},r)=>{const{clients:{commerce:i}}=r,a=t?Number(t):0,[o,s]=await Promise.all([i.catalog.brand.list(),i.catalog.category.tree()]),c=[],d=(l,u)=>{c.push({...l,level:u});for(const m of l.children)d(m,u+1)};for(const l of s)d(l,0);const p=[...o.filter(l=>l.isActive).map(l=>({...l,type:"brand"})),...c].filter(l=>!!gn.slug(l,null,r,null));return{pageInfo:{hasNextPage:p.length-a>n,hasPreviousPage:a>0,startCursor:"0",endCursor:(Math.min(n,p.length-a)-1).toString(),totalCount:p.length},edges:p.slice(a,a+n).map((l,u)=>({node:l,cursor:(a+u).toString()}))}},shipping:async(e,{country:n,items:t,postalCode:r},i)=>{const{loaders:{simulationLoader:a},clients:{commerce:o}}=i,[s,c]=await Promise.all([a.load({country:n,items:t,postalCode:r}),o.checkout.address({postalCode:r,country:n})]);return{...s,address:c}},redirect:async(e,{term:n,selectedFacets:t},r)=>{if(!n&&(!t||!t.length))return null;const{redirect:i}=await r.clients.search.products({page:1,count:1,query:n??void 0,selectedFacets:t?.flatMap(Fe)??[],allowRedirect:!0});return{url:i}},sellers:async(e,{postalCode:n,geoCoordinates:t,country:r,salesChannel:i},a)=>{const{clients:{commerce:o}}=a,c=(await o.checkout.region({postalCode:n,geoCoordinates:t,country:r,salesChannel:i}))?.[0],{id:d,sellers:g}=c;return{id:d,sellers:g}},profile:async(e,{id:n},t)=>{const{clients:{commerce:r}}=t,i=await r.profile.addresses(n);function a(s){return!s||Object.keys(s).length===0?[]:Object.values(s).map(c=>JSON.parse(c))}return{addresses:a(i)}},productCount:async(e,{term:n},t)=>{const{clients:{search:r}}=t;return await r.productCount({query:n??void 0})},userOrder:async(e,{orderId:n},t)=>{try{if(!n)throw new U("Missing orderId");const{clients:{commerce:r}}=t,i=await r.oms.userOrder({orderId:n});if(!i)throw new L(`No order found for id ${n}`);let a=null;try{const c=await r.oms.getCommercialAuthorizationsByOrderId({orderId:n});a=hn(c)}catch{}const s=(await r.masterData.getShopperById({userId:i.purchaseAgentData?.purchaseAgents?.[0]?.userId??""})??[])[0]??{};return{orderId:i.orderId,creationDate:i.creationDate,totals:i.totals,items:i.items,shippingData:i.shippingData,paymentData:i.paymentData,customData:i.customData,status:i.status,statusDescription:i.statusDescription,allowCancellation:i.allowCancellation,storePreferencesData:i.storePreferencesData,clientProfileData:i.clientProfileData,canProcessOrderAuthorization:(i.status==="waiting-for-confirmation"||i.status==="waiting-for-authorization")&&!!a,ruleForAuthorization:a,shopper:{firstName:s?.firstName||"",lastName:s?.lastName||"",email:s?.email||"",phone:s?.phone||""},budgetData:i.budgetData??{budgets:[]}}}catch(r){const i=r.message;let a={};try{const s=JSON.parse(i);a=s.error||s}catch{a={message:i}}const o=a?.message||i;throw Ce(r)?new L(`No order found for id ${n}. ${o}.`):rn(r)?new K(`You are forbidden to interact with order with id ${n}. ${o}.`):r}},listUserOrders:async(e,n,t)=>{const{clients:{commerce:r}}=t,i=await r.oms.listUserOrders(n);return{list:i.list?.map(a=>({orderId:a.orderId,creationDate:a.creationDate,clientName:a.clientName,items:a.items,totalValue:a.totalValue,status:a.status,statusDescription:a.statusDescription,ShippingEstimatedDate:a.ShippingEstimatedDate,customFields:a.customFields,currencyCode:a.currencyCode})),paging:i.paging}},listUserQuotes:async(e,n,t)=>{const{clients:{commerce:r}}=t,i=await r.quotes.listUserQuotes(n),a=[...new Set(i.items.map(c=>c.createdBy).filter(Boolean))],o=new Map;return await Promise.all(a.map(async c=>{try{const[d]=await r.masterData.getShopperById({userId:c});if(d){const g=[d.firstName,d.lastName].filter(Boolean).join(" ");g&&o.set(c,g)}}catch{}})),{list:i.items.map(c=>({id:c.id,status:c.status,label:c.label??null,createdAt:c.createdAt,expiresAt:c.expiresAt,amount:c.amount,createdBy:c.createdBy?o.get(c.createdBy)??c.createdBy:null})),paging:{total:i.totalItems,currentPage:i.pageNumber,perPage:i.pageSize}}},validateUser:async(e,n,t)=>({isValid:!0}),isOrganizationMember:async(e,n,t)=>{const{clients:{commerce:r}}=t;return!!(await r.session("").catch(()=>null))?.namespaces.authentication?.unitId?.value},userDetails:async(e,n,t)=>{const{account:r,headers:i,clients:{commerce:a}}=t,s=te(ne(i?.cookie??"",r))?.userId??"",[c,d,g]=await Promise.all([a.session("").catch(()=>null),s?a.masterData.getShopperById({userId:s}).catch(()=>null):Promise.resolve(null),s?a.licenseManager.getUserRoles({userId:s}).catch(()=>null):Promise.resolve(null)]),p=d?.[0],l=c?.namespaces.authentication??null,u=`${(p?.firstName??"").trim()} ${(p?.lastName??"").trim()}`.trim();return{username:l?.storeUserEmail?.value??"",name:u,email:l?.storeUserEmail?.value??"",phone:p?.phone??"",role:g?.Roles?.map(m=>m.Name)??[],orgUnit:l?.unitName?.value??""}},accountProfile:async(e,n,t)=>{const{account:r,headers:i,clients:{commerce:a}}=t,o=te(ne(i?.cookie??"",r));if(!o?.userId)return null;if(o?.isRepresentative){const c=await a.session("").catch(()=>null);if(!c)return null;const d=c.namespaces.profile??null;return{name:((await a.masterData.getContractById({contractId:d?.id?.value??""}))?.corporateName??`${(d?.firstName?.value??"").trim()} ${(d?.lastName?.value??"").trim()}`.trim())||"",email:d?.email?.value||"",id:d?.id?.value||""}}const s=await a.licenseManager.getUserById({userId:o?.userId}).catch(()=>null);return{name:s?.name||"",email:s?.email||"",id:s?.id||""}},pickupPoints:async(e,{geoCoordinates:n},t)=>{const{clients:{commerce:r}}=t;return await r.checkout.pickupPoints({geoCoordinates:n})},orderEntryOperation:Br,orderFormItems:Mr},Vr={reviewRating:()=>({ratingValue:5,bestRating:5}),author:()=>({name:""})},jr=(e,n,t)=>n?e.key==="category-1":t?e.key==="brand":!1,Wr={suggestions:async(e,n,t)=>{const{clients:{search:r}}=t,{searchArgs:i}=e;if(!i.query)return{terms:(await r.topSearches()).searches.map(p=>({value:p.term,count:p.count})),products:[]};const{productSearchPromise:a}=e,[o,s]=await Promise.all([r.suggestedTerms(i),a]),c=s.products.map(g=>{const p=Ie(g.items);return p&&B(p,g)}).filter(g=>!!g),{searches:d}=o;return{terms:d.map(g=>({value:g.term,count:g.count})),products:c}},products:async({productSearchPromise:e})=>{const n=await e,t=n.products.map(r=>{const i=Ie(r.items);return i&&B(i,r)}).filter(r=>!!r);return{pageInfo:{hasNextPage:n.pagination.after.length>0,hasPreviousPage:n.pagination.before.length>0,startCursor:"0",endCursor:n.recordsFiltered.toString(),totalCount:n.recordsFiltered},edges:t.map((r,i)=>({node:r,cursor:i.toString()}))}},facets:async({searchArgs:e},n,t)=>{const{clients:{search:r}}=t;t.storage.searchArgs=e;const{facets:i=[]}=await r.facets(e),a=!e.query,o=e.selectedFacets?.length?e.selectedFacets[0].key==="category-1":!1,s=e.selectedFacets?.length?e.selectedFacets[0].key==="brand":!1;return i.filter(d=>!a||!jr(d,o,s))},metadata:async({productSearchPromise:e})=>{const n=await e;return{isTermMisspelled:n.correction?.misspelled??!1,logicalOperator:n.operator,fuzzy:n.fuzzy}},searchId:async({productSearchPromise:e})=>(await e).searchId},Gr={title:({title:e})=>e??"",description:({description:e})=>e??"",canonical:({canonical:e})=>e??"",titleTemplate:()=>""},Hr=["bd","d","h","m"],Xr=e=>Hr.includes(e),Yr={bd:{0:"Today",1:"In 1 business day",other:"Up to # business days"},d:{0:"Today",1:"In 1 day",other:"Up to # days"},h:{0:"Now",1:"In 1 hour",other:"Up to # hours"},m:{0:"Now",1:"In 1 minute",other:"Up to # minutes"}},En=e=>{const[n,t]=[e.split(/\D+/)[0],e.split(/[0-9]+/)[1]],r=n!==""&&!Number.isNaN(Number(n)),i=Xr(t);if(!r||!i)return"";const a=Number(n)<2?Number(n):"other";return Yr[t][a].replace("#",n)??""},Jr={carrier:e=>e?.friendlyName??e?.name??"",price:e=>e?.price?e.price/100:e?.price,localizedEstimates:e=>e?.shippingEstimate?En(e.shippingEstimate):""},Ve="skuvariation";function je(e,n){const t=`${Ve}${n}`.toLowerCase(),r=e.find(a=>a.imageLabel===t);if(r)return r;const i=e.find(a=>a.imageLabel===Ve);return i||e[0]}function Kr(e,n,t){const r={};return e.forEach(i=>{const a=i.variations;if(a.length===0)return;const o=`${n}-${a.find(c=>c.name===n)?.values[0]??""}`,s=a.reduce((c,d)=>d.name===n?c:c+`-${d.name}-${d.values[0]}`,o);r[s]=`${t}-${i.itemId}`}),r}function We(e){const n={};return e.forEach(t=>{n[t.name]=t.values[0]}),n}function Qr(e){const n={};return e?.forEach(t=>{n[t.field.originalName??t.field.name]=t.values.map(r=>r.originalName??r.name)}),n}function Zr(e,n){return Number.isNaN(Number(e)-Number(n))?e<n?-1:e>n?1:0:Number(e)-Number(n)}function ei(e){const n=e;for(const t in e)e[t].every(i=>!Number.isNaN(Number(i.value)))&&e[t].sort((i,a)=>Zr(i.value,a.value));return n}function ni(e,n,t){const r={},i=new Set;return e.forEach(a=>{if(a.variations.length===0)return;const o=a.variations.find(c=>c.name===n);if(!(o?.values[0]===t)){const c=`${n}-${o?.values[0]}`;if(!o||i.has(c))return;i.add(c);const d=je(a.images,n),g={src:d.imageUrl,alt:d.imageLabel??"",label:`${n}: ${o.values[0]}`,value:o.values[0]};r[o.name]?r[o.name].push(g):r[o.name]=[g];return}a.variations.forEach(c=>{const d=`${c.name}-${c.values[0]}`;if(i.has(d))return;i.add(d);const g=je(a.images,c.name),p={src:g.imageUrl,alt:g.imageText??"",label:`${c.name}: ${c.values[0]}`,value:c.values[0]};r[c.name]?r[c.name].push(p):r[c.name]=[p]})}),ei(r)}const ti={activeVariations:e=>We(e.variations),allVariantsByName:e=>Qr(e.isVariantOf.skuSpecifications),slugsMap:(e,n)=>Kr(e.isVariantOf.items,n.dominantVariantName??e.variations[0]?.name,e.isVariantOf.linkText),availableVariations:(e,n)=>{const t=n.dominantVariantName??e.variations[0]?.name,i=We(e.variations)[t];return ni(e.isVariantOf.items,t,i)},allVariantProducts:e=>e.isVariantOf.items.map(n=>B(n,e.isVariantOf))},ri={"pickup-in-point":"Pickup",delivery:"Delivery",pickup:"Pickup","take-away":"Take away","":""},ii={deliveryOptionsData:e=>{const{shippingData:n,items:t}=e,r=n?.logisticsInfo||[],i=n?.selectedAddresses||n?.availableAddresses||[n?.address],a=r.reduce((d,g)=>{const p=g?.selectedSla||"",l=g?.selectedDeliveryChannel||g?.deliveryChannel||"",u=g?.deliveryCompany||"",m=g?.deliveryWindow,y=g?.pickupStoreInfo,f=g?.shippingEstimate||"",I=g?.shippingEstimate?En(g?.shippingEstimate):"",D=g?.shippingEstimateDate||"",E=g?.addressId||"",w=g?.itemIndex??0,O=t?.[w],P=O?.seller||"",h=`${p}|${l}|${u}|${P}|${f}|${D}|${E}|${m?.startDateUtc}|${m?.endDateUtc}`,b=i?.find(k=>k?.addressId===E),C=`${ri[l]||""} ${I} ${b?.neighborhood?`to ${b?.neighborhood}`:""}`.trim(),{taxPriceTagsTotal:A,taxPriceTags:v}=ai(O?.priceTags??[]),T=(O?.sellingPrice??0)*(O?.quantity??0)+(O?.tax??0)+(A??0);return d[h]||(d[h]={selectedSla:p,deliveryChannel:l,deliveryCompany:u,deliveryWindow:m,shippingEstimate:f,shippingEstimateDate:D,seller:P,friendlyShippingEstimate:I,friendlyDeliveryOptionName:C,address:b,pickupStoreInfo:y,quantityOfDifferentItems:0,total:0,items:[]}),d[h]&&(d[h].items?.push({id:O?.id||"",uniqueId:O?.uniqueId||"",name:O?.name||"",quantity:O?.quantity||0,price:O?.price||0,sellingPrice:O?.sellingPrice||0,imageUrl:O?.imageUrl||"",taxPriceTags:v??[],taxPriceTagsTotal:A??0,tax:O?.tax||0,total:T}),d[h].quantityOfDifferentItems=(d[h].quantityOfDifferentItems??0)+1,d[h].total=(d[h].total??0)+T),d},{}),o=Object.values(a),s=n?.contactInformation?.[0],c={name:`${s?.firstName??""} ${s?.lastName??""}`.trim()||o?.[0]?.address?.receiverName||"",email:s?.email||"",phone:s?.phone||""};return{deliveryOptions:o,contact:c}},customFields:e=>{const n=e?.customData?.customFields||[];return Object.values(n.reduce((t,r)=>{const i=r?.linkedEntity?.type||"",a=r?.linkedEntity?.id||"",o=`${i}|${a||""}`;return t[o]||(t[o]={type:i,id:a,fields:[]}),t[o].fields.push(...r?.fields||[]),t},{}))||[]}};function ai(e){const t=e.filter(i=>i?.name?.includes("TAX")),r=t.reduce((i,a)=>i+(a.rawValue?a.rawValue*100:0),0);return{taxPriceTags:t,taxPriceTagsTotal:r}}const oi={StoreCollection:gn,StoreAggregateOffer:zt,StoreProduct:Fr,StoreSeo:Gr,StoreFacet:Yt,StoreFacetBoolean:Jt,StoreFacetRange:Kt,StoreFacetValueBoolean:Qt,StoreOffer:Pr,StoreAggregateRating:qt,StoreReview:Vr,StoreProductGroup:Nr,StoreSearchResult:Wr,StorePropertyValue:Lr,SkuVariants:ti,ShippingSLA:Jr,UserOrderResult:ii,ObjectOrString:wr,Query:xr,Mutation:Cr},si=()=>oi,ci=`"""
8
8
  Address information.
9
9
  """
10
10
  type Address {
@@ -49,7 +49,7 @@ type Address {
49
49
  """
50
50
  geoCoordinates: [Float]
51
51
  }
52
- `,ai=`"""
52
+ `,li=`"""
53
53
  Advertisement information about a specific product in a campaign
54
54
  """
55
55
  type Advertisement {
@@ -74,7 +74,7 @@ type Advertisement {
74
74
  """
75
75
  adResponseId: String!
76
76
  }
77
- `,oi=`"""
77
+ `,di=`"""
78
78
  Aggregate offer information, for a given SKU that is available to be fulfilled by multiple sellers.
79
79
  """
80
80
  type StoreAggregateOffer {
@@ -103,7 +103,7 @@ type StoreAggregateOffer {
103
103
  """
104
104
  offers: [StoreOffer!]!
105
105
  }
106
- `,si=`"""
106
+ `,ui=`"""
107
107
  Average rating, based on multiple ratings or reviews.
108
108
  """
109
109
  type StoreAggregateRating {
@@ -116,7 +116,7 @@ type StoreAggregateRating {
116
116
  """
117
117
  reviewCount: Int!
118
118
  }
119
- `,ci=`"""
119
+ `,pi=`"""
120
120
  information about the author of a product review or rating.
121
121
  """
122
122
  type StoreAuthor {
@@ -125,7 +125,7 @@ type StoreAuthor {
125
125
  """
126
126
  name: String!
127
127
  }
128
- `,li=`"""
128
+ `,gi=`"""
129
129
  Brand of a given product.
130
130
  """
131
131
  type StoreBrand {
@@ -134,7 +134,7 @@ type StoreBrand {
134
134
  """
135
135
  name: String!
136
136
  }
137
- `,di=`"""
137
+ `,mi=`"""
138
138
  Item of a list.
139
139
  """
140
140
  type StoreListItem {
@@ -165,7 +165,7 @@ type StoreBreadcrumbList {
165
165
  """
166
166
  numberOfItems: Int!
167
167
  }
168
- `,ui=`"""
168
+ `,hi=`"""
169
169
  Shopping cart message.
170
170
  """
171
171
  type StoreCartMessage {
@@ -202,7 +202,7 @@ input IStoreCart {
202
202
  """
203
203
  order: IStoreOrder!
204
204
  }
205
- `,pi=`"""
205
+ `,fi=`"""
206
206
  Product collection type. Possible values are \`Department\`, \`Category\`, \`Brand\`, \`Cluster\`, \`SubCategory\` or \`Collection\`.
207
207
  """
208
208
  enum StoreCollectionType {
@@ -285,7 +285,7 @@ type StoreCollection {
285
285
  """
286
286
  type: StoreCollectionType!
287
287
  }
288
- `,gi=`"""
288
+ `,Si=`"""
289
289
  Delivery Promise badge.
290
290
  """
291
291
  type DeliveryPromiseBadge {
@@ -294,7 +294,7 @@ type DeliveryPromiseBadge {
294
294
  """
295
295
  typeName: String
296
296
  }
297
- `,mi=`union StoreFacet = StoreFacetRange | StoreFacetBoolean
297
+ `,yi=`union StoreFacet = StoreFacetRange | StoreFacetBoolean
298
298
 
299
299
  """
300
300
  Search facet range information.
@@ -371,7 +371,7 @@ type StoreFacetValueBoolean {
371
371
  """
372
372
  quantity: Int
373
373
  }
374
- `,hi=`"""
374
+ `,Ii=`"""
375
375
  Image.
376
376
  """
377
377
  type StoreImage {
@@ -398,7 +398,7 @@ input IStoreImage {
398
398
  """
399
399
  alternateName: String!
400
400
  }
401
- `,fi=`type Mutation {
401
+ `,vi=`type Mutation {
402
402
  """
403
403
  Checks for changes between the cart presented in the UI and the cart stored in the ecommerce platform. If changes are detected, it returns the cart stored on the platform. Otherwise, it returns \`null\`.
404
404
  """
@@ -436,7 +436,7 @@ input IStoreImage {
436
436
  data: IOrderEntryOperation!
437
437
  ): StoreOrderEntryOperationResult @auth
438
438
  }
439
- `,Si=`"""
439
+ `,Oi=`"""
440
440
  Newsletter information.
441
441
  """
442
442
  type PersonNewsletter {
@@ -459,8 +459,8 @@ input IPersonNewsletter {
459
459
  """
460
460
  email: String!
461
461
  }
462
- `,yi=`scalar ObjectOrString
463
- `,Ii=`"""
462
+ `,Ci=`scalar ObjectOrString
463
+ `,bi=`"""
464
464
  Offer information.
465
465
  """
466
466
  type StoreOffer {
@@ -543,7 +543,7 @@ input IStoreOffer {
543
543
  """
544
544
  quantity: Int!
545
545
  }
546
- `,vi=`"""
546
+ `,Di=`"""
547
547
  Information of a specific order.
548
548
  """
549
549
  type StoreOrder {
@@ -578,7 +578,7 @@ input IStoreOrder {
578
578
  """
579
579
  shouldSplitItem: Boolean
580
580
  }
581
- `,Oi=`"""
581
+ `,wi=`"""
582
582
  Commercial Authorization response.
583
583
  """
584
584
  type CommercialAuthorizationResponse {
@@ -977,7 +977,7 @@ type ProcessOrderAuthorizationRule {
977
977
  """
978
978
  rule: CommercialAuthorizationRule!
979
979
  }
980
- `,Ci=`"""
980
+ `,Pi=`"""
981
981
  Input for uploading a file to the Order Entry Service.
982
982
  The file is transmitted as a Base64-encoded string so it can travel
983
983
  through the standard GraphQL JSON pipeline without multipart support.
@@ -1038,7 +1038,7 @@ type StoreOrderFormCartItem {
1038
1038
  seller: String!
1039
1039
  unitMultiplier: Float
1040
1040
  }
1041
- `,bi=`"""
1041
+ `,Ai=`"""
1042
1042
  Organization.
1043
1043
  """
1044
1044
  type StoreOrganization {
@@ -1057,7 +1057,7 @@ input IStoreOrganization {
1057
1057
  """
1058
1058
  identifier: String!
1059
1059
  }
1060
- `,Di=`"""
1060
+ `,Ei=`"""
1061
1061
  Whenever you make a query that allows for pagination, such as \`allProducts\` or \`allCollections\`, you can check \`StorePageInfo\` to learn more about the complete set of items and use it to paginate your queries.
1062
1062
  """
1063
1063
  type StorePageInfo {
@@ -1082,7 +1082,7 @@ type StorePageInfo {
1082
1082
  """
1083
1083
  totalCount: Int!
1084
1084
  }
1085
- `,Pi=`"""
1085
+ `,Ui=`"""
1086
1086
  Input type for setting a new password.
1087
1087
  """
1088
1088
  input ISetPassword {
@@ -1125,7 +1125,7 @@ type SetPasswordResponse {
1125
1125
  """
1126
1126
  message: String
1127
1127
  }
1128
- `,wi=`"""
1128
+ `,Ti=`"""
1129
1129
  Client profile data.
1130
1130
  """
1131
1131
  type StorePerson {
@@ -1168,7 +1168,7 @@ input IStorePerson {
1168
1168
  """
1169
1169
  familyName: String!
1170
1170
  }
1171
- `,Ai=`type PickupPointAddress {
1171
+ `,_i=`type PickupPointAddress {
1172
1172
  """
1173
1173
  Address city.
1174
1174
  """
@@ -1247,7 +1247,7 @@ type PickupPoints {
1247
1247
  """
1248
1248
  pickupPointsHash: String
1249
1249
  }
1250
- `,Ei=`"""
1250
+ `,ki=`"""
1251
1251
  Product information. Products are variants within product groups, equivalent to VTEX [SKUs](https://help.vtex.com/en/tutorial/what-is-an-sku--1K75s4RXAQyOuGUYKMM68u#). For example, you may have a **Shirt** product group with associated products such as **Blue shirt size L**, **Green shirt size XL** and so on.
1252
1252
  """
1253
1253
  type StoreProduct {
@@ -1396,7 +1396,7 @@ input IStoreProduct {
1396
1396
  """
1397
1397
  additionalProperty: [IStorePropertyValue!]
1398
1398
  }
1399
- `,Ti=`"""
1399
+ `,Fi=`"""
1400
1400
  Product group information. Product groups are catalog entities that may contain variants. They are equivalent to VTEX [Products](https://help.vtex.com/en/tutorial/what-is-a-product--2zrB2gFCHyQokCKKE8kuAw#), whereas each variant is equivalent to a VTEX [SKU](https://help.vtex.com/en/tutorial/what-is-an-sku--1K75s4RXAQyOuGUYKMM68u#). For example, you may have a **Shirt** product group with associated products such as **Blue shirt size L**, **Green shirt size XL** and so on.
1401
1401
  """
1402
1402
  type StoreProductGroup {
@@ -1423,7 +1423,7 @@ type StoreProductGroup {
1423
1423
  """
1424
1424
  skuVariants: SkuVariants
1425
1425
  }
1426
- `,Ui=`type Profile {
1426
+ `,Ri=`type Profile {
1427
1427
  """
1428
1428
  Collection of user's address
1429
1429
  """
@@ -1484,7 +1484,7 @@ type ProfileAddress {
1484
1484
  """
1485
1485
  geoCoordinate: [Float]
1486
1486
  }
1487
- `,ki=`"""
1487
+ `,Ni=`"""
1488
1488
  Properties that can be associated with products and products groups.
1489
1489
  """
1490
1490
  type StorePropertyValue {
@@ -1524,7 +1524,7 @@ input IStorePropertyValue {
1524
1524
  """
1525
1525
  valueReference: ObjectOrString!
1526
1526
  }
1527
- `,_i=`"""
1527
+ `,Li=`"""
1528
1528
  Each product edge contains a \`node\`, with product information, and a \`cursor\`, that can be used as a reference for pagination.
1529
1529
  """
1530
1530
  type StoreProductEdge {
@@ -1956,6 +1956,46 @@ type Query {
1956
1956
  @auth
1957
1957
  @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
1958
1958
 
1959
+ """
1960
+ Returns the list of Quotes that the authenticated Buyer can view.
1961
+ """
1962
+ listUserQuotes(
1963
+ """
1964
+ Page number (1-based).
1965
+ """
1966
+ page: Int
1967
+ """
1968
+ Number of items per page.
1969
+ """
1970
+ perPage: Int
1971
+ """
1972
+ Filter by quote status values.
1973
+ """
1974
+ status: [String]
1975
+ """
1976
+ Filter quotes created on or after this ISO 8601 date-time.
1977
+ """
1978
+ createdAtFrom: String
1979
+ """
1980
+ Filter quotes created on or before this ISO 8601 date-time.
1981
+ """
1982
+ createdAtTo: String
1983
+ """
1984
+ Filter quotes expiring on or after this ISO 8601 date-time.
1985
+ """
1986
+ expiresAtFrom: String
1987
+ """
1988
+ Filter quotes expiring on or before this ISO 8601 date-time.
1989
+ """
1990
+ expiresAtTo: String
1991
+ """
1992
+ Filter quotes by label (partial match).
1993
+ """
1994
+ label: String
1995
+ ): UserQuoteListResult
1996
+ @auth
1997
+ @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
1998
+
1959
1999
  """
1960
2000
  Returns information about the current user details.
1961
2001
  """
@@ -1977,6 +2017,13 @@ type Query {
1977
2017
  @auth
1978
2018
  @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
1979
2019
 
2020
+ """
2021
+ Returns whether the current authenticated user belongs to a B2B organization unit.
2022
+ """
2023
+ isOrganizationMember: Boolean!
2024
+ @auth
2025
+ @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
2026
+
1980
2027
  """
1981
2028
  Returns a list of pickup points near to the given geo coordinates.
1982
2029
  """
@@ -2086,7 +2133,72 @@ type StoreAccountProfile {
2086
2133
  email: String
2087
2134
  id: String
2088
2135
  }
2089
- `,Fi=`"""
2136
+ `,Bi=`"""
2137
+ Summary of a quote returned in list results.
2138
+ """
2139
+ type UserQuoteSummary {
2140
+ """
2141
+ Unique identifier of the quote.
2142
+ """
2143
+ id: String!
2144
+ """
2145
+ Status of the quote.
2146
+ """
2147
+ status: String!
2148
+ """
2149
+ Optional label assigned to the quote.
2150
+ """
2151
+ label: String
2152
+ """
2153
+ ISO 8601 date-time when the quote was created.
2154
+ """
2155
+ createdAt: String!
2156
+ """
2157
+ ISO 8601 date-time when the quote expires.
2158
+ """
2159
+ expiresAt: String!
2160
+ """
2161
+ Total amount of the quote.
2162
+ """
2163
+ amount: Float!
2164
+ """
2165
+ Name or email of the user who created the quote.
2166
+ """
2167
+ createdBy: String
2168
+ }
2169
+
2170
+ """
2171
+ Result returned by the listUserQuotes query.
2172
+ """
2173
+ type UserQuoteListResult {
2174
+ """
2175
+ Array of quote summaries for the current page.
2176
+ """
2177
+ list: [UserQuoteSummary!]!
2178
+ """
2179
+ Pagination information.
2180
+ """
2181
+ paging: UserQuoteListPaging!
2182
+ }
2183
+
2184
+ """
2185
+ Pagination metadata for the quotes list.
2186
+ """
2187
+ type UserQuoteListPaging {
2188
+ """
2189
+ Total number of quotes matching the query.
2190
+ """
2191
+ total: Int!
2192
+ """
2193
+ Current page number (1-based).
2194
+ """
2195
+ currentPage: Int!
2196
+ """
2197
+ Number of items per page.
2198
+ """
2199
+ perPage: Int!
2200
+ }
2201
+ `,Mi=`"""
2090
2202
  Information of a given review rating.
2091
2203
  """
2092
2204
  type StoreReviewRating {
@@ -2113,7 +2225,7 @@ type StoreReview {
2113
2225
  """
2114
2226
  author: StoreAuthor!
2115
2227
  }
2116
- `,Ri=`"""
2228
+ `,$i=`"""
2117
2229
  Search Engine Optimization (SEO) tags data.
2118
2230
  """
2119
2231
  type StoreSeo {
@@ -2134,7 +2246,7 @@ type StoreSeo {
2134
2246
  """
2135
2247
  canonical: String!
2136
2248
  }
2137
- `,Ni=`"""
2249
+ `,zi=`"""
2138
2250
  Currency information.
2139
2251
  """
2140
2252
  type StoreCurrency {
@@ -2409,7 +2521,7 @@ input IStoreSession {
2409
2521
  """
2410
2522
  refreshAfter: String
2411
2523
  }
2412
- `,Li=`"""
2524
+ `,qi=`"""
2413
2525
  Shipping Simulation item input.
2414
2526
  """
2415
2527
  input IShippingItem {
@@ -2740,7 +2852,7 @@ type MessageFields {
2740
2852
  """
2741
2853
  skuName: String
2742
2854
  }
2743
- `,Bi=`type SkuVariants {
2855
+ `,xi=`type SkuVariants {
2744
2856
  """
2745
2857
  SKU property values for the current SKU.
2746
2858
  """
@@ -2835,7 +2947,7 @@ Example:
2835
2947
  \`\`\`
2836
2948
  """
2837
2949
  scalar FormattedVariants
2838
- `,Mi=`"""
2950
+ `,Vi=`"""
2839
2951
  Status used to indicate a message type. For instance, a shopping cart informative or error message.
2840
2952
  """
2841
2953
  enum StoreStatus {
@@ -2843,7 +2955,7 @@ enum StoreStatus {
2843
2955
  WARNING
2844
2956
  ERROR
2845
2957
  }
2846
- `,$i=`scalar JSONObject
2958
+ `,ji=`scalar JSONObject
2847
2959
 
2848
2960
  type UserOrder {
2849
2961
  orderId: String
@@ -3667,4 +3779,4 @@ type UserOrderBudgetAllocationLinkedEntity {
3667
3779
  type: String
3668
3780
  id: String
3669
3781
  }
3670
- `,zi=Object.assign({"./address.graphql":ii,"./advertisement.graphql":ai,"./aggregateOffer.graphql":oi,"./aggregateRating.graphql":si,"./author.graphql":ci,"./brand.graphql":li,"./breadcrumb.graphql":di,"./cart.graphql":ui,"./collection.graphql":pi,"./deliveryPromisesBadge.graphql":gi,"./facet.graphql":mi,"./image.graphql":hi,"./mutation.graphql":fi,"./newsletter.graphql":Si,"./objectOrString.graphql":yi,"./offer.graphql":Ii,"./order.graphql":vi,"./orderCommercialAuthorizaton.graphql":Oi,"./orderEntry.graphql":Ci,"./organization.graphql":bi,"./pageInfo.graphql":Di,"./password.graphql":Pi,"./person.graphql":wi,"./pickupPoints.graphql":Ai,"./product.graphql":Ei,"./productGroup.graphql":Ti,"./profile.graphql":Ui,"./propertyValue.graphql":ki,"./query.graphql":_i,"./review.graphql":Fi,"./seo.graphql":Ri,"./session.graphql":Ni,"./shipping.graphql":Li,"./skuVariants.graphql":Bi,"./status.graphql":Mi,"./userOrder.graphql":$i}),Vi=ee.print(Object.values(zi).map(e=>ee.parse(e)).reduce((e,n)=>Ge.mergeTypeDefs([e,n],{sort:!0}))),Tn=Vi,xi=async e=>N.OTELAPI.context.with(N.OTELAPI.propagation.extract(N.OTELAPI.context.active(),e.OTEL),()=>n=>(n.storage={channel:re.parse(e.channel),flags:e.flags??{},locale:e.locale,cookies:new Map},n.clients=Ct(e,n),n.loaders=_t(e,n),n.account=e.account,n.OTEL=e.OTEL,n.discoveryConfig=e.discoveryConfig,n));function qi(){const e=ri(),n={};for(const[t,r]of Object.entries(e))n[t]=Object.fromEntries(Object.entries(r).map(([i,a])=>typeof a!="function"?[i,a]:[i,zn(a,`${t}(${i})`)]));return n}function ji(e){const t=tn([nn,en])(qi(),Tn);return e&&ee.isSchema(e)?He.mergeSchemas({schemas:[t,e]}):t}exports.AuthDirective=en;exports.BadRequestError=T;exports.CacheControlDirective=nn;exports.CommercialAuthorizationStatus=Xe;exports.FastStoreError=q;exports.ForbiddenError=K;exports.GraphqlVtexContextFactory=xi;exports.GraphqlVtexSchema=ji;exports.NotFoundError=L;exports.StoreCollectionType=Ye;exports.StoreFacetType=Je;exports.StoreSort=Ke;exports.StoreStatus=Qe;exports.UnauthorizedError=Y;exports.UserOrderInvoiceType=Ze;exports.isBadRequestError=xn;exports.isFastStoreError=Vn;exports.isForbiddenError=rn;exports.isNotFoundError=Ce;exports.isUnauthorizedError=qn;exports.stringifyCacheControl=Mn;exports.typeDefs=Tn;exports.withDirectives=tn;
3782
+ `,Wi=Object.assign({"./address.graphql":ci,"./advertisement.graphql":li,"./aggregateOffer.graphql":di,"./aggregateRating.graphql":ui,"./author.graphql":pi,"./brand.graphql":gi,"./breadcrumb.graphql":mi,"./cart.graphql":hi,"./collection.graphql":fi,"./deliveryPromisesBadge.graphql":Si,"./facet.graphql":yi,"./image.graphql":Ii,"./mutation.graphql":vi,"./newsletter.graphql":Oi,"./objectOrString.graphql":Ci,"./offer.graphql":bi,"./order.graphql":Di,"./orderCommercialAuthorizaton.graphql":wi,"./orderEntry.graphql":Pi,"./organization.graphql":Ai,"./pageInfo.graphql":Ei,"./password.graphql":Ui,"./person.graphql":Ti,"./pickupPoints.graphql":_i,"./product.graphql":ki,"./productGroup.graphql":Fi,"./profile.graphql":Ri,"./propertyValue.graphql":Ni,"./query.graphql":Li,"./quote.graphql":Bi,"./review.graphql":Mi,"./seo.graphql":$i,"./session.graphql":zi,"./shipping.graphql":qi,"./skuVariants.graphql":xi,"./status.graphql":Vi,"./userOrder.graphql":ji}),Gi=ee.print(Object.values(Wi).map(e=>ee.parse(e)).reduce((e,n)=>Ge.mergeTypeDefs([e,n],{sort:!0}))),Un=Gi,Hi=async e=>N.OTELAPI.context.with(N.OTELAPI.propagation.extract(N.OTELAPI.context.active(),e.OTEL),()=>n=>(n.storage={channel:re.parse(e.channel),flags:e.flags??{},locale:e.locale,cookies:new Map},n.clients=Pt(e,n),n.loaders=Lt(e,n),n.account=e.account,n.OTEL=e.OTEL,n.discoveryConfig=e.discoveryConfig,n));function Xi(){const e=si(),n={};for(const[t,r]of Object.entries(e))n[t]=Object.fromEntries(Object.entries(r).map(([i,a])=>typeof a!="function"?[i,a]:[i,zn(a,`${t}(${i})`)]));return n}function Yi(e){const t=tn([nn,en])(Xi(),Un);return e&&ee.isSchema(e)?He.mergeSchemas({schemas:[t,e]}):t}exports.AuthDirective=en;exports.BadRequestError=U;exports.CacheControlDirective=nn;exports.CommercialAuthorizationStatus=Xe;exports.FastStoreError=V;exports.ForbiddenError=K;exports.GraphqlVtexContextFactory=Hi;exports.GraphqlVtexSchema=Yi;exports.NotFoundError=L;exports.StoreCollectionType=Ye;exports.StoreFacetType=Je;exports.StoreSort=Ke;exports.StoreStatus=Qe;exports.UnauthorizedError=Y;exports.UserOrderInvoiceType=Ze;exports.isBadRequestError=xn;exports.isFastStoreError=qn;exports.isForbiddenError=rn;exports.isNotFoundError=Ce;exports.isUnauthorizedError=Vn;exports.stringifyCacheControl=Mn;exports.typeDefs=Un;exports.withDirectives=tn;