@faststore/api 4.10.0-dev.0 → 4.10.0-dev.1

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.
Files changed (32) hide show
  1. package/dist/cjs/index.js +65 -50
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/es/index.mjs +922 -884
  4. package/dist/es/index.mjs.map +1 -1
  5. package/dist/src/__generated__/schema.d.ts +8 -2
  6. package/dist/src/__generated__/schema.d.ts.map +1 -1
  7. package/dist/src/platforms/vtex/clients/commerce/index.d.ts +0 -2
  8. package/dist/src/platforms/vtex/clients/commerce/index.d.ts.map +1 -1
  9. package/dist/src/platforms/vtex/clients/index.d.ts +1 -1
  10. package/dist/src/platforms/vtex/clients/index.d.ts.map +1 -1
  11. package/dist/src/platforms/vtex/clients/search/index.d.ts +27 -0
  12. package/dist/src/platforms/vtex/clients/search/index.d.ts.map +1 -1
  13. package/dist/src/platforms/vtex/index.d.ts +22 -1
  14. package/dist/src/platforms/vtex/index.d.ts.map +1 -1
  15. package/dist/src/platforms/vtex/resolvers/getOrderEntryOperation.d.ts.map +1 -1
  16. package/dist/src/platforms/vtex/resolvers/index.d.ts +22 -1
  17. package/dist/src/platforms/vtex/resolvers/index.d.ts.map +1 -1
  18. package/dist/src/platforms/vtex/resolvers/query.d.ts +22 -1
  19. package/dist/src/platforms/vtex/resolvers/query.d.ts.map +1 -1
  20. package/dist/src/platforms/vtex/utils/intelligentSearchRequest.d.ts +7 -1
  21. package/dist/src/platforms/vtex/utils/intelligentSearchRequest.d.ts.map +1 -1
  22. package/package.json +3 -3
  23. package/src/__generated__/schema.ts +8 -2
  24. package/src/platforms/vtex/clients/commerce/index.ts +0 -25
  25. package/src/platforms/vtex/clients/search/index.ts +49 -0
  26. package/src/platforms/vtex/resolvers/query.ts +19 -5
  27. package/src/platforms/vtex/typeDefs/pickupPoints.graphql +4 -1
  28. package/src/platforms/vtex/typeDefs/query.graphql +15 -3
  29. package/src/platforms/vtex/utils/intelligentSearchRequest.ts +96 -0
  30. package/dist/src/platforms/vtex/clients/commerce/types/PickupPoints.d.ts +0 -37
  31. package/dist/src/platforms/vtex/clients/commerce/types/PickupPoints.d.ts.map +0 -1
  32. package/src/platforms/vtex/clients/commerce/types/PickupPoints.ts +0 -40
package/dist/cjs/index.js CHANGED
@@ -1,12 +1,12 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const pn=require("@graphql-tools/merge"),gn=require("@graphql-tools/schema"),H=require("@graphql-tools/utils"),pe=require("graphql"),z=require("@faststore/diagnostics"),ct=require("isomorphic-unfetch"),ae=require("cookie"),Ue=require("p-limit"),Se=require("dataloader"),lt=require("sanitize-html"),_e=require("fast-deep-equal"),dt=require("node:crypto");var mn=(e=>(e.Personal="personal",e.Shared="shared",e))(mn||{}),hn=(e=>(e.Accepted="accepted",e.Denied="denied",e.Pending="pending",e))(hn||{}),fn=(e=>(e.Brand="Brand",e.Category="Category",e.Cluster="Cluster",e.Collection="Collection",e.Department="Department",e.SubCategory="SubCategory",e))(fn||{}),Sn=(e=>(e.Boolean="BOOLEAN",e.Range="RANGE",e))(Sn||{}),yn=(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))(yn||{}),In=(e=>(e.Error="ERROR",e.Info="INFO",e.Warning="WARNING",e))(In||{}),vn=(e=>(e.Input="Input",e.Output="Output",e))(vn||{});const ut=()=>function(n={}){const t=process.env.FS_DISCOVERY_APP_KEY??"",r=process.env.FS_DISCOVERY_APP_TOKEN??"";if(!t||!r)throw new J("No authentication AppKey and AppToken passed.");return{...n,"X-VTEX-API-AppKey":t,"X-VTEX-API-AppToken":r}},On=async e=>{const{clients:{commerce:n}}=e;try{if((await n.vtexid.validate())?.authStatus?.toLowerCase()!=="success")throw new re("Authentication required")}catch(t){const r=t.extensions?.status??t.status;throw r===401?new re("Authentication required"):r===403?new J("You are not allowed to access this resource"):new re("Authentication required")}},pt="auth",Cn={typeDefs:"directive @auth on FIELD_DEFINITION",transformer:e=>H.mapSchema(e,{[H.MapperKind.OBJECT_FIELD]:n=>{if(H.getDirective(e,n,pt)?.[0]){const r=n.resolve;n.resolve=async(i,a,o,s)=>(await On(o),r?.(i,a,o,s))}return n}})},gt="cacheControl",mt=(e,n)=>{const{scope:t="private",sMaxAge:r=0,staleWhileRevalidate:i=0}=e;return`${n?"private":t}, s-maxage=${r}, stale-while-revalidate=${i}`},Ne=(e,n)=>typeof e=="number"&&typeof n=="number"?e>n?n:e:typeof e=="number"?e:n,ht=(e,n)=>typeof e=="string"&&typeof n=="string"?e==="public"&&n==="public"?"public":"private":e||n,bn={typeDefs:"directive @cacheControl(sMaxAge: Int, staleWhileRevalidate: Int, scope: String) on FIELD_DEFINITION",transformer:e=>H.mapSchema(e,{[H.MapperKind.OBJECT_FIELD]:n=>{const t=H.getDirective(e,n,gt)?.[0];if(t){const{sMaxAge:r,staleWhileRevalidate:i,scope:a}=t,o=n.resolve;n.resolve=(s,c,d,g)=>(d.cacheControl={sMaxAge:Ne(d.cacheControl?.sMaxAge,r),staleWhileRevalidate:Ne(d.cacheControl?.staleWhileRevalidate,i),scope:ht(d.cacheControl?.scope,a)},o?.(s,c,d,g))}return n}})},wn=e=>(n,t)=>{const r=pn.mergeTypeDefs([...(e??[]).map(({typeDefs:i})=>i),t]);return(e??[]).reduce((i,{transformer:a})=>a?.(i)??i,gn.makeExecutableSchema({typeDefs:r,resolvers:n}))},An="@faststore/api",Dn="4.9.3-dev.2",Le={name:An,version:Dn},Pn=z.logger("@faststore/api"),ft=(e,n="Unknown Graphql Resolver")=>(t,r,i,a)=>{if(!i?.OTEL_ENABLED)return e(t,r,i,a);const o=z.OTELAPI.trace.getTracer("Graphql").startSpan(n,{kind:z.OTELAPI.SpanKind.INTERNAL,attributes:{timestamp:Date.now(),"@faststore_version":Dn,"@faststore_package_name":An,"@faststore_account_name":i.account,"@faststore_environment":process.env.NODE_ENV,"@faststore_resolver_parent_type":a?.parentType?.name,"@faststore_resolver_field_name":a?.fieldName}}),s=z.OTELAPI.trace.setSpan(z.OTELAPI.context.active(),o);try{const c=z.OTELAPI.context.with(s,()=>e(t,r,i,a));return c instanceof Promise?c.then(d=>(o.end(),d),d=>Be(d,o,n)):(o.end(),c)}catch(c){return Be(c,o,n)}};function Be(e,n,t){throw n.setStatus({code:z.OTELAPI.SpanStatusCode.ERROR}),n.recordException(e),n.end(),console.error(`Error at resolver: ${t}:
2
- %o`,e),Pn("error",`Error at resolver: %s
3
- %o`,t,e),e}class q extends Error{constructor(n,t){super(t),this.extensions=n,this.name="FastStoreError"}}class E extends q{constructor(n){super({status:400,type:"BadRequestError"},n)}}class re extends q{constructor(n){super({status:401,type:"UnauthorizedError"},n)}}class J extends q{constructor(n){super({status:403,type:"ForbiddenError"},n)}}class $ extends q{constructor(n){super({status:404,type:"NotFoundError"},n)}}const St=e=>e?.name==="FastStoreError",yt=e=>e?.extensions?.type==="BadRequestError",It=e=>e?.extensions?.type==="UnauthorizedError",En=e=>e?.extensions?.type==="ForbiddenError",X=e=>e?.extensions?.type==="NotFoundError",vt=`${Le.name}@${Le.version}`,y=async(e,n,t)=>{const r=await ct(e,{...n,headers:{...n?.headers??{},"User-Agent":vt}});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 E(i);case 401:throw new re(i);case 403:throw new J(i);case 404:throw new $(i);default:throw new q({status:r.status,type:"UnknownError"},i)}throw new Error(i)},Ot=({account:e,environment:n})=>{const t=`https://${e}.${n}.com.br`;return{getLocalizedProduct:(r,i)=>y(`${t}/api/catalog-dataplane/product/${r}`,{method:"GET",headers:{"Accept-Language":i,"Content-Type":"application/json"}})}},kn=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("; ")},Ct=/^([^=]+)=([^;]*)/,bt=(e,n)=>{const t=n.match(Ct);if(t){const r=t[1],i=t[2];e.storage.cookies.set(r,{value:i,setCookie:n})}},wt=(e,n)=>{n.getSetCookie().forEach(t=>bt(e,t))},At=e=>n=>wt(e,n),ve=e=>{if(!e.headers?.cookie)return null;const n=kn(e.headers.cookie),t=Array.from(e.storage.cookies.entries());return t.length===0?n:t.reduce((r,[i,{value:a}])=>Dt(r,i,a),n)},Tn=e=>function(t){const r=ve(e);return r?{...t,cookie:r}:t},B=(e,n)=>{const t=kn(e);return ae.parse(t)[`VtexIdclientAutCookie_${n}`]||""},Dt=(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 W(e){if(!e)return null;try{return JSON.parse(Buffer.from(e.split(".")[1],"base64").toString())}catch{return null}}const Pt="storefront/faststore.recommendation-shelf@v4",ee={method:"POST",headers:{"content-type":"application/json"}},Et=e=>e.split("/").map(encodeURIComponent).join("/"),ye=e=>e?{headers:{"Accept-Language":e}}:void 0,kt=/^\d{4}-\d{2}-\d{2}$/,Tt=new Set(["Draft","Requested","InReview","Reviewed","Approved","Declined","Expired","ConvertedToCart","ConvertedToOrder"]);function Ut({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&&!kt.test(c))throw new Error(`listUserQuotes: invalid ${s} "${c}" — must be YYYY-MM-DD`);if(t&&t.length>0){const s=t.filter(c=>!Tt.has(c));if(s.length>0)throw new Error(`listUserQuotes: invalid status values: ${s.join(", ")}`)}}function _t({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 Rt=({account:e,environment:n,incrementAddress:t,subDomainPrefix:r},i)=>{const a=`https://${e}.${n}.com.br`,o=At(i),s=Tn(i),c=ut(),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,""),f=`${a}/api/recommend-bff/v2`,h=s({accept:"application/json","content-type":"application/json","x-vtex-rec-origin":`${e}/${Pt}`}),v=(l={})=>{const u=B(ve(i)??"",e);return s({...l,"X-FORWARDED-HOST":p,...u?{[`VtexIdclientAutCookie_${e}`]:u}:{}})};return{catalog:{salesChannel:l=>y(`${a}/api/catalog_system/pub/saleschannel/${l}`,void 0,{storeCookies:o}),brand:{list:()=>y(`${a}/api/catalog_system/pub/brand/list`,void 0,{storeCookies:o})},category:{tree:(l=3)=>y(`${a}/api/catalog_system/pub/category/tree/${l}`,void 0,{storeCookies:o})},portal:{pagetype:l=>y(`${a}/api/catalog_system/pub/portal/pagetype/${l}`,void 0,{storeCookies:o})},byLinkId:{category:async(l,u)=>{try{return await y(`${a}/api/catalog_system/pub/category/by-linkid/${Et(l)}`,ye(u))}catch(m){if(X(m))return null;throw m}},brand:async(l,u)=>{try{return await y(`${a}/api/catalog_system/pub/brand/by-linkid/${encodeURIComponent(l)}`,ye(u))}catch(m){if(X(m))return null;throw m}},collection:async(l,u)=>{try{return await y(`${a}/api/catalog_system/pub/collection/by-linkid/${encodeURIComponent(l)}`,ye(u))}catch(m){if(X(m))return null;throw m}}},products:{crossselling:({type:l,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/${l}/${u}?${S}`,void 0,{storeCookies:o})}}},checkout:{simulation:(l,{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()}`,{...ee,headers:S,body:JSON.stringify(l)},{storeCookies:o})},shippingData:({id:l,index:u,deliveryMode:m,selectedAddresses:S},O)=>{const b=O?{startDateUtc:m?.deliveryWindow?.startDate,endDateUtc:m?.deliveryWindow?.endDate}:null,C={logisticsInfo:Array.from({length:u},(I,w)=>({itemIndex:w,selectedDeliveryChannel:m?.deliveryChannel||null,selectedSla:m?.deliveryMethod||null,deliveryWindow:b})),selectedAddresses:S,clearAddressIfPostalCodeNotFound:t},T=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${l}/attachments/shippingData`,{...ee,headers:T,body:JSON.stringify(C)},{storeCookies:o})},marketingData:({id:l,marketingData:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${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 y(`${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,preserveSalesChannel:S=!1})=>{const{salesChannel:O}=m,b=s({"content-type":"application/json","X-FORWARDED-HOST":p}),C=new URLSearchParams;(!S||!l)&&C.set("sc",O),l&&C.set("refreshOutdatedData",u.toString());const T=l?`/${l}`:"",I=`${a}/api/checkout/pub/orderForm${T}?${C}`;return y(I,{...ee,headers:b,...l?{}:{body:"{}"}},{storeCookies:o})},clearOrderFormMessages:({id:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${l}/messages/clear`,{...ee,headers:u,body:"{}"})},updateOrderFormItems:({id:l,orderItems:u,allowOutdatedData:m="paymentData",salesChannel:S=i.storage.channel.salesChannel,shouldSplitItem:O=!0})=>{const b=new URLSearchParams({allowOutdatedData:m,sc:S}),C=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${l}/items?${b}`,{headers:C,body:JSON.stringify({orderItems:u,noSplitItem:!O}),method:"PATCH"},{storeCookies:o})},setCustomData:({id:l,appId:u,key:m,value:S})=>{const O=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${l}/customData/${u}/${m}`,{headers:O,body:JSON.stringify({value:S}),method:"PUT"})},region:async({postalCode:l,geoCoordinates:u,country:m,salesChannel:S})=>{const O=new URLSearchParams({country:m,sc:S??""});l?O.append("postalCode",l):O.append("geoCoordinates",`${u?.longitude};${u?.latitude}`);const b=`${a}/api/checkout/pub/regions/?${O.toString()}`,C=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(b,{headers:C},{storeCookies:o})},address:async({postalCode:l,country:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/postal-code/${u}/${l}`,{headers:m},{storeCookies:o})},cancelOrder:({orderId:l,customerEmail:u,reason:m})=>{const S=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orders/${l}/user-cancel-request`,{method:"POST",headers:S,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 y(`${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,shopper.availableContracts,shopper.activeContractId,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=ae.parse(i?.headers?.cookie??"")?.vtex_session;return y(`${a}/api/sessions?${u.toString()}`,{method:S?"PATCH":"POST",headers:m,body:"{}"},{storeCookies:o})},storeFront:{attachedContracts:l=>{const u=s({"content-type":"application/json"});return y(`https://${e}.myvtex.com/_v/store-front/units/${encodeURIComponent(l)}/contracts/attached?details=true`,{headers:u},{storeCookies:o})}},subscribeToNewsletter:l=>y(`${a}/api/dataentities/NL/documents/`,{...ee,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 y(`${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 y(`${a}/api/oms/user/orders/${l}`,{method:"GET",headers:u},{storeCookies:o})},listUserOrders:({page:l,status:u,dateInitial:m,dateFinal:S,text:O,clientEmail:b,perPage:C,pendingMyApproval:T})=>{const I=new URLSearchParams;if(m){const k=new Date(m).setHours(0,0,0,0);m=new Date(k).toISOString()}if(S){const k=new Date(S).setHours(23,59,59,999);S=new Date(k).toISOString()}O&&I.append("text",O),u&&u.length>0&&I.append("status",u.filter(Boolean).join(",")),m&&S?I.append("creation_date",`creationDate:[${m} TO ${S}]`):m?I.append("creation_date",`creationDate:[${m} TO *]`):S&&I.append("creation_date",`creationDate:[* TO ${S}]`),b&&I.append("clientEmail",b),l&&I.append("page",l.toString()),C&&I.append("per_page",C.toString()),T&&I.append("my_pending_approvals",String(!0));const w=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/oms/user/orders?${I.toString()}`,{method:"GET",headers:w},{storeCookies:o})},getCommercialAuthorizationsByOrderId:({orderId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/${e}/commercial-authorizations/order/${l}`,{method:"GET",headers:u},{storeCookies:o})},processOrderAuthorization:async({orderAuthorizationId:l,dimensionId:u,ruleId:m,approved:S})=>{const O=s({"content-type":"application/json","X-FORWARDED-HOST":p}),T={params:{ruleId:m,dimensionId:u,score:S?100:0}};return y(`${a}/${e}/commercial-authorizations/${l}/callback`,{method:"POST",headers:O,body:JSON.stringify(T)},{storeCookies:o})}},savedCards:{listCreditCards:()=>{const l=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/saved-cards/credit-card?an=${e}`,{method:"GET",headers:l},{storeCookies:o})}},units:{getUnitByUserId:({userId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${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 y(`${a}/api/units/v1/${l}`,{method:"GET",headers:u},{})},getScopesByOrgUnit:({orgUnitId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${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 y(`${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 y(`${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 y(`${a}/api/license-manager/storefront/users/${l}/roles`,{method:"GET",headers:u},{})},isResourceGranted:({userId:l,resourceKey:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/license-manager/storefront/bff/users/${l}/resources/${u}/granted?an=${e}`,{method:"GET",headers:m},{})}},masterData:{getContractById:({contractId:l})=>{if(!l)throw new E("Missing contractId to fetch CL fields.");const u=v({Accept:"application/json","content-type":"application/json"});return y(`${a}/api/dataentities/CL/documents/${l}?_fields=_all`,{method:"GET",headers:u},{})},getShopperById:({userId:l})=>{if(!l)throw new E("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 y(`${a}/api/dataentities/shopper/search?_where=(userId=${m} OR userId=${l})&_fields=_all&_schema=v1`,{method:"GET",headers:u},{})}},quotes:{listUserQuotes:l=>{Ut(l);const u=_t(l),m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${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=B(ve(i)??"",e);return y(`${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 S=s({"content-type":"application/json","X-FORWARDED-HOST":p}),O=`----FastStoreUploadBoundary${Date.now()}`,b=`\r
4
- `,T=/^[a-zA-Z0-9][a-zA-Z0-9!#$&\-.^_]*\/[a-zA-Z0-9][a-zA-Z0-9!#$&\-.^_+]*$/.test(m)?m:"application/octet-stream",I=u.replaceAll(/[\r\n"]/g,"_"),w=[`--${O}`,`Content-Disposition: form-data; name="file"; filename="${I}"`,`Content-Type: ${T}`,"",""].join(b),k=`${b}--${O}--${b}`,D=Buffer.from(w),_=Buffer.from(k),P=new Uint8Array(D.byteLength+l.byteLength+_.byteLength);let U=0;return P.set(D,U),U+=D.byteLength,P.set(l,U),U+=l.byteLength,P.set(_,U),y(`${a}/api/order-entry/upload?an=${e}`,{method:"POST",headers:{...S,"content-type":`multipart/form-data; boundary=${O}`},body:P.buffer},{})},startOperation:({objectKey:l,orderFormId:u,sessionToken:m})=>{const S=s({"content-type":"application/json","X-FORWARDED-HOST":p}),O=JSON.stringify({objectKey:l,orderFormId:u,operation:"CreateCart",...m?{sessionToken:m}:{}});return y(`${a}/api/order-entry/operation?an=${e}`,{method:"POST",headers:S,body:O},{})},getOperation:({operationId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${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 y(`${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 y(`${a}/api/checkout/pub/orderForm/${l}`,{method:"GET",headers:u},{})}},recommendation:{recommendations:({campaignVrn:l,userId:u,products:m=[],salesChannel:S,locale:O})=>{const b=new URLSearchParams({an:e,campaignVrn:l});return u&&b.append("userId",u),m.length>0&&b.append("products",m.join(",")),S&&b.append("salesChannel",S),O&&b.append("locale",O),y(`${f}/recommendations?${b.toString()}`,{headers:h},{storeCookies:o})},startRecommendationSession:()=>{const l=new URLSearchParams({an:e});return y(`${f}/users/start-session?${l.toString()}`,{method:"POST",headers:h},{storeCookies:o})}}}},ie=e=>e.discoveryConfig?.localization??{},Y=e=>ie(e).enabled===!0,Ft=e=>Object.keys(ie(e).locales??{}),Nt=e=>ie(e).defaultLocale,Un=e=>Y(e)&&e.storage.locale||void 0,Oe="fuzzy",Ce="operator",be="pickupPoint",$e="shipping",Me="delivery-options",Lt="in-stock",Bt="trade-policy",$t="region-id",Mt=new Set([Bt,$t,Oe,Ce,be]),zt=new Set(["zip-code","pickupPoint","country","coordinates","deliveryZonesHash","pickupPointsHash"]),ze=e=>encodeURI(decodeURI(e)),Vt=e=>encodeURIComponent(decodeURIComponent(e).normalize("NFD").replaceAll(/[\u0300-\u036f]/g,"")),qt=/^pickup-in-point-(.+)$/;function _n(e){if(!e)return{};try{const t=ae.parse(e).vtex_segment;if(!t)return{};const r=Buffer.from(t,"base64").toString("utf-8");return JSON.parse(r)}catch{return{}}}function xt(e){const n={},t=[];for(const r of e.split(";")){const i=r.indexOf("=");if(i<0)continue;const a=r.slice(0,i),o=r.slice(i+1);!a||!o||(zt.has(a)?n[a]=o:t.push({key:a,value:o}))}return{shipping:n,extraFacets:t}}function jt(e){const n=typeof e.facets=="string"?e.facets:"",{shipping:t,extraFacets:r}=xt(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},extraFacets:r}}function Rn(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]];for(const[r,i]of t)i!=null&&i!==""&&e.append(r,String(i))}function Fn(e){return qt.exec(e)?.[1]}function Wt(e){const n=e.find(r=>r.key==="shipping"),t=n?Fn(n.value):void 0;if(t!==void 0)try{return decodeURIComponent(t)}catch{return t}}function Gt(e,n){const t=Wt(n);return t===void 0?e:{...e,pickupPoint:t}}function Ht(e){return e.map(n=>n.key!=="shipping"||Fn(n.value)===void 0?n:{...n,value:"pickup-in-point"})}function Xt(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")),Ht(t)}function Yt(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}${ze(r)}/${Vt(ze(i)).replaceAll(/ |%20/g,"-")}/`},"")}const Jt=e=>e.key==="fuzzy"&&(e.value==="0"||e.value==="1"||e.value==="auto"),Kt=e=>e.key==="operator"&&(e.value==="and"||e.value==="or");function Qt(e,n){const{segmentParams:t,extraFacets:r}=jt(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 Zt(e,n){const t=e.filter(({key:c})=>!Mt.has(c)),r=e.find(({key:c,value:d})=>c===$e&&d!=="all-delivery-methods")??null,i=e.find(({key:c,value:d})=>c===Me&&d!=="all-delivery-options")??null,a=[...t],o=a.some(({key:c})=>c===$e),s=a.some(({key:c})=>c===Me);return r!==null&&!o&&a.push(r),i!==null&&!s&&a.push(i),Xt(a,n)}function er(e,n){const t=e.find(({key:a})=>a===Oe)??null,r=e.find(({key:a})=>a===Ce)??null,i=e.find(({key:a})=>a===be)??null;t&&Jt(t)&&n.append(Oe,t.value),r&&Kt(r)&&n.append(Ce,r.value),i&&n.append(be,i.value)}function Ve(e,n,t,r){const{query:i="",page:a,count:o,sort:s,selectedFacets:c=[],showInvisibleItems:d,sponsoredCount:g,hideUnavailableItems:p,allowRedirect:f=!1}=e,h=new URLSearchParams;if(r.includePagination&&a!==void 0&&o!==void 0){const u=a*o,m=o===0?u:u+o-1;h.append("from",u.toString()),h.append("to",m.toString())}i&&h.append("query",i),r.includeSort&&s&&h.append("sort",s);const v=Gt(t.segmentParams,c);if(Rn(h,v??t.segmentParams),er(c,h),d&&h.append("show-invisible-items","true"),n?.hideUnavailableItems!==void 0){const u=c.find(({key:S})=>S===Lt),m=u?u.value:p?.toString()??n.hideUnavailableItems.toString();h.append("hideUnavailableItems",m)}n?.simulationBehavior!==void 0&&h.append("simulationBehavior",n.simulationBehavior.toString()),n?.showSponsored!==void 0&&h.append("showSponsored",n.showSponsored.toString()),g!==void 0&&h.append("sponsoredCount",g.toString()),f!==void 0&&h.append("allowRedirect",f.toString());const l=Yt(Zt(c,t.extraFacets));return{params:h,path:l}}function nr(e,n){const{field:t,value:r,hideUnavailableItems:i,showInvisibleItems:a}=e,o=new URLSearchParams({field:t??"",value:r??""});return Rn(o,n),i&&o.append("hideUnavailableItems","true"),a&&o.append("show-invisible-items","true"),o}function ne(e,n){return{path:e,params:n,toString(){const t=n.toString();return e?t?`${e}?${t}`:e:t?`?${t}`:""}}}function te(e){const{endpoint:n,segment:t,defaults:r,args:i={}}=e,a=Qt(t,r);switch(n){case"product-search":case"facets":{const{params:o,path:s}=Ve(i,r,a,{includePagination:!0,includeSort:!0});return ne(s,o)}case"catalog-count":{const{params:o,path:s}=Ve(i,r,a,{includePagination:!1,includeSort:!1});return ne(s,o)}case"products":{const o=nr(i,a.segmentParams);return ne("",o)}case"search-suggestions":{const o=new URLSearchParams({query:i.query?.toString()??"",locale:r?.locale??a.segmentParams.locale??""});return ne("",o)}case"top-searches":{const o=new URLSearchParams({locale:r?.locale??a.segmentParams.locale??""});return ne("",o)}default:{const o=n;throw new Error(`Unknown intelligent-search endpoint: ${o}`)}}}const tr=10;function rr(e){const{regionId:n,seller:t}=e.storage.channel;return(t?Buffer.from(`SW#${t}`).toString("base64"):void 0)??(n||void 0)}function ir(e){const t=_n(e.headers?.cookie).cultureInfo||"";return Y(e)?e.storage.locale||t:t||e.storage.locale||""}const ar=({account:e,environment:n,hideUnavailableItems:t,simulationBehavior:r,showSponsored:i,subDomainPrefix:a},o)=>{const s=`https://${e}.${n}.com.br`,c=Tn(o),d=_n(o.headers?.cookie),g=()=>({salesChannel:o.storage.channel.salesChannel,regionId:rr(o),locale:ir(o),hideUnavailableItems:t,simulationBehavior:r,showSponsored:i}),p=new Headers(o.headers).get("x-forwarded-host")??o.headers?.host??"",f=a&&a.map(I=>I+".").find(I=>p.includes(I))||"",h=p.replace(f,""),v=c({"content-type":"application/json","X-FORWARDED-HOST":h}),l=({type:I,...w})=>{const k=I==="facets"?"facets":"product-search",D=te({endpoint:k,segment:d,defaults:g(),args:w});return y(`${s}/api/intelligent-search/v1/${k}/${D.path}?${D.params.toString()}`,{headers:v})},u=I=>l({...I,type:"product_search"}),m=({field:I,value:w,hideUnavailableItems:k,showInvisibleItems:D})=>{const _=te({endpoint:"products",segment:d,defaults:g(),args:{field:I,value:w,hideUnavailableItems:k,showInvisibleItems:D}});return y(`${s}/api/intelligent-search/v1/products?${_.params.toString()}`,{headers:v})};return{facets:I=>l({...I,type:"facets"}),products:u,fetchProduct:m,productsByIdentifier:async({field:I,values:w,showInvisibleItems:k,hideUnavailableItems:D})=>{const _=Ue(tr);return(await Promise.all(w.map(U=>_(async()=>{try{return await m({field:I,value:U,hideUnavailableItems:D,showInvisibleItems:k})}catch{return null}})))).filter(U=>U!==null)},suggestedTerms:I=>{const w=te({endpoint:"search-suggestions",segment:d,defaults:g(),args:{query:I.query}});return y(`${s}/api/intelligent-search/v1/search-suggestions?${w.params.toString()}`,{headers:v})},topSearches:()=>{const I=te({endpoint:"top-searches",segment:d,defaults:g()});return y(`${s}/api/intelligent-search/v1/top-searches?${I.params.toString()}`,{headers:v})},productCount:I=>{const w=te({endpoint:"catalog-count",segment:d,defaults:g(),args:I});return y(`${s}/api/intelligent-search/v1/catalog-count/${w.path}?${w.params.toString()}`,{headers:v})}}},or=(e,n)=>{const t=ar(e,n),r=Rt(e,n),i=Ot(e);return{search:t,commerce:r,catalog:i}},sr=20,cr=e=>e.entityType==="category",we=e=>e.entityType==="brand",qe=e=>e.entityType==="collection",lr=(e,n)=>{const t=Ue(sr),r=async i=>Promise.all(i.map(a=>t(async()=>{const o=a.slug.toLowerCase(),s=a.locale,c=await n.commerce.catalog.byLinkId.category(o,s);if(c)return{...c,entityType:"category",slug:o};const d=await n.commerce.catalog.byLinkId.brand(o,s);if(d)return{...d,entityType:"brand"};const g=await n.commerce.catalog.byLinkId.collection(o,s);if(g)return{...g,entityType:"collection"};throw new $(`No catalog entity found for slug: ${a.slug}. Cascade exhausted (category → brand → collection).`)})));return new Se(r,{batch:!1,cacheKeyFn:({slug:i,locale:a})=>`${i.toLowerCase()}::${a??""}`})},dr=(e,n)=>{const t=async r=>Promise.all(r.map(i=>n.commerce.catalog.salesChannel(i)));return new Se(t)},ur=1,pr=(e,n)=>{const t=Ue(ur),r=async a=>{const o=a.reduce((p,{items:f})=>[...p,f],[]),s=[...o.flat()],c=await n.commerce.checkout.simulation({country:a[0].country,postalCode:a[0].postalCode,items:s}),d=c.items.reduce((p,f)=>{const h=f.requestIndex;return typeof h=="number"&&h<p.length&&(p[h]=f),p},Array(s.length).fill(null)),g=o.reduce((p,f)=>[...p,f.length+p[p.length-1]],[0]);return o.map((p,f)=>({...c,items:d.slice(g[f],g[f+1]).filter(h=>!!h)}))},i=async a=>t(r,a);return new Se(i,{maxBatchSize:50})},gr=(e,n)=>lt(e,n);function mr(e){return{...e,description:e.description?gr(e.description):e.description}}const L=(e,n)=>({...e,isVariantOf:mr(n)}),hr=({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 f of p.items)g[f.itemId]=L(f,p);return g},{}),c=i.map(g=>s[g]),d=i.filter(g=>!s[g]);if(d.length>0)throw new $(`Search API did not found the following skus: ${d.join(",")}`);return c};return new Se(t,{maxBatchSize:99})},fr=(e,n)=>{const{clients:t}=n,r=hr(e,t),i=pr(e,t),a=lr(e,t),o=dr(e,t);return{skuLoader:r,simulationLoader:i,collectionLoader:a,salesChannelLoader:o}},V=e=>e.AvailableQuantity>0,K=e=>e.spotPrice??0,Sr=e=>e.Price??0,xe=e=>e?"https://schema.org/InStock":"https://schema.org/OutOfStock",Nn=(e,n)=>V(e)&&!V(n)?-1:!V(e)&&V(n)?1:K(e)-K(n),yr=e=>e==="available",G=(e,n=0,t=1)=>{const r=n/t;return Math.round((e+r)*100)/100},Ir=(e,n={includeTaxes:!1})=>{const t=e.filter(V),r=t[t.length-1],i=r?K(r):0;return n.includeTaxes?G(i,r?.Tax,r?.product?.unitMultiplier):i},je=(e,n={includeTaxes:!1})=>{const[t]=e.filter(V),r=t?K(t):0;return n.includeTaxes?G(r,t?.Tax,t?.product?.unitMultiplier):r},vr={highPrice:e=>Ir(e),lowPrice:e=>je(e),lowPriceWithTaxes:e=>je(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},Or={ratingValue:()=>5,reviewCount:()=>0},We="ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆÍÌÎÏŇÑÓÖÒÔÕØŘŔŠŤÚŮÜÙÛÝŸŽáäâàãåčçćďéěëèêẽĕȇíìîïňñóöòôõøðřŕšťúůüùûýÿžþÞĐđ߯a",Cr="AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa",br=e=>{let n=e.slice(0);for(let t=0;t<We.length;t++)n=n.replace(new RegExp(We.charAt(t),"g"),Cr.charAt(t));return n},wr=e=>e.replace(/[·/_,:]/,"-");function ge(e){const t=e.replace(/,/g,"").replace(/[*+~.()'"!:@&\[\]`/ %$#?{}><=_^]/g,"-");return wr(br(t)).toLowerCase()}const Ie=e=>e.toLowerCase(),le=(e,n)=>{const t=n.split("/").filter(Boolean),{loaders:{collectionLoader:r}}=e;return Promise.all(t.map((i,a)=>r.load({slug:t.slice(0,a+1).join("/"),locale:Un(e)})))},j=e=>cr(e)?e.slug:we(e)?e.linkId:e.linkId??ge(e.name),Ln={id:({id:e})=>e.toString(),slug:e=>j(e),seo:e=>({title:e.title??e.name,description:e.metaTagDescription??e.description}),type:e=>we(e)?"Brand":qe(e)?"Collection":e.fatherCategoryId===null?"Department":"Category",meta:async(e,n,t)=>{const r=j(e);if(we(e))return{selectedFacets:[{key:"brand",value:r}]};if(qe(e))return{selectedFacets:[{key:"productclusterids",value:e.id}]};const{defaultLocale:i}=ie(t);return{selectedFacets:(await le(t,r)).map((o,s)=>({key:`category-${s+1}`,value:i&&o.availableLinkIds?.[i]||o.linkId}))}},breadcrumbList:async(e,n,t)=>{const r=await le(t,j(e));return{itemListElement:r.map((i,a)=>({item:`/${j(i)}`,name:i.name,position:a+1})),numberOfItems:r.length}},otherLocales:async(e,n,t)=>{const r=ie(t);if(!r.enabled)return null;const i=Object.keys(r.locales??{});if(i.length===0)return null;const a=j(e);if(a.split("/").filter(Boolean).length===0)return null;let o;try{o=await le(t,a)}catch(s){return console.warn("[otherLocales] failed to load collection entities:",s),null}return i.map(s=>{const c=[];for(const d of o){const g=d.availableLinkIds?.[s];if(!g)return null;c.push(g)}return c.length>0?{locale:s,slug:Ie(c.join("/"))}:null}).filter(s=>s!==null)},canonicalSlug:async(e,n,t)=>{const r=j(e);if(r.split("/").filter(Boolean).length===0)return null;let i;try{i=await le(t,r)}catch(o){return console.warn("[canonicalSlug] failed to load collection entities:",o),null}const a=i.map(o=>o.linkId);return a.every(o=>!!o)?Ie(a.join("/")):Ie(r)}},Bn={buy:"whoboughtalsobought",view:"whosawalsosaw",similars:"similars",viewAndBought:"whosawalsobought",accessories:"accessories",suggestions:"suggestions"},Ge=({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}}},He=e=>{const n=e.split(":").map(Number);return n.length!==2||Number.isNaN(n[0])||Number.isNaN(n[1])?null:n},Ar=e=>typeof Bn[e]=="string",Dr=e=>{const n=e?.filter(t=>Ar(t.key));if(Array.isArray(n)&&n.length>1)throw new E(`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},Pr=e=>e?.find(n=>n.key==="slug")?.value??null,Er=e=>e?.find(n=>n.key==="id")?.value??null,Xe=e=>e?.find(n=>n.key==="locale")?.value??null,Ye=e=>e?.find(n=>n.key==="channel")?.value??null,Ae=(e,n)=>{let t=0;for(let r=1;r<e.length;r++)n(e[t],e[r])>0&&(t=r);return e[t]},kr={__resolveType:({type:e,values:n})=>e!=="TEXT"&&e!=="DELIVERY"?"StoreFacetRange":!n||n.length===0?"StoreFacetBoolean":n.every(t=>t.range)?"StoreFacetRange":"StoreFacetBoolean"},Tr={key:({key:e})=>e,label:({name:e})=>e,values:({values:e})=>e.sort((n,t)=>n.name.localeCompare(t.name))},Ur={key:({key:e})=>e,label:({name:e})=>e,min:({values:e,key:n},t,{storage:{searchArgs:r}})=>{const i=He(r?.selectedFacets?.find(s=>s.key===n)?.value??""),o=Ae(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=He(r?.selectedFacets?.find(s=>s.key===n)?.value??""),o=Ae(e,(s,c)=>c.range.to-s.range.to)?.range?.to??0;return{selected:i?.[1]??o,absolute:o}}},_r={value:({value:e})=>e,label:({name:e})=>e||"unknown",selected:({selected:e})=>e,quantity:({quantity:e})=>e},Rr=async(e,{data:n},{clients:{commerce:t}})=>{if(!n?.orderId)throw new E("Missing orderId");return{data:(await t.checkout.cancelOrder(n))?.data}};function $n(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 Fr(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=$n(r);return{isPendingForOtherAuthorizer:!i&&Fr(r),ruleForAuthorization:i}},Lr=async(e,{data:n},{clients:{commerce:t}})=>{if(!n?.objectKey)throw new E("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})},Br=async(e,n,t)=>{if(!(await t.clients.commerce.recommendation.startRecommendationSession())?.recommendationsUserId)throw new Error("Failed to start recommendation session: no session data returned");return!0},$r=async(e,{data:n},{clients:{commerce:t}})=>({id:(await t.subscribeToNewsletter(n))?.Id}),Mr=async(e,{data:n},{clients:{commerce:t}})=>{const{fileContent:r,fileName:i,mimeType:a}=n;if(!r||!i||!a)throw new E("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 E("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 E("Invalid Base64 fileContent");const g=Buffer.from(o,"base64");return await t.orderEntry.uploadFile({fileBuffer:g,fileName:i,mimeType:a})};class oe{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)}}function zr(e,n){return n==null||n===""||String(n)===String(e.salesChannel??"")?null:oe.stringify({...e,salesChannel:String(n),hasOnlyDefaultSalesChannel:!1})}function Vr(e,n,t){return t!=null&&String(e.salesChannel??"")===t&&String(n??"")!==t?!1:e.items.length>0?!0:e.salesChannel==null||e.salesChannel===""?!1:String(e.salesChannel)===String(n??"")}const Mn=e=>{try{return JSON.parse(e??"")??{}}catch{return{}}};function zn(e,{localizationEnabled:n=!0}={}){const t=Mn(e).salesChannelSource;return t==="url"?n?t:void 0:t==="orderForm"?t:void 0}const Vn=e=>!!e?.localization?.enabled;function qn(e){const n=Mn(e).rejectedSalesChannel;return(typeof n=="string"||typeof n=="number")&&String(n)||void 0}function qr(e,n,t,r,i,a){const o=n??void 0,s=t??e.regionId,c=i?e.salesChannel||o:o??e.salesChannel,d=a!=null&&a!==String(c??"");return oe.stringify({salesChannel:c,regionId:s??void 0,seller:r,hasOnlyDefaultSalesChannel:!o,...i?{salesChannelSource:i}:{},...d?{rejectedSalesChannel:a}:{}})}const Je="1";function xr(e,n,t,r){const i=String(e.salesChannel??"");return n===void 0&&i===Je&&!!t&&t!==Je&&!new URLSearchParams(r).has("sc")?t:i}const me=(e,n)=>{e.storage.channel=oe.parse(n)},De=(e,n)=>{e.storage.locale=n},Re=e=>dt.createHash("md5").update(e).digest("hex"),x={attachment:"ATTACHMENT",specification:"SPECIFICATION",attribute:"ATTRIBUTE",service:"SERVICE"};function xn(e){return{name:e.name,value:e.content,valueReference:x.attachment}}function jr(e){return{propertyID:e.id,name:e.name,value:e.value,valueReference:{valueReference:x.attribute,visible:e.visible}}}function jn(e){return Re(`${e.name}:${JSON.stringify(e.value)}:${e.valueReference}`)}const Wn=(e,n)=>e<n?-1:e>n?1:0,Wr=(e,n)=>Wn(e.name,n.name),Gr=e=>[...e??[]].sort(Wr),Ke=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Hr=e=>Ke(e)&&typeof e.name=="string"&&Ke(e.content),Xr=e=>({name:e.name,content:Object.fromEntries(Object.keys(e.content).sort(Wn).map(n=>[n,e.content[n]]))}),Gn=(e,n)=>Re(`SERVICE:${e}:${JSON.stringify(Gr((n??[]).filter(Hr)).map(Xr))}`),Yr="SERVICE:unreadable";function Fe(e){const n=e.attachments??[];return{propertyID:Gn(e.id,n),name:e.name,value:{id:e.id,price:e.sellingPrice/100,attachments:n},valueReference:x.service}}const Jr=e=>{try{return JSON.parse(e)}catch{return null}},Kr=e=>{const n=typeof e=="string"?Jr(e):e;if(n===null||typeof n!="object")return null;const{id:t,attachments:r}=n;return typeof t!="string"&&typeof t!="number"?null:{id:String(t),attachments:r}};function Qr(e){const n=Kr(e.value);return n?Gn(n.id,Array.isArray(n.attachments)?n.attachments:[]):Yr}const Zr=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]},ei=(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},Hn=(e,n)=>{if(!ni(n))return{updateShipping:!1,addressChanged:!1};if(!ai(e))return{updateShipping:!1,addressChanged:!1};const[t]=e?.shippingData?.selectedAddresses??[];if(ti(t,n.postalCode)||ri(t,n.geoCoordinates)||ii(t,n.addressType))return{updateShipping:!0,addressChanged:!0};const{logisticsInfo:r}=e.shippingData;return oi(r,n)?{updateShipping:!0,addressChanged:!1}:{updateShipping:!1,addressChanged:!1}},ni=e=>!!e.postalCode||e.geoCoordinates?.latitude&&e.geoCoordinates?.longitude,ti=(e,n)=>typeof n=="string"&&e?.postalCode!==n,ri=(e,n)=>typeof n?.latitude=="number"&&typeof n?.longitude=="number"&&(e?.geoCoordinates[0]!==n?.longitude||e?.geoCoordinates[1]!==n?.latitude),ii=(e,n)=>typeof n=="string"&&e?.addressType!==n,ai=e=>e.items.length!==0,oi=(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(f=>f?.startDateUtc===i&&f?.endDateUtc===a))})},Xn=e=>e.valueReference===x.attachment,si=e=>e.valueReference===x.service,ci=e=>(e.itemOffered.additionalProperty??[]).filter(si).map(Qr).sort((n,t)=>n.localeCompare(t)),Yn=e=>{const n=ci(e);return n.length>0?`services:${n.join("-")}`:void 0},Pe=e=>[e.itemOffered.sku,e.seller.identifier,e.price<.01?"Gift":void 0,e.itemOffered.additionalProperty?.filter(Xn).map(jn).join("-"),Yn(e)].filter(Boolean).join("::"),he=(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(xn),...(e.bundleItems??[]).map(Fe)]},index:n}),li=e=>({quantity:e.quantity,seller:e.seller.identifier,id:e.itemOffered.sku,index:e.index,attachments:(e.itemOffered.additionalProperty?.filter(Xn)??[]).map(n=>({name:n.name,content:n.value})),...e.priceToken?{priceToken:e.priceToken}:{}}),Qe=e=>e.reduce((n,t)=>{const r=Pe(t);return n.has(r)||n.set(r,[]),n.get(r)?.push(t),n},new Map),di=(e,n)=>{const t=({priceToken:s,...c},d)=>({...c,itemOffered:{sku:c.itemOffered.sku},services:Yn(c),index:d}),r=n.items.map(he).map(t),i=e.acceptedOffer.map(t),a=e.orderNumber===n.orderFormId,o=_e(r,i);return a&&o};function Jn(e,n){return e?.some(t=>t.parentItemIndex!==null&&t.parentItemIndex!==void 0&&e[t.parentItemIndex]?.id===n)}function Kn(e,n){return e?.some(t=>t.id===n&&t.parentItemIndex!==null)}const Ze=e=>{const n=e.items.reduce((t,r,i)=>{const a=Kn(e.items,r.id)||Jn(e.items,r.id)?`${Pe(he(r))}::${i}`:Pe(he(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}})}},Ee=async(e,n,t,r)=>({order:{orderNumber:e.orderFormId,acceptedOffer:e.items.map(async i=>({...i,product:await n.load(`${i.id}-invisibleItems`)})),shouldSplitItem:t,...r?{salesChannel:r}:{}},messages:e.messages.map(({text:i,status:a})=>({text:i,status:a.toUpperCase()}))}),Qn=({items:e},n)=>{const t=e.map(r=>{const i=(r.bundleItems??[]).map(Fe).map(({propertyID:a})=>a).sort((a,o)=>a.localeCompare(o));return{id:r.id,quantity:r.quantity,seller:r.seller,attachments:r.attachments,...i.length>0?{services:i}:{}}});return Re(JSON.stringify({sessionId:n?.id??"",items:t}))},en=async(e,n,t)=>{try{return await n.checkout.setCustomData({id:e.orderFormId,appId:"faststore",key:"cartEtag",value:Qn(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 gn=require("@graphql-tools/merge"),mn=require("@graphql-tools/schema"),Y=require("@graphql-tools/utils"),me=require("graphql"),M=require("@faststore/diagnostics"),dt=require("isomorphic-unfetch"),oe=require("cookie"),_e=require("p-limit"),ye=require("dataloader"),ut=require("sanitize-html"),Re=require("fast-deep-equal"),pt=require("node:crypto");var hn=(e=>(e.Personal="personal",e.Shared="shared",e))(hn||{}),fn=(e=>(e.Accepted="accepted",e.Denied="denied",e.Pending="pending",e))(fn||{}),Sn=(e=>(e.Brand="Brand",e.Category="Category",e.Cluster="Cluster",e.Collection="Collection",e.Department="Department",e.SubCategory="SubCategory",e))(Sn||{}),yn=(e=>(e.Boolean="BOOLEAN",e.Range="RANGE",e))(yn||{}),In=(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))(In||{}),vn=(e=>(e.Error="ERROR",e.Info="INFO",e.Warning="WARNING",e))(vn||{}),On=(e=>(e.Input="Input",e.Output="Output",e))(On||{});const gt=()=>function(n={}){const t=process.env.FS_DISCOVERY_APP_KEY??"",r=process.env.FS_DISCOVERY_APP_TOKEN??"";if(!t||!r)throw new Q("No authentication AppKey and AppToken passed.");return{...n,"X-VTEX-API-AppKey":t,"X-VTEX-API-AppToken":r}},Cn=async e=>{const{clients:{commerce:n}}=e;try{if((await n.vtexid.validate())?.authStatus?.toLowerCase()!=="success")throw new re("Authentication required")}catch(t){const r=t.extensions?.status??t.status;throw r===401?new re("Authentication required"):r===403?new Q("You are not allowed to access this resource"):new re("Authentication required")}},mt="auth",bn={typeDefs:"directive @auth on FIELD_DEFINITION",transformer:e=>Y.mapSchema(e,{[Y.MapperKind.OBJECT_FIELD]:n=>{if(Y.getDirective(e,n,mt)?.[0]){const r=n.resolve;n.resolve=async(i,a,o,s)=>(await Cn(o),r?.(i,a,o,s))}return n}})},ht="cacheControl",ft=(e,n)=>{const{scope:t="private",sMaxAge:r=0,staleWhileRevalidate:i=0}=e;return`${n?"private":t}, s-maxage=${r}, stale-while-revalidate=${i}`},Le=(e,n)=>typeof e=="number"&&typeof n=="number"?e>n?n:e:typeof e=="number"?e:n,St=(e,n)=>typeof e=="string"&&typeof n=="string"?e==="public"&&n==="public"?"public":"private":e||n,wn={typeDefs:"directive @cacheControl(sMaxAge: Int, staleWhileRevalidate: Int, scope: String) on FIELD_DEFINITION",transformer:e=>Y.mapSchema(e,{[Y.MapperKind.OBJECT_FIELD]:n=>{const t=Y.getDirective(e,n,ht)?.[0];if(t){const{sMaxAge:r,staleWhileRevalidate:i,scope:a}=t,o=n.resolve;n.resolve=(s,c,d,g)=>(d.cacheControl={sMaxAge:Le(d.cacheControl?.sMaxAge,r),staleWhileRevalidate:Le(d.cacheControl?.staleWhileRevalidate,i),scope:St(d.cacheControl?.scope,a)},o?.(s,c,d,g))}return n}})},An=e=>(n,t)=>{const r=gn.mergeTypeDefs([...(e??[]).map(({typeDefs:i})=>i),t]);return(e??[]).reduce((i,{transformer:a})=>a?.(i)??i,mn.makeExecutableSchema({typeDefs:r,resolvers:n}))},Dn="@faststore/api",Pn="4.10.0-dev.0",Be={name:Dn,version:Pn},En=M.logger("@faststore/api"),yt=(e,n="Unknown Graphql Resolver")=>(t,r,i,a)=>{if(!i?.OTEL_ENABLED)return e(t,r,i,a);const o=M.OTELAPI.trace.getTracer("Graphql").startSpan(n,{kind:M.OTELAPI.SpanKind.INTERNAL,attributes:{timestamp:Date.now(),"@faststore_version":Pn,"@faststore_package_name":Dn,"@faststore_account_name":i.account,"@faststore_environment":process.env.NODE_ENV,"@faststore_resolver_parent_type":a?.parentType?.name,"@faststore_resolver_field_name":a?.fieldName}}),s=M.OTELAPI.trace.setSpan(M.OTELAPI.context.active(),o);try{const c=M.OTELAPI.context.with(s,()=>e(t,r,i,a));return c instanceof Promise?c.then(d=>(o.end(),d),d=>$e(d,o,n)):(o.end(),c)}catch(c){return $e(c,o,n)}};function $e(e,n,t){throw n.setStatus({code:M.OTELAPI.SpanStatusCode.ERROR}),n.recordException(e),n.end(),console.error(`Error at resolver: ${t}:
2
+ %o`,e),En("error",`Error at resolver: %s
3
+ %o`,t,e),e}class q extends Error{constructor(n,t){super(t),this.extensions=n,this.name="FastStoreError"}}class U extends q{constructor(n){super({status:400,type:"BadRequestError"},n)}}class re extends q{constructor(n){super({status:401,type:"UnauthorizedError"},n)}}class Q extends q{constructor(n){super({status:403,type:"ForbiddenError"},n)}}class $ extends q{constructor(n){super({status:404,type:"NotFoundError"},n)}}const It=e=>e?.name==="FastStoreError",vt=e=>e?.extensions?.type==="BadRequestError",Ot=e=>e?.extensions?.type==="UnauthorizedError",kn=e=>e?.extensions?.type==="ForbiddenError",J=e=>e?.extensions?.type==="NotFoundError",Ct=`${Be.name}@${Be.version}`,y=async(e,n,t)=>{const r=await dt(e,{...n,headers:{...n?.headers??{},"User-Agent":Ct}});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 re(i);case 403:throw new Q(i);case 404:throw new $(i);default:throw new q({status:r.status,type:"UnknownError"},i)}throw new Error(i)},bt=({account:e,environment:n})=>{const t=`https://${e}.${n}.com.br`;return{getLocalizedProduct:(r,i)=>y(`${t}/api/catalog-dataplane/product/${r}`,{method:"GET",headers:{"Accept-Language":i,"Content-Type":"application/json"}})}},Un=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("; ")},wt=/^([^=]+)=([^;]*)/,At=(e,n)=>{const t=n.match(wt);if(t){const r=t[1],i=t[2];e.storage.cookies.set(r,{value:i,setCookie:n})}},Dt=(e,n)=>{n.getSetCookie().forEach(t=>At(e,t))},Pt=e=>n=>Dt(e,n),Oe=e=>{if(!e.headers?.cookie)return null;const n=Un(e.headers.cookie),t=Array.from(e.storage.cookies.entries());return t.length===0?n:t.reduce((r,[i,{value:a}])=>Et(r,i,a),n)},Tn=e=>function(t){const r=Oe(e);return r?{...t,cookie:r}:t},B=(e,n)=>{const t=Un(e);return oe.parse(t)[`VtexIdclientAutCookie_${n}`]||""},Et=(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 G(e){if(!e)return null;try{return JSON.parse(Buffer.from(e.split(".")[1],"base64").toString())}catch{return null}}const kt="storefront/faststore.recommendation-shelf@v4",te={method:"POST",headers:{"content-type":"application/json"}},Ut=e=>e.split("/").map(encodeURIComponent).join("/"),Ie=e=>e?{headers:{"Accept-Language":e}}:void 0,Tt=/^\d{4}-\d{2}-\d{2}$/,_t=new Set(["Draft","Requested","InReview","Reviewed","Approved","Declined","Expired","ConvertedToCart","ConvertedToOrder"]);function Rt({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&&!Tt.test(c))throw new Error(`listUserQuotes: invalid ${s} "${c}" — must be YYYY-MM-DD`);if(t&&t.length>0){const s=t.filter(c=>!_t.has(c));if(s.length>0)throw new Error(`listUserQuotes: invalid status values: ${s.join(", ")}`)}}function Ft({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 Nt=({account:e,environment:n,incrementAddress:t,subDomainPrefix:r},i)=>{const a=`https://${e}.${n}.com.br`,o=Pt(i),s=Tn(i),c=gt(),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,""),f=`${a}/api/recommend-bff/v2`,h=s({accept:"application/json","content-type":"application/json","x-vtex-rec-origin":`${e}/${kt}`}),I=(l={})=>{const u=B(Oe(i)??"",e);return s({...l,"X-FORWARDED-HOST":p,...u?{[`VtexIdclientAutCookie_${e}`]:u}:{}})};return{catalog:{salesChannel:l=>y(`${a}/api/catalog_system/pub/saleschannel/${l}`,void 0,{storeCookies:o}),brand:{list:()=>y(`${a}/api/catalog_system/pub/brand/list`,void 0,{storeCookies:o})},category:{tree:(l=3)=>y(`${a}/api/catalog_system/pub/category/tree/${l}`,void 0,{storeCookies:o})},portal:{pagetype:l=>y(`${a}/api/catalog_system/pub/portal/pagetype/${l}`,void 0,{storeCookies:o})},byLinkId:{category:async(l,u)=>{try{return await y(`${a}/api/catalog_system/pub/category/by-linkid/${Ut(l)}`,Ie(u))}catch(m){if(J(m))return null;throw m}},brand:async(l,u)=>{try{return await y(`${a}/api/catalog_system/pub/brand/by-linkid/${encodeURIComponent(l)}`,Ie(u))}catch(m){if(J(m))return null;throw m}},collection:async(l,u)=>{try{return await y(`${a}/api/catalog_system/pub/collection/by-linkid/${encodeURIComponent(l)}`,Ie(u))}catch(m){if(J(m))return null;throw m}}},products:{crossselling:({type:l,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/${l}/${u}?${S}`,void 0,{storeCookies:o})}}},checkout:{simulation:(l,{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()}`,{...te,headers:S,body:JSON.stringify(l)},{storeCookies:o})},shippingData:({id:l,index:u,deliveryMode:m,selectedAddresses:S},v)=>{const b=v?{startDateUtc:m?.deliveryWindow?.startDate,endDateUtc:m?.deliveryWindow?.endDate}:null,C={logisticsInfo:Array.from({length:u},(A,O)=>({itemIndex:O,selectedDeliveryChannel:m?.deliveryChannel||null,selectedSla:m?.deliveryMethod||null,deliveryWindow:b})),selectedAddresses:S,clearAddressIfPostalCodeNotFound:t},T=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${l}/attachments/shippingData`,{...te,headers:T,body:JSON.stringify(C)},{storeCookies:o})},marketingData:({id:l,marketingData:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${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 y(`${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,preserveSalesChannel:S=!1})=>{const{salesChannel:v}=m,b=s({"content-type":"application/json","X-FORWARDED-HOST":p}),C=new URLSearchParams;(!S||!l)&&C.set("sc",v),l&&C.set("refreshOutdatedData",u.toString());const T=l?`/${l}`:"",A=`${a}/api/checkout/pub/orderForm${T}?${C}`;return y(A,{...te,headers:b,...l?{}:{body:"{}"}},{storeCookies:o})},clearOrderFormMessages:({id:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${l}/messages/clear`,{...te,headers:u,body:"{}"})},updateOrderFormItems:({id:l,orderItems:u,allowOutdatedData:m="paymentData",salesChannel:S=i.storage.channel.salesChannel,shouldSplitItem:v=!0})=>{const b=new URLSearchParams({allowOutdatedData:m,sc:S}),C=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${l}/items?${b}`,{headers:C,body:JSON.stringify({orderItems:u,noSplitItem:!v}),method:"PATCH"},{storeCookies:o})},setCustomData:({id:l,appId:u,key:m,value:S})=>{const v=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orderForm/${l}/customData/${u}/${m}`,{headers:v,body:JSON.stringify({value:S}),method:"PUT"})},region:async({postalCode:l,geoCoordinates:u,country:m,salesChannel:S})=>{const v=new URLSearchParams({country:m,sc:S??""});l?v.append("postalCode",l):v.append("geoCoordinates",`${u?.longitude};${u?.latitude}`);const b=`${a}/api/checkout/pub/regions/?${v.toString()}`,C=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(b,{headers:C},{storeCookies:o})},address:async({postalCode:l,country:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/postal-code/${u}/${l}`,{headers:m},{storeCookies:o})},cancelOrder:({orderId:l,customerEmail:u,reason:m})=>{const S=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/checkout/pub/orders/${l}/user-cancel-request`,{method:"POST",headers:S,body:JSON.stringify({customerEmail:u,reason:m})},{})}},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,shopper.availableContracts,shopper.activeContractId,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=oe.parse(i?.headers?.cookie??"")?.vtex_session;return y(`${a}/api/sessions?${u.toString()}`,{method:S?"PATCH":"POST",headers:m,body:"{}"},{storeCookies:o})},storeFront:{attachedContracts:l=>{const u=s({"content-type":"application/json"});return y(`https://${e}.myvtex.com/_v/store-front/units/${encodeURIComponent(l)}/contracts/attached?details=true`,{headers:u},{storeCookies:o})}},subscribeToNewsletter:l=>y(`${a}/api/dataentities/NL/documents/`,{...te,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 y(`${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 y(`${a}/api/oms/user/orders/${l}`,{method:"GET",headers:u},{storeCookies:o})},listUserOrders:({page:l,status:u,dateInitial:m,dateFinal:S,text:v,clientEmail:b,perPage:C,pendingMyApproval:T})=>{const A=new URLSearchParams;if(m){const P=new Date(m).setHours(0,0,0,0);m=new Date(P).toISOString()}if(S){const P=new Date(S).setHours(23,59,59,999);S=new Date(P).toISOString()}v&&A.append("text",v),u&&u.length>0&&A.append("status",u.filter(Boolean).join(",")),m&&S?A.append("creation_date",`creationDate:[${m} TO ${S}]`):m?A.append("creation_date",`creationDate:[${m} TO *]`):S&&A.append("creation_date",`creationDate:[* TO ${S}]`),b&&A.append("clientEmail",b),l&&A.append("page",l.toString()),C&&A.append("per_page",C.toString()),T&&A.append("my_pending_approvals",String(!0));const O=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/oms/user/orders?${A.toString()}`,{method:"GET",headers:O},{storeCookies:o})},getCommercialAuthorizationsByOrderId:({orderId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/${e}/commercial-authorizations/order/${l}`,{method:"GET",headers:u},{storeCookies:o})},processOrderAuthorization:async({orderAuthorizationId:l,dimensionId:u,ruleId:m,approved:S})=>{const v=s({"content-type":"application/json","X-FORWARDED-HOST":p}),T={params:{ruleId:m,dimensionId:u,score:S?100:0}};return y(`${a}/${e}/commercial-authorizations/${l}/callback`,{method:"POST",headers:v,body:JSON.stringify(T)},{storeCookies:o})}},savedCards:{listCreditCards:()=>{const l=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/saved-cards/credit-card?an=${e}`,{method:"GET",headers:l},{storeCookies:o})}},units:{getUnitByUserId:({userId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${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 y(`${a}/api/units/v1/${l}`,{method:"GET",headers:u},{})},getScopesByOrgUnit:({orgUnitId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${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 y(`${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 y(`${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 y(`${a}/api/license-manager/storefront/users/${l}/roles`,{method:"GET",headers:u},{})},isResourceGranted:({userId:l,resourceKey:u})=>{const m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${a}/api/license-manager/storefront/bff/users/${l}/resources/${u}/granted?an=${e}`,{method:"GET",headers:m},{})}},masterData:{getContractById:({contractId:l})=>{if(!l)throw new U("Missing contractId to fetch CL fields.");const u=I({Accept:"application/json","content-type":"application/json"});return y(`${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 y(`${a}/api/dataentities/shopper/search?_where=(userId=${m} OR userId=${l})&_fields=_all&_schema=v1`,{method:"GET",headers:u},{})}},quotes:{listUserQuotes:l=>{Rt(l);const u=Ft(l),m=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${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=B(Oe(i)??"",e);return y(`${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 S=s({"content-type":"application/json","X-FORWARDED-HOST":p}),v=`----FastStoreUploadBoundary${Date.now()}`,b=`\r
4
+ `,T=/^[a-zA-Z0-9][a-zA-Z0-9!#$&\-.^_]*\/[a-zA-Z0-9][a-zA-Z0-9!#$&\-.^_+]*$/.test(m)?m:"application/octet-stream",A=u.replaceAll(/[\r\n"]/g,"_"),O=[`--${v}`,`Content-Disposition: form-data; name="file"; filename="${A}"`,`Content-Type: ${T}`,"",""].join(b),P=`${b}--${v}--${b}`,D=Buffer.from(O),k=Buffer.from(P),E=new Uint8Array(D.byteLength+l.byteLength+k.byteLength);let _=0;return E.set(D,_),_+=D.byteLength,E.set(l,_),_+=l.byteLength,E.set(k,_),y(`${a}/api/order-entry/upload?an=${e}`,{method:"POST",headers:{...S,"content-type":`multipart/form-data; boundary=${v}`},body:E.buffer},{})},startOperation:({objectKey:l,orderFormId:u,sessionToken:m})=>{const S=s({"content-type":"application/json","X-FORWARDED-HOST":p}),v=JSON.stringify({objectKey:l,orderFormId:u,operation:"CreateCart",...m?{sessionToken:m}:{}});return y(`${a}/api/order-entry/operation?an=${e}`,{method:"POST",headers:S,body:v},{})},getOperation:({operationId:l})=>{const u=s({"content-type":"application/json","X-FORWARDED-HOST":p});return y(`${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 y(`${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 y(`${a}/api/checkout/pub/orderForm/${l}`,{method:"GET",headers:u},{})}},recommendation:{recommendations:({campaignVrn:l,userId:u,products:m=[],salesChannel:S,locale:v})=>{const b=new URLSearchParams({an:e,campaignVrn:l});return u&&b.append("userId",u),m.length>0&&b.append("products",m.join(",")),S&&b.append("salesChannel",S),v&&b.append("locale",v),y(`${f}/recommendations?${b.toString()}`,{headers:h},{storeCookies:o})},startRecommendationSession:()=>{const l=new URLSearchParams({an:e});return y(`${f}/users/start-session?${l.toString()}`,{method:"POST",headers:h},{storeCookies:o})}}}},ae=e=>e.discoveryConfig?.localization??{},K=e=>ae(e).enabled===!0,Lt=e=>Object.keys(ae(e).locales??{}),Bt=e=>ae(e).defaultLocale,_n=e=>K(e)&&e.storage.locale||void 0,Ce="fuzzy",be="operator",we="pickupPoint",ze="shipping",Me="delivery-options",$t="in-stock",zt="trade-policy",Mt="region-id",Vt=new Set([zt,Mt,Ce,be,we]),qt=new Set(["zip-code","pickupPoint","country","coordinates","deliveryZonesHash","pickupPointsHash"]),Ve=e=>encodeURI(decodeURI(e)),xt=e=>encodeURIComponent(decodeURIComponent(e).normalize("NFD").replaceAll(/[\u0300-\u036f]/g,"")),jt=/^pickup-in-point-(.+)$/;function Rn(e){if(!e)return{};try{const t=oe.parse(e).vtex_segment;if(!t)return{};const r=Buffer.from(t,"base64").toString("utf-8");return JSON.parse(r)}catch{return{}}}function Wt(e){const n={},t=[];for(const r of e.split(";")){const i=r.indexOf("=");if(i<0)continue;const a=r.slice(0,i),o=r.slice(i+1);!a||!o||(qt.has(a)?n[a]=o:t.push({key:a,value:o}))}return{shipping:n,extraFacets:t}}function Ht(e){const n=typeof e.facets=="string"?e.facets:"",{shipping:t,extraFacets:r}=Wt(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},extraFacets:r}}function Fn(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]];for(const[r,i]of t)i!=null&&i!==""&&e.append(r,String(i))}function Nn(e){return jt.exec(e)?.[1]}function Gt(e){const n=e.find(r=>r.key==="shipping"),t=n?Nn(n.value):void 0;if(t!==void 0)try{return decodeURIComponent(t)}catch{return t}}function Xt(e,n){const t=Gt(n);return t===void 0?e:{...e,pickupPoint:t}}function Yt(e){return e.map(n=>n.key!=="shipping"||Nn(n.value)===void 0?n:{...n,value:"pickup-in-point"})}function Jt(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")),Yt(t)}function Ln(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}${Ve(r)}/${xt(Ve(i)).replaceAll(/ |%20/g,"-")}/`},"")}const Kt=e=>e.key==="fuzzy"&&(e.value==="0"||e.value==="1"||e.value==="auto"),Qt=e=>e.key==="operator"&&(e.value==="and"||e.value==="or");function Zt(e,n){const{segmentParams:t,extraFacets:r}=Ht(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 er(e,n){const t=e.filter(({key:c})=>!Vt.has(c)),r=e.find(({key:c,value:d})=>c===ze&&d!=="all-delivery-methods")??null,i=e.find(({key:c,value:d})=>c===Me&&d!=="all-delivery-options")??null,a=[...t],o=a.some(({key:c})=>c===ze),s=a.some(({key:c})=>c===Me);return r!==null&&!o&&a.push(r),i!==null&&!s&&a.push(i),Jt(a,n)}function nr(e,n){const t=e.find(({key:a})=>a===Ce)??null,r=e.find(({key:a})=>a===be)??null,i=e.find(({key:a})=>a===we)??null;t&&Kt(t)&&n.append(Ce,t.value),r&&Qt(r)&&n.append(be,r.value),i&&n.append(we,i.value)}function qe(e,n,t,r){const{query:i="",page:a,count:o,sort:s,selectedFacets:c=[],showInvisibleItems:d,sponsoredCount:g,hideUnavailableItems:p,allowRedirect:f=!1}=e,h=new URLSearchParams;if(r.includePagination&&a!==void 0&&o!==void 0){const u=a*o,m=o===0?u:u+o-1;h.append("from",u.toString()),h.append("to",m.toString())}i&&h.append("query",i),r.includeSort&&s&&h.append("sort",s);const I=Xt(t.segmentParams,c);if(Fn(h,I??t.segmentParams),nr(c,h),d&&h.append("show-invisible-items","true"),n?.hideUnavailableItems!==void 0){const u=c.find(({key:S})=>S===$t),m=u?u.value:p?.toString()??n.hideUnavailableItems.toString();h.append("hideUnavailableItems",m)}n?.simulationBehavior!==void 0&&h.append("simulationBehavior",n.simulationBehavior.toString()),n?.showSponsored!==void 0&&h.append("showSponsored",n.showSponsored.toString()),g!==void 0&&h.append("sponsoredCount",g.toString()),f!==void 0&&h.append("allowRedirect",f.toString());const l=Ln(er(c,t.extraFacets));return{params:h,path:l}}function tr(e,n){const{field:t,value:r,hideUnavailableItems:i,showInvisibleItems:a}=e,o=new URLSearchParams({field:t??"",value:r??""});return Fn(o,n),i&&o.append("hideUnavailableItems","true"),a&&o.append("show-invisible-items","true"),o}function de(e){return(e??"").replaceAll(/[\s-]/g,"").toUpperCase()}function rr(e,n){const{segmentParams:t,extraFacets:r}=n,{postalCode:i,country:a,coordinates:o}=e,s=!!i,c=a||t.country,d=s&&de(i)===de(t["zip-code"])&&de(c)===de(t.country),g=s?i:t["zip-code"],p=s?c:t.country,f=d?t.coordinates:void 0,h=s?o??f:o||t.coordinates,I=!s||d,l=!!(t.deliveryZonesHash&&t.pickupPointHash);if((!g||!p)&&!!!h&&!(I&&l))throw new Error("Missing delivery location for pickup point availability. Provide postalCode and country, coordinates, or a segment with zip-code.");const m=new URLSearchParams,S=(v,b)=>{b!=null&&String(b)!==""&&m.append(v,String(b))};return S("sc",t.sc),S("locale",t.locale),S("country",p),S("zip-code",g),S("coordinates",h),I&&(S("deliveryZonesHash",t.deliveryZonesHash),S("pickupPointsHash",t.pickupPointHash)),{params:m,path:Ln(r)}}function j(e,n){return{path:e,params:n,toString(){const t=n.toString();return e?t?`${e}?${t}`:e:t?`?${t}`:""}}}function W(e){const{endpoint:n,segment:t,defaults:r,args:i={}}=e,a=Zt(t,r);switch(n){case"product-search":case"facets":{const{params:o,path:s}=qe(i,r,a,{includePagination:!0,includeSort:!0});return j(s,o)}case"catalog-count":{const{params:o,path:s}=qe(i,r,a,{includePagination:!1,includeSort:!1});return j(s,o)}case"products":{const o=tr(i,a.segmentParams);return j("",o)}case"search-suggestions":{const o=new URLSearchParams({query:i.query?.toString()??"",locale:r?.locale??a.segmentParams.locale??""});return j("",o)}case"top-searches":{const o=new URLSearchParams({locale:r?.locale??a.segmentParams.locale??""});return j("",o)}case"pickup-point-availability":{const{params:o,path:s}=rr(i,a);return j(s,o)}default:{const o=n;throw new Error(`Unknown intelligent-search endpoint: ${o}`)}}}const ir=10;function ar(e){const{regionId:n,seller:t}=e.storage.channel;return(t?Buffer.from(`SW#${t}`).toString("base64"):void 0)??(n||void 0)}function or(e){const t=Rn(e.headers?.cookie).cultureInfo||"";return K(e)?e.storage.locale||t:t||e.storage.locale||""}const sr=({account:e,environment:n,hideUnavailableItems:t,simulationBehavior:r,showSponsored:i,subDomainPrefix:a},o)=>{const s=`https://${e}.${n}.com.br`,c=Tn(o),d=Rn(o.headers?.cookie),g=()=>({salesChannel:o.storage.channel.salesChannel,regionId:ar(o),locale:or(o),hideUnavailableItems:t,simulationBehavior:r,showSponsored:i}),p=new Headers(o.headers).get("x-forwarded-host")??o.headers?.host??"",f=a&&a.map(O=>O+".").find(O=>p.includes(O))||"",h=p.replace(f,""),I=c({"content-type":"application/json","X-FORWARDED-HOST":h}),l=({type:O,...P})=>{const D=O==="facets"?"facets":"product-search",k=W({endpoint:D,segment:d,defaults:g(),args:P});return y(`${s}/api/intelligent-search/v1/${D}/${k.path}?${k.params.toString()}`,{headers:I})},u=O=>l({...O,type:"product_search"}),m=({field:O,value:P,hideUnavailableItems:D,showInvisibleItems:k})=>{const E=W({endpoint:"products",segment:d,defaults:g(),args:{field:O,value:P,hideUnavailableItems:D,showInvisibleItems:k}});return y(`${s}/api/intelligent-search/v1/products?${E.params.toString()}`,{headers:I})};return{facets:O=>l({...O,type:"facets"}),products:u,fetchProduct:m,productsByIdentifier:async({field:O,values:P,showInvisibleItems:D,hideUnavailableItems:k})=>{const E=_e(ir);return(await Promise.all(P.map(w=>E(async()=>{try{return await m({field:O,value:w,hideUnavailableItems:k,showInvisibleItems:D})}catch{return null}})))).filter(w=>w!==null)},suggestedTerms:O=>{const P=W({endpoint:"search-suggestions",segment:d,defaults:g(),args:{query:O.query}});return y(`${s}/api/intelligent-search/v1/search-suggestions?${P.params.toString()}`,{headers:I})},topSearches:()=>{const O=W({endpoint:"top-searches",segment:d,defaults:g()});return y(`${s}/api/intelligent-search/v1/top-searches?${O.params.toString()}`,{headers:I})},productCount:O=>{const P=W({endpoint:"catalog-count",segment:d,defaults:g(),args:O});return y(`${s}/api/intelligent-search/v1/catalog-count/${P.path}?${P.params.toString()}`,{headers:I})},pickupPointAvailability:({postalCode:O,country:P,coordinates:D})=>{const k=W({endpoint:"pickup-point-availability",segment:d,defaults:g(),args:{postalCode:O,country:P,coordinates:D}}),E=k.path?`/${k.path}`:"";return y(`${s}/api/intelligent-search/v1/pickup-point-availability${E}?${k.params.toString()}`,{headers:I})}}},cr=(e,n)=>{const t=sr(e,n),r=Nt(e,n),i=bt(e);return{search:t,commerce:r,catalog:i}},lr=20,dr=e=>e.entityType==="category",Ae=e=>e.entityType==="brand",xe=e=>e.entityType==="collection",ur=(e,n)=>{const t=_e(lr),r=async i=>Promise.all(i.map(a=>t(async()=>{const o=a.slug.toLowerCase(),s=a.locale,c=await n.commerce.catalog.byLinkId.category(o,s);if(c)return{...c,entityType:"category",slug:o};const d=await n.commerce.catalog.byLinkId.brand(o,s);if(d)return{...d,entityType:"brand"};const g=await n.commerce.catalog.byLinkId.collection(o,s);if(g)return{...g,entityType:"collection"};throw new $(`No catalog entity found for slug: ${a.slug}. Cascade exhausted (category → brand → collection).`)})));return new ye(r,{batch:!1,cacheKeyFn:({slug:i,locale:a})=>`${i.toLowerCase()}::${a??""}`})},pr=(e,n)=>{const t=async r=>Promise.all(r.map(i=>n.commerce.catalog.salesChannel(i)));return new ye(t)},gr=1,mr=(e,n)=>{const t=_e(gr),r=async a=>{const o=a.reduce((p,{items:f})=>[...p,f],[]),s=[...o.flat()],c=await n.commerce.checkout.simulation({country:a[0].country,postalCode:a[0].postalCode,items:s}),d=c.items.reduce((p,f)=>{const h=f.requestIndex;return typeof h=="number"&&h<p.length&&(p[h]=f),p},Array(s.length).fill(null)),g=o.reduce((p,f)=>[...p,f.length+p[p.length-1]],[0]);return o.map((p,f)=>({...c,items:d.slice(g[f],g[f+1]).filter(h=>!!h)}))},i=async a=>t(r,a);return new ye(i,{maxBatchSize:50})},hr=(e,n)=>ut(e,n);function fr(e){return{...e,description:e.description?hr(e.description):e.description}}const L=(e,n)=>({...e,isVariantOf:fr(n)}),Sr=({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 f of p.items)g[f.itemId]=L(f,p);return g},{}),c=i.map(g=>s[g]),d=i.filter(g=>!s[g]);if(d.length>0)throw new $(`Search API did not found the following skus: ${d.join(",")}`);return c};return new ye(t,{maxBatchSize:99})},yr=(e,n)=>{const{clients:t}=n,r=Sr(e,t),i=mr(e,t),a=ur(e,t),o=pr(e,t);return{skuLoader:r,simulationLoader:i,collectionLoader:a,salesChannelLoader:o}},V=e=>e.AvailableQuantity>0,Z=e=>e.spotPrice??0,Ir=e=>e.Price??0,je=e=>e?"https://schema.org/InStock":"https://schema.org/OutOfStock",Bn=(e,n)=>V(e)&&!V(n)?-1:!V(e)&&V(n)?1:Z(e)-Z(n),vr=e=>e==="available",X=(e,n=0,t=1)=>{const r=n/t;return Math.round((e+r)*100)/100},Or=(e,n={includeTaxes:!1})=>{const t=e.filter(V),r=t[t.length-1],i=r?Z(r):0;return n.includeTaxes?X(i,r?.Tax,r?.product?.unitMultiplier):i},We=(e,n={includeTaxes:!1})=>{const[t]=e.filter(V),r=t?Z(t):0;return n.includeTaxes?X(r,t?.Tax,t?.product?.unitMultiplier):r},Cr={highPrice:e=>Or(e),lowPrice:e=>We(e),lowPriceWithTaxes:e=>We(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},br={ratingValue:()=>5,reviewCount:()=>0},He="ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆÍÌÎÏŇÑÓÖÒÔÕØŘŔŠŤÚŮÜÙÛÝŸŽáäâàãåčçćďéěëèêẽĕȇíìîïňñóöòôõøðřŕšťúůüùûýÿžþÞĐđ߯a",wr="AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa",Ar=e=>{let n=e.slice(0);for(let t=0;t<He.length;t++)n=n.replace(new RegExp(He.charAt(t),"g"),wr.charAt(t));return n},Dr=e=>e.replace(/[·/_,:]/,"-");function he(e){const t=e.replace(/,/g,"").replace(/[*+~.()'"!:@&\[\]`/ %$#?{}><=_^]/g,"-");return Dr(Ar(t)).toLowerCase()}const ve=e=>e.toLowerCase(),ue=(e,n)=>{const t=n.split("/").filter(Boolean),{loaders:{collectionLoader:r}}=e;return Promise.all(t.map((i,a)=>r.load({slug:t.slice(0,a+1).join("/"),locale:_n(e)})))},H=e=>dr(e)?e.slug:Ae(e)?e.linkId:e.linkId??he(e.name),$n={id:({id:e})=>e.toString(),slug:e=>H(e),seo:e=>({title:e.title??e.name,description:e.metaTagDescription??e.description}),type:e=>Ae(e)?"Brand":xe(e)?"Collection":e.fatherCategoryId===null?"Department":"Category",meta:async(e,n,t)=>{const r=H(e);if(Ae(e))return{selectedFacets:[{key:"brand",value:r}]};if(xe(e))return{selectedFacets:[{key:"productclusterids",value:e.id}]};const{defaultLocale:i}=ae(t);return{selectedFacets:(await ue(t,r)).map((o,s)=>({key:`category-${s+1}`,value:i&&o.availableLinkIds?.[i]||o.linkId}))}},breadcrumbList:async(e,n,t)=>{const r=await ue(t,H(e));return{itemListElement:r.map((i,a)=>({item:`/${H(i)}`,name:i.name,position:a+1})),numberOfItems:r.length}},otherLocales:async(e,n,t)=>{const r=ae(t);if(!r.enabled)return null;const i=Object.keys(r.locales??{});if(i.length===0)return null;const a=H(e);if(a.split("/").filter(Boolean).length===0)return null;let o;try{o=await ue(t,a)}catch(s){return console.warn("[otherLocales] failed to load collection entities:",s),null}return i.map(s=>{const c=[];for(const d of o){const g=d.availableLinkIds?.[s];if(!g)return null;c.push(g)}return c.length>0?{locale:s,slug:ve(c.join("/"))}:null}).filter(s=>s!==null)},canonicalSlug:async(e,n,t)=>{const r=H(e);if(r.split("/").filter(Boolean).length===0)return null;let i;try{i=await ue(t,r)}catch(o){return console.warn("[canonicalSlug] failed to load collection entities:",o),null}const a=i.map(o=>o.linkId);return a.every(o=>!!o)?ve(a.join("/")):ve(r)}},zn={buy:"whoboughtalsobought",view:"whosawalsosaw",similars:"similars",viewAndBought:"whosawalsobought",accessories:"accessories",suggestions:"suggestions"},Ge=({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}}},Xe=e=>{const n=e.split(":").map(Number);return n.length!==2||Number.isNaN(n[0])||Number.isNaN(n[1])?null:n},Pr=e=>typeof zn[e]=="string",Er=e=>{const n=e?.filter(t=>Pr(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},kr=e=>e?.find(n=>n.key==="slug")?.value??null,Ur=e=>e?.find(n=>n.key==="id")?.value??null,Ye=e=>e?.find(n=>n.key==="locale")?.value??null,Je=e=>e?.find(n=>n.key==="channel")?.value??null,De=(e,n)=>{let t=0;for(let r=1;r<e.length;r++)n(e[t],e[r])>0&&(t=r);return e[t]},Tr={__resolveType:({type:e,values:n})=>e!=="TEXT"&&e!=="DELIVERY"?"StoreFacetRange":!n||n.length===0?"StoreFacetBoolean":n.every(t=>t.range)?"StoreFacetRange":"StoreFacetBoolean"},_r={key:({key:e})=>e,label:({name:e})=>e,values:({values:e})=>e.sort((n,t)=>n.name.localeCompare(t.name))},Rr={key:({key:e})=>e,label:({name:e})=>e,min:({values:e,key:n},t,{storage:{searchArgs:r}})=>{const i=Xe(r?.selectedFacets?.find(s=>s.key===n)?.value??""),o=De(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=Xe(r?.selectedFacets?.find(s=>s.key===n)?.value??""),o=De(e,(s,c)=>c.range.to-s.range.to)?.range?.to??0;return{selected:i?.[1]??o,absolute:o}}},Fr={value:({value:e})=>e,label:({name:e})=>e||"unknown",selected:({selected:e})=>e,quantity:({quantity:e})=>e},Nr=async(e,{data:n},{clients:{commerce:t}})=>{if(!n?.orderId)throw new U("Missing orderId");return{data:(await t.checkout.cancelOrder(n))?.data}};function Mn(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 Lr(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 Br=async(e,{data:n},{clients:{commerce:t}})=>{const r=await t.oms.processOrderAuthorization(n),i=Mn(r);return{isPendingForOtherAuthorizer:!i&&Lr(r),ruleForAuthorization:i}},$r=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})},zr=async(e,n,t)=>{if(!(await t.clients.commerce.recommendation.startRecommendationSession())?.recommendationsUserId)throw new Error("Failed to start recommendation session: no session data returned");return!0},Mr=async(e,{data:n},{clients:{commerce:t}})=>({id:(await t.subscribeToNewsletter(n))?.Id}),Vr=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 se{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)}}function qr(e,n){return n==null||n===""||String(n)===String(e.salesChannel??"")?null:se.stringify({...e,salesChannel:String(n),hasOnlyDefaultSalesChannel:!1})}function xr(e,n,t){return t!=null&&String(e.salesChannel??"")===t&&String(n??"")!==t?!1:e.items.length>0?!0:e.salesChannel==null||e.salesChannel===""?!1:String(e.salesChannel)===String(n??"")}const Vn=e=>{try{return JSON.parse(e??"")??{}}catch{return{}}};function qn(e,{localizationEnabled:n=!0}={}){const t=Vn(e).salesChannelSource;return t==="url"?n?t:void 0:t==="orderForm"?t:void 0}const xn=e=>!!e?.localization?.enabled;function jn(e){const n=Vn(e).rejectedSalesChannel;return(typeof n=="string"||typeof n=="number")&&String(n)||void 0}function jr(e,n,t,r,i,a){const o=n??void 0,s=t??e.regionId,c=i?e.salesChannel||o:o??e.salesChannel,d=a!=null&&a!==String(c??"");return se.stringify({salesChannel:c,regionId:s??void 0,seller:r,hasOnlyDefaultSalesChannel:!o,...i?{salesChannelSource:i}:{},...d?{rejectedSalesChannel:a}:{}})}const Ke="1";function Wr(e,n,t,r){const i=String(e.salesChannel??"");return n===void 0&&i===Ke&&!!t&&t!==Ke&&!new URLSearchParams(r).has("sc")?t:i}const ie=(e,n)=>{e.storage.channel=se.parse(n)},Pe=(e,n)=>{e.storage.locale=n},Fe=e=>pt.createHash("md5").update(e).digest("hex"),x={attachment:"ATTACHMENT",specification:"SPECIFICATION",attribute:"ATTRIBUTE",service:"SERVICE"};function Wn(e){return{name:e.name,value:e.content,valueReference:x.attachment}}function Hr(e){return{propertyID:e.id,name:e.name,value:e.value,valueReference:{valueReference:x.attribute,visible:e.visible}}}function Hn(e){return Fe(`${e.name}:${JSON.stringify(e.value)}:${e.valueReference}`)}const Gn=(e,n)=>e<n?-1:e>n?1:0,Gr=(e,n)=>Gn(e.name,n.name),Xr=e=>[...e??[]].sort(Gr),Qe=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Yr=e=>Qe(e)&&typeof e.name=="string"&&Qe(e.content),Jr=e=>({name:e.name,content:Object.fromEntries(Object.keys(e.content).sort(Gn).map(n=>[n,e.content[n]]))}),Xn=(e,n)=>Fe(`SERVICE:${e}:${JSON.stringify(Xr((n??[]).filter(Yr)).map(Jr))}`),Kr="SERVICE:unreadable";function Ne(e){const n=e.attachments??[];return{propertyID:Xn(e.id,n),name:e.name,value:{id:e.id,price:e.sellingPrice/100,attachments:n},valueReference:x.service}}const Qr=e=>{try{return JSON.parse(e)}catch{return null}},Zr=e=>{const n=typeof e=="string"?Qr(e):e;if(n===null||typeof n!="object")return null;const{id:t,attachments:r}=n;return typeof t!="string"&&typeof t!="number"?null:{id:String(t),attachments:r}};function ei(e){const n=Zr(e.value);return n?Xn(n.id,Array.isArray(n.attachments)?n.attachments:[]):Kr}const ni=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]},ti=(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},Yn=(e,n)=>{if(!ri(n))return{updateShipping:!1,addressChanged:!1};if(!si(e))return{updateShipping:!1,addressChanged:!1};const[t]=e?.shippingData?.selectedAddresses??[];if(ii(t,n.postalCode)||ai(t,n.geoCoordinates)||oi(t,n.addressType))return{updateShipping:!0,addressChanged:!0};const{logisticsInfo:r}=e.shippingData;return ci(r,n)?{updateShipping:!0,addressChanged:!1}:{updateShipping:!1,addressChanged:!1}},ri=e=>!!e.postalCode||e.geoCoordinates?.latitude&&e.geoCoordinates?.longitude,ii=(e,n)=>typeof n=="string"&&e?.postalCode!==n,ai=(e,n)=>typeof n?.latitude=="number"&&typeof n?.longitude=="number"&&(e?.geoCoordinates[0]!==n?.longitude||e?.geoCoordinates[1]!==n?.latitude),oi=(e,n)=>typeof n=="string"&&e?.addressType!==n,si=e=>e.items.length!==0,ci=(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(f=>f?.startDateUtc===i&&f?.endDateUtc===a))})},Jn=e=>e.valueReference===x.attachment,li=e=>e.valueReference===x.service,di=e=>(e.itemOffered.additionalProperty??[]).filter(li).map(ei).sort((n,t)=>n.localeCompare(t)),Kn=e=>{const n=di(e);return n.length>0?`services:${n.join("-")}`:void 0},Ee=e=>[e.itemOffered.sku,e.seller.identifier,e.price<.01?"Gift":void 0,e.itemOffered.additionalProperty?.filter(Jn).map(Hn).join("-"),Kn(e)].filter(Boolean).join("::"),fe=(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(Wn),...(e.bundleItems??[]).map(Ne)]},index:n}),ui=e=>({quantity:e.quantity,seller:e.seller.identifier,id:e.itemOffered.sku,index:e.index,attachments:(e.itemOffered.additionalProperty?.filter(Jn)??[]).map(n=>({name:n.name,content:n.value})),...e.priceToken?{priceToken:e.priceToken}:{}}),Ze=e=>e.reduce((n,t)=>{const r=Ee(t);return n.has(r)||n.set(r,[]),n.get(r)?.push(t),n},new Map),pi=(e,n)=>{const t=({priceToken:s,...c},d)=>({...c,itemOffered:{sku:c.itemOffered.sku},services:Kn(c),index:d}),r=n.items.map(fe).map(t),i=e.acceptedOffer.map(t),a=e.orderNumber===n.orderFormId,o=Re(r,i);return a&&o};function Qn(e,n){return e?.some(t=>t.parentItemIndex!==null&&t.parentItemIndex!==void 0&&e[t.parentItemIndex]?.id===n)}function Zn(e,n){return e?.some(t=>t.id===n&&t.parentItemIndex!==null)}const en=e=>{const n=e.items.reduce((t,r,i)=>{const a=Zn(e.items,r.id)||Qn(e.items,r.id)?`${Ee(fe(r))}::${i}`:Ee(fe(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}})}},ke=async(e,n,t,r)=>({order:{orderNumber:e.orderFormId,acceptedOffer:e.items.map(async i=>({...i,product:await n.load(`${i.id}-invisibleItems`)})),shouldSplitItem:t,...r?{salesChannel:r}:{}},messages:e.messages.map(({text:i,status:a})=>({text:i,status:a.toUpperCase()}))}),et=({items:e},n)=>{const t=e.map(r=>{const i=(r.bundleItems??[]).map(Ne).map(({propertyID:a})=>a).sort((a,o)=>a.localeCompare(o));return{id:r.id,quantity:r.quantity,seller:r.seller,attachments:r.attachments,...i.length>0?{services:i}:{}}});return Fe(JSON.stringify({sessionId:n?.id??"",items:t}))},nn=async(e,n,t)=>{try{return await n.checkout.setCustomData({id:e.orderFormId,appId:"faststore",key:"cartEtag",value:et(e,t)})}catch(r){throw console.error(`Error while setting custom data to orderForm.
5
5
  Make sure to add the following custom app to the orderForm:
6
6
  {"fields":["cartEtag"],"id":"faststore","major":1}.
7
- More info at: https://developers.vtex.com/vtex-rest-api/docs/customizable-fields-with-checkout-api`),r}},ui=(e,n)=>{const r=e.customData?.customApps.find(a=>a.id==="faststore")?.fields?.cartEtag;return r==null?!0:Qn(e,n)!==r},pi=async(e,{clients:{commerce:n}})=>n.checkout.clearOrderFormMessages({id:e}),nn=async(e,n,{clients:{commerce:t}})=>{if(!n)return e;const{updateShipping:r,addressChanged:i}=Hn(e,n);if(r){const a=ei(e,n,i),s=a||Zr(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},gi=(e,n)=>{if(!e)return"";const r=ae.parse(e)[n];return r?r.split("=")[1]:""},mi=async(e,n,t,r)=>{const{commerce:i}=e.clients,a=await i.checkout.orderForm({id:n,channel:e.storage.channel,preserveSalesChannel:!!n&&!t});return!n||Vr(a,e.storage.channel.salesChannel,r)?a:i.checkout.orderForm({id:n,channel:e.storage.channel})},tn=(e,n,t)=>{if(!t||n.items.length===0)return null;const r=zr(e.storage.channel,n.salesChannel);return r?(me(e,r),n.salesChannel?String(n.salesChannel):null):null},rn=(e,n,t,r)=>r?Ee(e,n,t,r):null,hi=async(e,{cart:{order:n},session:t},r)=>{const i=gi(r.headers.cookie,"checkout.vtex.com"),{clients:{commerce:a},loaders:{skuLoader:o}}=r,s=t?.channel,c=t?.locale,d=zn(s,{localizationEnabled:Vn(r.discoveryConfig)})==="url",g=qn(s);s&&me(r,s),c&&De(r,c);const p=await mi(r,i||void 0,d,g),f=p.orderFormId;p.messages.length!==0&&await pi(f,r);const h=ae.parse(r?.headers?.cookie??"")?.vtex_session,v=W(h),{acceptedOffer:l,shouldSplitItem:u}=n;if(ui(p,v)){const A=tn(r,p,!d),N=await en(p,a,v).then(Ze);if(f)return Ee(N,o,u,A)}const S=tn(r,p,!d),O=Qe(l),b=Qe(p.items.map(he)),C=Array.from(b.entries()),T=Array.from(O.entries()),{itemsToAdd:I,itemsToUpdate:w}=T.reduce((A,[N,Q])=>{const se=b.get(N);if(!se)return Q.forEach(Z=>A.itemsToAdd.push(Z)),A;const[M,...ce]=se;if(Kn(p.items,M.itemOffered.sku)||Jn(p.items,M.itemOffered.sku))return A.itemsToUpdate.push(M),A;const ot=Q.reduce((Z,st)=>Z+st.quantity,0);return A.itemsToUpdate.push({...M,quantity:ot}),ce.forEach(Z=>A.itemsToUpdate.push({...Z,quantity:0})),A},{itemsToAdd:[],itemsToUpdate:[]}),k=C.filter(([A])=>!O.has(A)).flatMap(([,A])=>A.map(N=>({...N,quantity:0}))),D=[...I,...w,...k].map(li),{updateShipping:_}=t?Hn(p,t):{updateShipping:!1};if(D.length===0&&!_)return rn(p,o,u,S);let P;D.length>0?P=await a.checkout.updateOrderFormItems({id:p.orderFormId,orderItems:D,shouldSplitItem:u}).then(A=>nn(A,t,r)):P=await nn(p,t,r),P=await Promise.resolve(P).then(A=>{if(t?.marketingData){const N={...A.marketingData,...t.marketingData};return a.checkout.marketingData({id:p.orderFormId,marketingData:N})}return A}).then(A=>c&&A.clientPreferencesData?.locale!==c?a.checkout.clientPreferencesData({id:A.orderFormId,clientPreferencesData:{...A.clientPreferencesData,locale:c}}):A).then(A=>en(A,a,v)).then(Ze);const U=_e(p.messages,P.messages);return di(n,P)&&U?rn(P,o,u,S):Ee(P,o,u,S)},fi=e=>{const n=(e?.corporateName??"").trim();return n||(e?.firstName??"").trim()},Si=e=>{if(!e||typeof e!="object")return!1;const n=e;return typeof n.customerId=="string"&&n.customerId.trim()!==""&&typeof n.contractName=="string"&&typeof n.isActive=="boolean"&&typeof n.isCurrent=="boolean"},yi=e=>{const n=e?.availableContracts?.value;return Array.isArray(n)?n.filter(Si):[]},Ii=e=>e?.customerId?!!((e.contractName??"").trim()&&e.isActive):!1,an=e=>e?.namespaces?.shopper?.activeContractId?.value?.trim()??e?.namespaces?.authentication?.customerId?.value?.trim()??e?.namespaces?.profile?.id?.value?.trim()??"",vi=e=>{if(!Array.isArray(e)||e.length===0)return"";const n=e.find(t=>t?.isDefault===!0)??e[0];return String(n?.id??"").trim()},Oi=(e,n="",t="")=>{const r=n.trim(),i=t.trim();return e.filter(Ii).map(a=>({id:a.customerId,corporateName:a.contractName.trim(),isActive:r?a.customerId===r:a.isCurrent,isDefault:i!==""&&a.customerId===i}))},Zn=(e,n)=>{const t=fi(e);return t||(n?.firstName?.value??"").trim()};async function Ci(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}).
8
- `),r}}function bi(e,n,t,r,i,a){const o=new URLSearchParams(e);return o.has("facets")&&o.delete("facets"),o.set("sc",o.get("sc")??n.salesChannel),t&&o.set("postalCode",t),r&&o.set("country",r),i&&o.set("geoCoordinates",`${i.longitude},${i.latitude}`),o.set("locale",a),o}function wi(e,n){return{utmCampaign:e.get("utm_campaign")??n?.utmCampaign??"",utmMedium:e.get("utm_medium")??n?.utmMedium??"",utmSource:e.get("utm_source")??n?.utmSource??"",utmiCampaign:e.get("utmi_cp")??n?.utmiCampaign??"",utmiPage:e.get("utmi_p")??n?.utmiPage??"",utmiPart:e.get("utmi_pc")??n?.utmiPart??""}}async function Ai(e,n,t){const r=W(B(n??"",t));let i=!1;if(r)try{i=(await e.commerce.vtexid.validate())?.authStatus?.toLowerCase()==="success"}catch(a){console.warn("JWT validation failed:",a),i=!1}return{isRepresentative:i?!!r?.isRepresentative:!1,customerId:i?r?.customerId:void 0,unitId:i?r?.unitId:void 0}}async function Di(e,n,t,r,i,a){return!n.seller||!(t||r)?void 0:(await e.commerce.checkout.region({postalCode:t,geoCoordinates:r,country:i,salesChannel:a}))?.[0]?.sellers.find(c=>n.seller===c.id)?.id}function on(e){return typeof e?.value=="string"?e.value:""}function Pi(e){if(!e.isRepresentative)return null;const n=on(e.shopper?.firstName),t=on(e.shopper?.lastName);return{isRepresentative:!0,customerId:e.authentication?.customerId?.value??e.customerId??"",unitName:e.authentication?.unitName?.value??"",unitId:e.authentication?.unitId?.value??e.unitId??"",firstName:n,lastName:t,userName:`${n} ${t}`.trim(),userEmail:e.authentication?.storeUserEmail?.value??"",savedPostalCode:e.publicData?.postalCode?.value??"",contractName:Zn(e.contract,e.profile),organizationManager:e.shopper?.organizationManager?.value??!1}}function Ei(e){return e?.id?{id:e.id?.value??"",email:e.email?.value??"",givenName:e.firstName?.value??"",familyName:e.lastName?.value??""}:null}const ki=e=>e instanceof q&&(e.extensions.status===401||e.extensions.status===403),Ti=e=>e instanceof Error&&/sales\s*channel/i.test(e.message),Ui=(e,n,t,r)=>{if(n!=="orderForm"||t!==r)return!1;if(Ti(e))return!0;const i=`[validateSession] Session Manager rejected adopted sales channel ${t} with an unrecognized error; keeping the adoption.`,a=e instanceof Error?e.message:e;return console.warn(i,a),Pn("warn","%s %o",i,a),!1},_i=async(e,n,t,r)=>{const i={salesChannelSource:t,rejectedSalesChannel:void 0};try{return{...i,sessionData:await e.commerce.session(n.toString())}}catch(a){if(t==="url"||!ki(a))return{...i,sessionData:null};const o=n.get("sc")??void 0,s=Ui(a,t,o,r);n.delete("sc");const c=await e.commerce.session(n.toString()).catch(()=>null);return!c||!s?{...i,sessionData:c}:{sessionData:c,salesChannelSource:void 0,rejectedSalesChannel:o}}},Ri=async(e,{session:n,search:t},{clients:r,headers:i,account:a,storage:o,discoveryConfig:s})=>{const c=oe.parse(n.channel??""),d=zn(n.channel,{localizationEnabled:Vn(s)}),g={...c,salesChannel:xr(c,d,o?.channel?.salesChannel?String(o.channel.salesChannel):void 0,t)},p=String(n.postalCode??""),f=n.country??"";let h=n.city??null,v=n.geoCoordinates??null;if((!h||!v)&&p!==""&&f!==""){const ce=await Ci(r,f,p);h=ce.city,v=ce.geoCoordinates}const u=bi(t,g,p,f,v,n.locale),m=wi(u,n.marketingData),{isRepresentative:S,customerId:O,unitId:b}=await Ai(r,i?.cookie,a),{sessionData:C,salesChannelSource:T,rejectedSalesChannel:I}=await _i(r,u,d,String(g.salesChannel??"")),w=C?.namespaces.profile??null,k=C?.namespaces.shopper??null,D=C?.namespaces.store??null,_=C?.namespaces.authentication??null,P=C?.namespaces.checkout??null,U=C?.namespaces.public??null;let A=null;if(S&&w?.id?.value)try{A=await r.commerce.masterData.getContractById({contractId:w.id.value})}catch{console.error(`Error while getting contract data for profile ID (${w.id.value}).
9
- `)}const N=await Di(r,g,p,v,f,u.get("sc")??D?.channel?.value??g.salesChannel),Q=Ei(w),se=(n.person?.id??null)===(Q?.id??null)?qn(n.channel):void 0,M={...n,currency:{code:D?.currencyCode?.value??n.currency.code,symbol:D?.currencySymbol?.value??n.currency.symbol},country:D?.countryCode?.value??f,channel:qr(g,D?.channel?.value,P?.regionId?.value,N,T,I??se),b2b:Pi({isRepresentative:S,authentication:_,shopper:k,publicData:U,profile:w,contract:A,customerId:O,unitId:b}),marketingData:m,person:Q,geoCoordinates:v?.latitude&&v?.longitude&&v||null,city:h};return _e(n,M)?null:M},Fi={validateCart:hi,validateSession:Ri,subscribeToNewsletter:$r,cancelOrder:Rr,processOrderAuthorization:Nr,uploadFileToOrderEntry:Mr,startOrderEntryOperation:Lr,startRecommendationSession:Br};var ke;(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"})(ke||(ke={}));const Ni=e=>typeof e=="string"?et(e):null;function et(e){try{return JSON.parse(e)}catch{return e}}const Li=e=>typeof e=="object"?JSON.stringify(e):typeof e=="string"?e:null,Bi=new pe.GraphQLScalarType({name:"ObjectOrString",description:"A string or the string representation of an object (a stringified object).",parseValue:Ni,serialize:Li,parseLiteral(e){return e.kind===ke.STRING?et(e.value):null}}),R=e=>"Price"in e&&"seller"in e&&"product"in e,F=e=>"skuName"in e,$i={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)?xe(V(e)):F(e)?xe(yr(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)?K(e):F(e)?e.sellingPrice/100:null,priceWithTaxes:e=>R(e)?G(K(e),e?.Tax,e.product.unitMultiplier):F(e)?G(e.sellingPrice/100,e.tax/100,e.unitMultiplier):null,sellingPrice:e=>R(e)?Sr(e):F(e)?e.sellingPrice/100:null,listPrice:e=>R(e)?e.ListPrice??0:F(e)?e.listPrice/100:null,listPriceWithTaxes:e=>R(e)?G(e.ListPrice??0,e?.Tax,e.product.unitMultiplier):F(e)?G(e.listPrice/100,e.tax/100,e.unitMultiplier):null,itemOffered:e=>R(e)?e.product:F(e)?{...e.product,attachmentsValues:e.attachments,servicesValues:e.bundleItems??[]}:null,quantity:e=>R(e)?e.AvailableQuantity??0:F(e)?e.quantity:null,isGift:e=>F(e)?e.isGift??!1:null,priceToken:e=>R(e)?e.PriceToken??null:null},Mi=({linkText:e})=>`/${e}/p`,zi=({offer:e,seller:n,product:t})=>({...e,product:t,seller:n}),Vi={imageText:"image",imageUrl:"https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg",imageLabel:"label"},de=(e,n)=>`${e}-${n}`,sn=(e,n)=>`/${de(e,n)}/p`,qi=e=>Array.isArray(e)&&e.length>0?e:null;function Te(e){return e.replace(/^\/+|\/+$/g,"")}async function ue(e,n,t){const r=`${n}:${t}`;e.storage.productTranslationsCache??=new Map;const i=e.storage.productTranslationsCache,a=i.get(r);if(a)return a;const o=(async()=>{try{const s=await e.clients.catalog.getLocalizedProduct(n,t);return{linkId:s.linkId,categories:s.categories??[],availableLinkIds:s.availableLinkIds??{}}}catch(s){return console.warn(`[getLocalizedProductEntry] failed to load product ${n} for locale ${t}:`,s),null}})();return i.set(r,o),o}const xi=(e,n)=>{const t=e.findIndex(r=>Te(r).split("/").at(-1)===n);return t<0?0:t},ji={productID:({itemId:e})=>e,name:({isVariantOf:e,name:n})=>n??e.productName,slug:({isVariantOf:{linkText:e},itemId:n})=>de(e,n),description:({isVariantOf:{description:e}})=>e,seo:({isVariantOf:e})=>({title:e.productTitle||e.productName,description:e.metaTagDescription||e.description,canonical:Mi(e)}),brand:({isVariantOf:{brand:e}})=>({name:e}),unitMultiplier:({unitMultiplier:e})=>e,breadcrumbList:async(e,n,t)=>{const{isVariantOf:{categories:r,productName:i,linkText:a,categoryId:o,categoriesIds:s,productId:c},itemId:d}=e,g=xi(s,o),p=r[g],f=Te(p).split("/"),h=t.storage.locale;if(Y(t)&&h){const v=await ue(t,c,h);if(v){const l=new Set(Te(s[g]).split("/").filter(Boolean)),u=v.categories.filter(S=>l.has(S.id.toString())).sort((S,O)=>S.fullPath.split("/").length-O.fullPath.split("/").length);if(u.length===f.length)return{itemListElement:[...u.map((S,O)=>({name:S.name,item:`/${S.fullPathUriName}/`,position:O+1})),{name:i,item:sn(v.linkId,d),position:f.length+1}],numberOfItems:f.length}}}return{itemListElement:[...f.map((v,l)=>{const u=`/${f.slice(0,l+1).map(ge).join("/")}/`;return{name:v,item:u,position:l+1}}),{name:i,item:sn(a,d),position:f.length+1}],numberOfItems:f.length}},image:({images:e},n)=>{const t=(qi(e)??[Vi]).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=>zi({offer:n.commertialOffer,seller:n,product:e})).sort(Nn),isVariantOf:e=>e,additionalProperty:({variations:e=[],attachmentsValues:n=[],attributes:t=[],servicesValues:r=[]})=>{const i=e.flatMap(({name:c,values:d})=>d.map(g=>({name:c,value:g,valueReference:x.specification}))),a=n.map(xn),o=t.map(jr),s=r.map(Fe);return[...i,...a,...o,...s]},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,otherLocales:async(e,n,t)=>{if(!Y(t))return null;const r=Ft(t);if(r.length===0)return null;const i=e.isVariantOf.productId,a=e.itemId,o=t.storage.locale,s=await ue(t,i,o);if(!s?.availableLinkIds)return null;const{availableLinkIds:c}=s;return r.map(d=>{const g=c[d];return g?{locale:d,slug:de(g,a)}:null}).filter(d=>d!==null)},defaultLocaleSlug:async(e,n,t)=>{if(!Y(t))return null;const r=Nt(t);if(!r)return null;const{productId:i,linkText:a}=e.isVariantOf,o=e.itemId,c=(await ue(t,i,t.storage.locale))?.availableLinkIds?.[r]??a;return de(c,o)}},Wi=new Set(["allSpecifications"]),Gi={hasVariant:e=>e.isVariantOf.items.map(n=>L(n,e.isVariantOf)),productGroupID:({isVariantOf:e})=>e.productId,productClusters:({isVariantOf:e})=>e.productClusters??[],name:e=>e.isVariantOf.productName,skuVariants:e=>e,additionalProperty:({isVariantOf:{specificationGroups:e}})=>e.filter(n=>!Wi.has(n.name)).flatMap(({specifications:n})=>n.flatMap(({name:t,values:r})=>r.map(i=>({name:t,value:i,valueReference:x.specification}))))},Hi={propertyID:e=>e.propertyID||jn(e),name:({name:e})=>e,value:({value:e})=>e,valueReference:({valueReference:e})=>e},fe=e=>{const n=e.flatMap(r=>r.sellers.map(i=>({offer:i.commertialOffer,sku:r}))),t=Ae(n,({offer:r},{offer:i})=>Nn(r,i));return t?t.sku:e[0]},nt=e=>e!==""&&!Number.isNaN(Number(e)),Xi=/^vrn:recommendations:[^:]+:[^:]+:[^:]+$/,Yi=async(e,{campaignVrn:n,userId:t,products:r},i)=>{const{clients:{commerce:a}}=i,{salesChannel:o}=i.storage.channel,s=n?.trim();if(!s||!Xi.test(s))throw new E(`Invalid campaignVrn: "${n}"`);const c=t?.trim();if(t!=null&&!c)throw new E("Invalid userId: must be a non-empty string");if(r!=null&&(!Array.isArray(r)||r.some(h=>!h?.trim())))throw new E("Invalid products: must be an array of non-empty strings");const d=await a.recommendation.recommendations({campaignVrn:s,userId:c||void 0,products:r??[],salesChannel:o??void 0,locale:i.storage.locale}),{campaign:g,correlationId:p}=d;return{products:(d.products??[]).map(h=>{const v=fe(h.items);return v?L(v,h):null}).filter(h=>!!h),correlationId:p,campaign:g}},cn={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:""};function Ji(e,n){let t;if(Object.hasOwn(n,e)?t=n[e]:Object.hasOwn(cn,e)&&(t=cn[e]),t===void 0)throw new E(`Unknown sort value: ${e}`);return t}const Ki=async(e,{operationId:n},{clients:{commerce:t}})=>{if(!n)throw new E("Missing operationId");return t.orderEntry.getOperation({operationId:n})},Qi=async(e,{orderFormId:n},{clients:{commerce:t}})=>{if(!n)throw new E("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}))};async function Zi(e,n,t,r){const i=n.slice(0,n.lastIndexOf("-"));return(await ue(e,t,r))?.linkId===i}const tt="Invalid SkuId",rt="Slug was set but the fetched sku does not satisfy the slug condition.",ea="UseAdHocCard",na=e=>X(e)||e instanceof Error&&(e.message===tt||e.message.startsWith(rt));async function ta(e,n,t,r){const{linkText:i,productId:a}=n.isVariantOf;if(!(!t||!i||t.startsWith(i)||Y(e)&&r&&nt(t.split("-").pop()??"")&&await Zi(e,t,a,r)))throw new Error(`${rt} slug: ${t}, linkText: ${i}`)}async function ra(e,n){if(n==null)throw new E("Missing slug or id");const{clients:{commerce:t,search:r}}=e,i=await t.catalog.portal.pagetype(`${n}/p`);if(i.pageType!=="Product"||!i.id)throw new $(`No product found for slug ${n}`);const a=await r.fetchProduct({field:"id",value:String(i.id)}).catch(()=>null);if(!a)throw new $(`No product found for id ${i.id}`);return L(fe(a.items),a)}const ia={product:async(e,{locator:n},t)=>{const r=Ye(n),i=Xe(n),a=Er(n),o=Pr(n);r&&me(t,r),i&&De(t,i);const{loaders:{skuLoader:s}}=t;try{const c=a??o?.split("-").pop()??"";if(!nt(c))throw new Error(tt);const d=await s.load(c);return await ta(t,d,o,i),d}catch(c){if(!na(c))throw c;return ra(t,o)}},collection:(e,{slug:n},t)=>{const{loaders:{collectionLoader:r}}=t;return r.load({slug:n,locale:Un(t)})},search:async(e,{first:n,after:t,sort:r,term:i,selectedFacets:a,sponsoredCount:o},s)=>{const c=Ye(a),d=Xe(a),g=Dr(a);c&&me(s,c),d&&De(s,d);const p=t?Number(t):0,f={page:Math.ceil(p/n)||0,count:n,query:i??void 0,sort:Ji(r??"score_desc",s.storage.customSortMap),selectedFacets:a?.flatMap(Ge)??[],sponsoredCount:o??void 0};if(g){const l=(await s.clients.commerce.catalog.products.crossselling({type:Bn[g.key],productId:g.value})).map(m=>m.productId).slice(0,n),u=s.clients.search.productsByIdentifier({field:"id",values:l}).then(m=>({products:m,recordsFiltered:m.length,pagination:{count:m.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:f,productSearchPromise:u}}const h=s.clients.search.products(f);return{searchArgs:f,productSearchPromise:h}},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=>L(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=>L(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=(h,v)=>{c.push({id:h.id,name:h.name,fatherCategoryId:v,linkId:ge(h.name),title:h.Title,description:null,metaTagDescription:h.MetaTagDescription,availableLinkIds:null,entityType:"category",slug:new URL(h.url).pathname.slice(1).toLowerCase()});for(const l of h.children)d(l,h.id)};for(const h of s)d(h,null);const f=[...o.filter(h=>h.isActive).map(h=>({id:h.id,name:h.name,linkId:ge(h.name),title:h.title,description:null,metaTagDescription:h.metaTagDescription,availableLinkIds:null,entityType:"brand"})),...c].filter(h=>!!Ln.slug(h,null,r,null));return{pageInfo:{hasNextPage:f.length-a>n,hasPreviousPage:a>0,startCursor:"0",endCursor:(Math.min(n,f.length-a)-1).toString(),totalCount:f.length},edges:f.slice(a,a+n).map((h,v)=>({node:h,cursor:(a+v).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(Ge)??[],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 E("Missing orderId");const{clients:{commerce:r}}=t,i=await r.oms.userOrder({orderId:n});if(!i)throw new $(`No order found for id ${n}`);let a=null;try{const c=await r.oms.getCommercialAuthorizationsByOrderId({orderId:n});a=$n(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 X(r)?new $(`No order found for id ${n}. ${o}.`):En(r)?new J(`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}},listCreditCards:async(e,n,t)=>{const{clients:{commerce:r}}=t;return{list:(await r.savedCards.listCreditCards())?.map(a=>({accountId:a.accountId,bin:a.bin,cardNumber:a.cardNumber,cardLabel:a.cardLabel,paymentSystem:a.paymentSystem,paymentSystemName:a.paymentSystemName,isDefault:a.isDefault,isActive:a.isActive,origin:a.origin}))}},hasAdHocCardAccess:async(e,n,t)=>{const{account:r,headers:i,clients:{commerce:a}}=t,s=W(B(i?.cookie??"",r))?.userId??"";if(!s)return!0;const c=await a.licenseManager.isResourceGranted({userId:s,resourceKey:ea}).catch(()=>null);return typeof c=="boolean"?c:!0},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=W(B(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],f=c?.namespaces.authentication??null,h=`${(p?.firstName??"").trim()} ${(p?.lastName??"").trim()}`.trim();return{username:f?.storeUserEmail?.value??"",name:h,email:f?.storeUserEmail?.value??"",phone:p?.phone??"",role:g?.Roles?.map(v=>v.Name)??[],orgUnit:f?.unitName?.value??""}},accountProfile:async(e,n,t)=>{const{account:r,headers:i,clients:{commerce:a}}=t,o=W(B(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,g=c.namespaces.shopper??null,p=c.namespaces.authentication??null,f=an(c)||o?.customerId?.trim()||"";let h=null;if(f)try{h=await a.masterData.getContractById({contractId:f})}catch(u){console.error(`Error while getting contract data for contract ID (${f}).`,u)}const v=`${(g?.firstName?.value??"").trim()} ${(g?.lastName?.value??"").trim()}`.trim();return{name:Zn(h,d)||v||"",email:d?.email?.value||p?.storeUserEmail?.value||"",id:d?.id?.value||p?.customerId?.value||o?.customerId?.trim()||""}}const s=await a.licenseManager.getUserById({userId:o?.userId}).catch(()=>null);return{name:s?.name||"",email:s?.email||"",id:s?.id||""}},availableContracts:async(e,{orgUnitId:n},t)=>{if(!n)throw new E("Missing orgUnitId");const{account:r,headers:i,clients:{commerce:a}}=t,o=await a.session("").catch(()=>null),s=B(i?.cookie??"",r);let c=null;try{c=s?W(s):null}catch{c=null}const d=o?.namespaces.authentication?.unitId?.value?.trim()??c?.unitId?.trim()??"";if(!d||d!==n)throw new J("You are not allowed to list contracts for this organization unit");const g=yi(o?.namespaces.shopper),p=an(o)||c?.customerId?.trim()||"",f=await a.storeFront.attachedContracts(n).catch(v=>(console.warn("availableContracts: default contract lookup failed",v),null)),h=vi(f?.contracts);return Oi(g,p,h)},pickupPoints:async(e,{geoCoordinates:n},t)=>{const{clients:{commerce:r}}=t;return await r.checkout.pickupPoints({geoCoordinates:n})},orderEntryOperation:Ki,orderFormItems:Qi,recommendations:Yi},aa={reviewRating:()=>({ratingValue:5,bestRating:5}),author:()=>({name:""})},oa=(e,n,t)=>n?e.key==="category-1":t?e.key==="brand":!1,sa={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=fe(g.items);return p&&L(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=fe(r.items);return i&&L(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||!oa(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},ca={title:({title:e})=>e??"",description:({description:e})=>e??"",canonical:({canonical:e})=>e??"",titleTemplate:()=>""},la=["bd","d","h","m"],da=e=>la.includes(e),ua={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"}},it=e=>{const[n,t]=[e.split(/\D+/)[0],e.split(/[0-9]+/)[1]],r=n!==""&&!Number.isNaN(Number(n)),i=da(t);if(!r||!i)return"";const a=Number(n)<2?Number(n):"other";return ua[t][a].replace("#",n)??""},pa={carrier:e=>e?.friendlyName??e?.name??"",price:e=>e?.price?e.price/100:e?.price,localizedEstimates:e=>e?.shippingEstimate?it(e.shippingEstimate):""},ln="skuvariation";function dn(e,n){const t=`${ln}${n}`.toLowerCase(),r=e.find(a=>a.imageLabel===t);if(r)return r;const i=e.find(a=>a.imageLabel===ln);return i||e[0]}function ga(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 un(e){const n={};return e.forEach(t=>{n[t.name]=t.values[0]}),n}function ma(e){const n={};return e?.forEach(t=>{n[t.field.originalName??t.field.name]=t.values.map(r=>r.originalName??r.name)}),n}function ha(e,n){return Number.isNaN(Number(e)-Number(n))?e<n?-1:e>n?1:0:Number(e)-Number(n)}function fa(e){const n=e;for(const t in e)e[t].every(i=>!Number.isNaN(Number(i.value)))&&e[t].sort((i,a)=>ha(i.value,a.value));return n}function Sa(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=dn(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=dn(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]})}),fa(r)}const ya={activeVariations:e=>un(e.variations),allVariantsByName:e=>ma(e.isVariantOf.skuSpecifications),slugsMap:(e,n)=>ga(e.isVariantOf.items,n.dominantVariantName??e.variations[0]?.name,e.isVariantOf.linkText),availableVariations:(e,n)=>{const t=n.dominantVariantName??e.variations[0]?.name,i=un(e.variations)[t];return Sa(e.isVariantOf.items,t,i)},allVariantProducts:e=>e.isVariantOf.items.map(n=>L(n,e.isVariantOf))},Ia={"pickup-in-point":"Pickup",delivery:"Delivery",pickup:"Pickup","take-away":"Take away","":""},va={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||"",f=g?.selectedDeliveryChannel||g?.deliveryChannel||"",h=g?.deliveryCompany||"",v=g?.deliveryWindow,l=g?.pickupStoreInfo,u=g?.shippingEstimate||"",m=g?.shippingEstimate?it(g?.shippingEstimate):"",S=g?.shippingEstimateDate||"",O=g?.addressId||"",b=g?.itemIndex??0,C=t?.[b],T=C?.seller||"",I=`${p}|${f}|${h}|${T}|${u}|${S}|${O}|${v?.startDateUtc}|${v?.endDateUtc}`,w=i?.find(U=>U?.addressId===O),k=`${Ia[f]||""} ${m} ${w?.neighborhood?`to ${w?.neighborhood}`:""}`.trim(),{taxPriceTagsTotal:D,taxPriceTags:_}=Oa(C?.priceTags??[]),P=(C?.sellingPrice??0)*(C?.quantity??0)+(C?.tax??0)+(D??0);return d[I]||(d[I]={selectedSla:p,deliveryChannel:f,deliveryCompany:h,deliveryWindow:v,shippingEstimate:u,shippingEstimateDate:S,seller:T,friendlyShippingEstimate:m,friendlyDeliveryOptionName:k,address:w,pickupStoreInfo:l,quantityOfDifferentItems:0,total:0,items:[]}),d[I]&&(d[I].items?.push({id:C?.id||"",uniqueId:C?.uniqueId||"",name:C?.name||"",quantity:C?.quantity||0,price:C?.price||0,sellingPrice:C?.sellingPrice||0,imageUrl:C?.imageUrl||"",taxPriceTags:_??[],taxPriceTagsTotal:D??0,tax:C?.tax||0,total:P}),d[I].quantityOfDifferentItems=(d[I].quantityOfDifferentItems??0)+1,d[I].total=(d[I].total??0)+P),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 Oa(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 Ca={StoreCollection:Ln,StoreAggregateOffer:vr,StoreProduct:ji,StoreSeo:ca,StoreFacet:kr,StoreFacetBoolean:Tr,StoreFacetRange:Ur,StoreFacetValueBoolean:_r,StoreOffer:$i,StoreAggregateRating:Or,StoreReview:aa,StoreProductGroup:Gi,StoreSearchResult:sa,StorePropertyValue:Hi,SkuVariants:ya,ShippingSLA:pa,UserOrderResult:va,ObjectOrString:Bi,Query:ia,Mutation:Fi},ba=()=>Ca,wa=`"""
7
+ More info at: https://developers.vtex.com/vtex-rest-api/docs/customizable-fields-with-checkout-api`),r}},gi=(e,n)=>{const r=e.customData?.customApps.find(a=>a.id==="faststore")?.fields?.cartEtag;return r==null?!0:et(e,n)!==r},mi=async(e,{clients:{commerce:n}})=>n.checkout.clearOrderFormMessages({id:e}),tn=async(e,n,{clients:{commerce:t}})=>{if(!n)return e;const{updateShipping:r,addressChanged:i}=Yn(e,n);if(r){const a=ti(e,n,i),s=a||ni(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},hi=(e,n)=>{if(!e)return"";const r=oe.parse(e)[n];return r?r.split("=")[1]:""},fi=async(e,n,t,r)=>{const{commerce:i}=e.clients,a=await i.checkout.orderForm({id:n,channel:e.storage.channel,preserveSalesChannel:!!n&&!t});return!n||xr(a,e.storage.channel.salesChannel,r)?a:i.checkout.orderForm({id:n,channel:e.storage.channel})},rn=(e,n,t)=>{if(!t||n.items.length===0)return null;const r=qr(e.storage.channel,n.salesChannel);return r?(ie(e,r),n.salesChannel?String(n.salesChannel):null):null},an=(e,n,t,r)=>r?ke(e,n,t,r):null,Si=async(e,{cart:{order:n},session:t},r)=>{const i=hi(r.headers.cookie,"checkout.vtex.com"),{clients:{commerce:a},loaders:{skuLoader:o}}=r,s=t?.channel,c=t?.locale,d=qn(s,{localizationEnabled:xn(r.discoveryConfig)})==="url",g=jn(s);s&&ie(r,s),c&&Pe(r,c);const p=await fi(r,i||void 0,d,g),f=p.orderFormId;p.messages.length!==0&&await mi(f,r);const h=oe.parse(r?.headers?.cookie??"")?.vtex_session,I=G(h),{acceptedOffer:l,shouldSplitItem:u}=n;if(gi(p,I)){const w=rn(r,p,!d),N=await nn(p,a,I).then(en);if(f)return ke(N,o,u,w)}const S=rn(r,p,!d),v=Ze(l),b=Ze(p.items.map(fe)),C=Array.from(b.entries()),T=Array.from(v.entries()),{itemsToAdd:A,itemsToUpdate:O}=T.reduce((w,[N,ee])=>{const ce=b.get(N);if(!ce)return ee.forEach(ne=>w.itemsToAdd.push(ne)),w;const[z,...le]=ce;if(Zn(p.items,z.itemOffered.sku)||Qn(p.items,z.itemOffered.sku))return w.itemsToUpdate.push(z),w;const ct=ee.reduce((ne,lt)=>ne+lt.quantity,0);return w.itemsToUpdate.push({...z,quantity:ct}),le.forEach(ne=>w.itemsToUpdate.push({...ne,quantity:0})),w},{itemsToAdd:[],itemsToUpdate:[]}),P=C.filter(([w])=>!v.has(w)).flatMap(([,w])=>w.map(N=>({...N,quantity:0}))),D=[...A,...O,...P].map(ui),{updateShipping:k}=t?Yn(p,t):{updateShipping:!1};if(D.length===0&&!k)return an(p,o,u,S);let E;D.length>0?E=await a.checkout.updateOrderFormItems({id:p.orderFormId,orderItems:D,shouldSplitItem:u}).then(w=>tn(w,t,r)):E=await tn(p,t,r),E=await Promise.resolve(E).then(w=>{if(t?.marketingData){const N={...w.marketingData,...t.marketingData};return a.checkout.marketingData({id:p.orderFormId,marketingData:N})}return w}).then(w=>c&&w.clientPreferencesData?.locale!==c?a.checkout.clientPreferencesData({id:w.orderFormId,clientPreferencesData:{...w.clientPreferencesData,locale:c}}):w).then(w=>nn(w,a,I)).then(en);const _=Re(p.messages,E.messages);return pi(n,E)&&_?an(E,o,u,S):ke(E,o,u,S)},yi=e=>{const n=(e?.corporateName??"").trim();return n||(e?.firstName??"").trim()},Ii=e=>{if(!e||typeof e!="object")return!1;const n=e;return typeof n.customerId=="string"&&n.customerId.trim()!==""&&typeof n.contractName=="string"&&typeof n.isActive=="boolean"&&typeof n.isCurrent=="boolean"},vi=e=>{const n=e?.availableContracts?.value;return Array.isArray(n)?n.filter(Ii):[]},Oi=e=>e?.customerId?!!((e.contractName??"").trim()&&e.isActive):!1,on=e=>e?.namespaces?.shopper?.activeContractId?.value?.trim()??e?.namespaces?.authentication?.customerId?.value?.trim()??e?.namespaces?.profile?.id?.value?.trim()??"",Ci=e=>{if(!Array.isArray(e)||e.length===0)return"";const n=e.find(t=>t?.isDefault===!0)??e[0];return String(n?.id??"").trim()},bi=(e,n="",t="")=>{const r=n.trim(),i=t.trim();return e.filter(Oi).map(a=>({id:a.customerId,corporateName:a.contractName.trim(),isActive:r?a.customerId===r:a.isCurrent,isDefault:i!==""&&a.customerId===i}))},nt=(e,n)=>{const t=yi(e);return t||(n?.firstName?.value??"").trim()};async function wi(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}).
8
+ `),r}}function Ai(e,n,t,r,i,a){const o=new URLSearchParams(e);return o.has("facets")&&o.delete("facets"),o.set("sc",o.get("sc")??n.salesChannel),t&&o.set("postalCode",t),r&&o.set("country",r),i&&o.set("geoCoordinates",`${i.longitude},${i.latitude}`),o.set("locale",a),o}function Di(e,n){return{utmCampaign:e.get("utm_campaign")??n?.utmCampaign??"",utmMedium:e.get("utm_medium")??n?.utmMedium??"",utmSource:e.get("utm_source")??n?.utmSource??"",utmiCampaign:e.get("utmi_cp")??n?.utmiCampaign??"",utmiPage:e.get("utmi_p")??n?.utmiPage??"",utmiPart:e.get("utmi_pc")??n?.utmiPart??""}}async function Pi(e,n,t){const r=G(B(n??"",t));let i=!1;if(r)try{i=(await e.commerce.vtexid.validate())?.authStatus?.toLowerCase()==="success"}catch(a){console.warn("JWT validation failed:",a),i=!1}return{isRepresentative:i?!!r?.isRepresentative:!1,customerId:i?r?.customerId:void 0,unitId:i?r?.unitId:void 0}}async function Ei(e,n,t,r,i,a){return!n.seller||!(t||r)?void 0:(await e.commerce.checkout.region({postalCode:t,geoCoordinates:r,country:i,salesChannel:a}))?.[0]?.sellers.find(c=>n.seller===c.id)?.id}function sn(e){return typeof e?.value=="string"?e.value:""}function ki(e){if(!e.isRepresentative)return null;const n=sn(e.shopper?.firstName),t=sn(e.shopper?.lastName);return{isRepresentative:!0,customerId:e.authentication?.customerId?.value??e.customerId??"",unitName:e.authentication?.unitName?.value??"",unitId:e.authentication?.unitId?.value??e.unitId??"",firstName:n,lastName:t,userName:`${n} ${t}`.trim(),userEmail:e.authentication?.storeUserEmail?.value??"",savedPostalCode:e.publicData?.postalCode?.value??"",contractName:nt(e.contract,e.profile),organizationManager:e.shopper?.organizationManager?.value??!1}}function Ui(e){return e?.id?{id:e.id?.value??"",email:e.email?.value??"",givenName:e.firstName?.value??"",familyName:e.lastName?.value??""}:null}const Ti=e=>e instanceof q&&(e.extensions.status===401||e.extensions.status===403),_i=e=>e instanceof Error&&/sales\s*channel/i.test(e.message),Ri=(e,n,t,r)=>{if(n!=="orderForm"||t!==r)return!1;if(_i(e))return!0;const i=`[validateSession] Session Manager rejected adopted sales channel ${t} with an unrecognized error; keeping the adoption.`,a=e instanceof Error?e.message:e;return console.warn(i,a),En("warn","%s %o",i,a),!1},Fi=async(e,n,t,r)=>{const i={salesChannelSource:t,rejectedSalesChannel:void 0};try{return{...i,sessionData:await e.commerce.session(n.toString())}}catch(a){if(t==="url"||!Ti(a))return{...i,sessionData:null};const o=n.get("sc")??void 0,s=Ri(a,t,o,r);n.delete("sc");const c=await e.commerce.session(n.toString()).catch(()=>null);return!c||!s?{...i,sessionData:c}:{sessionData:c,salesChannelSource:void 0,rejectedSalesChannel:o}}},Ni=async(e,{session:n,search:t},{clients:r,headers:i,account:a,storage:o,discoveryConfig:s})=>{const c=se.parse(n.channel??""),d=qn(n.channel,{localizationEnabled:xn(s)}),g={...c,salesChannel:Wr(c,d,o?.channel?.salesChannel?String(o.channel.salesChannel):void 0,t)},p=String(n.postalCode??""),f=n.country??"";let h=n.city??null,I=n.geoCoordinates??null;if((!h||!I)&&p!==""&&f!==""){const le=await wi(r,f,p);h=le.city,I=le.geoCoordinates}const u=Ai(t,g,p,f,I,n.locale),m=Di(u,n.marketingData),{isRepresentative:S,customerId:v,unitId:b}=await Pi(r,i?.cookie,a),{sessionData:C,salesChannelSource:T,rejectedSalesChannel:A}=await Fi(r,u,d,String(g.salesChannel??"")),O=C?.namespaces.profile??null,P=C?.namespaces.shopper??null,D=C?.namespaces.store??null,k=C?.namespaces.authentication??null,E=C?.namespaces.checkout??null,_=C?.namespaces.public??null;let w=null;if(S&&O?.id?.value)try{w=await r.commerce.masterData.getContractById({contractId:O.id.value})}catch{console.error(`Error while getting contract data for profile ID (${O.id.value}).
9
+ `)}const N=await Ei(r,g,p,I,f,u.get("sc")??D?.channel?.value??g.salesChannel),ee=Ui(O),ce=(n.person?.id??null)===(ee?.id??null)?jn(n.channel):void 0,z={...n,currency:{code:D?.currencyCode?.value??n.currency.code,symbol:D?.currencySymbol?.value??n.currency.symbol},country:D?.countryCode?.value??f,channel:jr(g,D?.channel?.value,E?.regionId?.value,N,T,A??ce),b2b:ki({isRepresentative:S,authentication:k,shopper:P,publicData:_,profile:O,contract:w,customerId:v,unitId:b}),marketingData:m,person:ee,geoCoordinates:I?.latitude&&I?.longitude&&I||null,city:h};return Re(n,z)?null:z},Li={validateCart:Si,validateSession:Ni,subscribeToNewsletter:Mr,cancelOrder:Nr,processOrderAuthorization:Br,uploadFileToOrderEntry:Vr,startOrderEntryOperation:$r,startRecommendationSession:zr};var Ue;(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"})(Ue||(Ue={}));const Bi=e=>typeof e=="string"?tt(e):null;function tt(e){try{return JSON.parse(e)}catch{return e}}const $i=e=>typeof e=="object"?JSON.stringify(e):typeof e=="string"?e:null,zi=new me.GraphQLScalarType({name:"ObjectOrString",description:"A string or the string representation of an object (a stringified object).",parseValue:Bi,serialize:$i,parseLiteral(e){return e.kind===Ue.STRING?tt(e.value):null}}),R=e=>"Price"in e&&"seller"in e&&"product"in e,F=e=>"skuName"in e,Mi={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)?je(V(e)):F(e)?je(vr(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)?Z(e):F(e)?e.sellingPrice/100:null,priceWithTaxes:e=>R(e)?X(Z(e),e?.Tax,e.product.unitMultiplier):F(e)?X(e.sellingPrice/100,e.tax/100,e.unitMultiplier):null,sellingPrice:e=>R(e)?Ir(e):F(e)?e.sellingPrice/100:null,listPrice:e=>R(e)?e.ListPrice??0:F(e)?e.listPrice/100:null,listPriceWithTaxes:e=>R(e)?X(e.ListPrice??0,e?.Tax,e.product.unitMultiplier):F(e)?X(e.listPrice/100,e.tax/100,e.unitMultiplier):null,itemOffered:e=>R(e)?e.product:F(e)?{...e.product,attachmentsValues:e.attachments,servicesValues:e.bundleItems??[]}:null,quantity:e=>R(e)?e.AvailableQuantity??0:F(e)?e.quantity:null,isGift:e=>F(e)?e.isGift??!1:null,priceToken:e=>R(e)?e.PriceToken??null:null},Vi=({linkText:e})=>`/${e}/p`,qi=({offer:e,seller:n,product:t})=>({...e,product:t,seller:n}),xi={imageText:"image",imageUrl:"https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg",imageLabel:"label"},pe=(e,n)=>`${e}-${n}`,cn=(e,n)=>`/${pe(e,n)}/p`,ji=e=>Array.isArray(e)&&e.length>0?e:null;function Te(e){return e.replace(/^\/+|\/+$/g,"")}async function ge(e,n,t){const r=`${n}:${t}`;e.storage.productTranslationsCache??=new Map;const i=e.storage.productTranslationsCache,a=i.get(r);if(a)return a;const o=(async()=>{try{const s=await e.clients.catalog.getLocalizedProduct(n,t);return{linkId:s.linkId,categories:s.categories??[],availableLinkIds:s.availableLinkIds??{}}}catch(s){return console.warn(`[getLocalizedProductEntry] failed to load product ${n} for locale ${t}:`,s),null}})();return i.set(r,o),o}const Wi=(e,n)=>{const t=e.findIndex(r=>Te(r).split("/").at(-1)===n);return t<0?0:t},Hi={productID:({itemId:e})=>e,name:({isVariantOf:e,name:n})=>n??e.productName,slug:({isVariantOf:{linkText:e},itemId:n})=>pe(e,n),description:({isVariantOf:{description:e}})=>e,seo:({isVariantOf:e})=>({title:e.productTitle||e.productName,description:e.metaTagDescription||e.description,canonical:Vi(e)}),brand:({isVariantOf:{brand:e}})=>({name:e}),unitMultiplier:({unitMultiplier:e})=>e,breadcrumbList:async(e,n,t)=>{const{isVariantOf:{categories:r,productName:i,linkText:a,categoryId:o,categoriesIds:s,productId:c},itemId:d}=e,g=Wi(s,o),p=r[g],f=Te(p).split("/"),h=t.storage.locale;if(K(t)&&h){const I=await ge(t,c,h);if(I){const l=new Set(Te(s[g]).split("/").filter(Boolean)),u=I.categories.filter(S=>l.has(S.id.toString())).sort((S,v)=>S.fullPath.split("/").length-v.fullPath.split("/").length);if(u.length===f.length)return{itemListElement:[...u.map((S,v)=>({name:S.name,item:`/${S.fullPathUriName}/`,position:v+1})),{name:i,item:cn(I.linkId,d),position:f.length+1}],numberOfItems:f.length}}}return{itemListElement:[...f.map((I,l)=>{const u=`/${f.slice(0,l+1).map(he).join("/")}/`;return{name:I,item:u,position:l+1}}),{name:i,item:cn(a,d),position:f.length+1}],numberOfItems:f.length}},image:({images:e},n)=>{const t=(ji(e)??[xi]).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=>qi({offer:n.commertialOffer,seller:n,product:e})).sort(Bn),isVariantOf:e=>e,additionalProperty:({variations:e=[],attachmentsValues:n=[],attributes:t=[],servicesValues:r=[]})=>{const i=e.flatMap(({name:c,values:d})=>d.map(g=>({name:c,value:g,valueReference:x.specification}))),a=n.map(Wn),o=t.map(Hr),s=r.map(Ne);return[...i,...a,...o,...s]},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,otherLocales:async(e,n,t)=>{if(!K(t))return null;const r=Lt(t);if(r.length===0)return null;const i=e.isVariantOf.productId,a=e.itemId,o=t.storage.locale,s=await ge(t,i,o);if(!s?.availableLinkIds)return null;const{availableLinkIds:c}=s;return r.map(d=>{const g=c[d];return g?{locale:d,slug:pe(g,a)}:null}).filter(d=>d!==null)},defaultLocaleSlug:async(e,n,t)=>{if(!K(t))return null;const r=Bt(t);if(!r)return null;const{productId:i,linkText:a}=e.isVariantOf,o=e.itemId,c=(await ge(t,i,t.storage.locale))?.availableLinkIds?.[r]??a;return pe(c,o)}},Gi=new Set(["allSpecifications"]),Xi={hasVariant:e=>e.isVariantOf.items.map(n=>L(n,e.isVariantOf)),productGroupID:({isVariantOf:e})=>e.productId,productClusters:({isVariantOf:e})=>e.productClusters??[],name:e=>e.isVariantOf.productName,skuVariants:e=>e,additionalProperty:({isVariantOf:{specificationGroups:e}})=>e.filter(n=>!Gi.has(n.name)).flatMap(({specifications:n})=>n.flatMap(({name:t,values:r})=>r.map(i=>({name:t,value:i,valueReference:x.specification}))))},Yi={propertyID:e=>e.propertyID||Hn(e),name:({name:e})=>e,value:({value:e})=>e,valueReference:({valueReference:e})=>e},Se=e=>{const n=e.flatMap(r=>r.sellers.map(i=>({offer:i.commertialOffer,sku:r}))),t=De(n,({offer:r},{offer:i})=>Bn(r,i));return t?t.sku:e[0]},rt=e=>e!==""&&!Number.isNaN(Number(e)),Ji=/^vrn:recommendations:[^:]+:[^:]+:[^:]+$/,Ki=async(e,{campaignVrn:n,userId:t,products:r},i)=>{const{clients:{commerce:a}}=i,{salesChannel:o}=i.storage.channel,s=n?.trim();if(!s||!Ji.test(s))throw new U(`Invalid campaignVrn: "${n}"`);const c=t?.trim();if(t!=null&&!c)throw new U("Invalid userId: must be a non-empty string");if(r!=null&&(!Array.isArray(r)||r.some(h=>!h?.trim())))throw new U("Invalid products: must be an array of non-empty strings");const d=await a.recommendation.recommendations({campaignVrn:s,userId:c||void 0,products:r??[],salesChannel:o??void 0,locale:i.storage.locale}),{campaign:g,correlationId:p}=d;return{products:(d.products??[]).map(h=>{const I=Se(h.items);return I?L(I,h):null}).filter(h=>!!h),correlationId:p,campaign:g}},ln={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:""};function Qi(e,n){let t;if(Object.hasOwn(n,e)?t=n[e]:Object.hasOwn(ln,e)&&(t=ln[e]),t===void 0)throw new U(`Unknown sort value: ${e}`);return t}const Zi=async(e,{operationId:n},{clients:{commerce:t}})=>{if(!n)throw new U("Missing operationId");return t.orderEntry.getOperation({operationId:n})},ea=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}))};async function na(e,n,t,r){const i=n.slice(0,n.lastIndexOf("-"));return(await ge(e,t,r))?.linkId===i}const it="Invalid SkuId",at="Slug was set but the fetched sku does not satisfy the slug condition.",ta="UseAdHocCard",ra=e=>J(e)||e instanceof Error&&(e.message===it||e.message.startsWith(at));async function ia(e,n,t,r){const{linkText:i,productId:a}=n.isVariantOf;if(!(!t||!i||t.startsWith(i)||K(e)&&r&&rt(t.split("-").pop()??"")&&await na(e,t,a,r)))throw new Error(`${at} slug: ${t}, linkText: ${i}`)}async function aa(e,n){if(n==null)throw new U("Missing slug or id");const{clients:{commerce:t,search:r}}=e,i=await t.catalog.portal.pagetype(`${n}/p`);if(i.pageType!=="Product"||!i.id)throw new $(`No product found for slug ${n}`);const a=await r.fetchProduct({field:"id",value:String(i.id)}).catch(()=>null);if(!a)throw new $(`No product found for id ${i.id}`);return L(Se(a.items),a)}const oa={product:async(e,{locator:n},t)=>{const r=Je(n),i=Ye(n),a=Ur(n),o=kr(n);r&&ie(t,r),i&&Pe(t,i);const{loaders:{skuLoader:s}}=t;try{const c=a??o?.split("-").pop()??"";if(!rt(c))throw new Error(it);const d=await s.load(c);return await ia(t,d,o,i),d}catch(c){if(!ra(c))throw c;return aa(t,o)}},collection:(e,{slug:n},t)=>{const{loaders:{collectionLoader:r}}=t;return r.load({slug:n,locale:_n(t)})},search:async(e,{first:n,after:t,sort:r,term:i,selectedFacets:a,sponsoredCount:o},s)=>{const c=Je(a),d=Ye(a),g=Er(a);c&&ie(s,c),d&&Pe(s,d);const p=t?Number(t):0,f={page:Math.ceil(p/n)||0,count:n,query:i??void 0,sort:Qi(r??"score_desc",s.storage.customSortMap),selectedFacets:a?.flatMap(Ge)??[],sponsoredCount:o??void 0};if(g){const l=(await s.clients.commerce.catalog.products.crossselling({type:zn[g.key],productId:g.value})).map(m=>m.productId).slice(0,n),u=s.clients.search.productsByIdentifier({field:"id",values:l}).then(m=>({products:m,recordsFiltered:m.length,pagination:{count:m.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:f,productSearchPromise:u}}const h=s.clients.search.products(f);return{searchArgs:f,productSearchPromise:h}},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=>L(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=>L(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=(h,I)=>{c.push({id:h.id,name:h.name,fatherCategoryId:I,linkId:he(h.name),title:h.Title,description:null,metaTagDescription:h.MetaTagDescription,availableLinkIds:null,entityType:"category",slug:new URL(h.url).pathname.slice(1).toLowerCase()});for(const l of h.children)d(l,h.id)};for(const h of s)d(h,null);const f=[...o.filter(h=>h.isActive).map(h=>({id:h.id,name:h.name,linkId:he(h.name),title:h.title,description:null,metaTagDescription:h.metaTagDescription,availableLinkIds:null,entityType:"brand"})),...c].filter(h=>!!$n.slug(h,null,r,null));return{pageInfo:{hasNextPage:f.length-a>n,hasPreviousPage:a>0,startCursor:"0",endCursor:(Math.min(n,f.length-a)-1).toString(),totalCount:f.length},edges:f.slice(a,a+n).map((h,I)=>({node:h,cursor:(a+I).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(Ge)??[],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 $(`No order found for id ${n}`);let a=null;try{const c=await r.oms.getCommercialAuthorizationsByOrderId({orderId:n});a=Mn(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 J(r)?new $(`No order found for id ${n}. ${o}.`):kn(r)?new Q(`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}},listCreditCards:async(e,n,t)=>{const{clients:{commerce:r}}=t;return{list:(await r.savedCards.listCreditCards())?.map(a=>({accountId:a.accountId,bin:a.bin,cardNumber:a.cardNumber,cardLabel:a.cardLabel,paymentSystem:a.paymentSystem,paymentSystemName:a.paymentSystemName,isDefault:a.isDefault,isActive:a.isActive,origin:a.origin}))}},hasAdHocCardAccess:async(e,n,t)=>{const{account:r,headers:i,clients:{commerce:a}}=t,s=G(B(i?.cookie??"",r))?.userId??"";if(!s)return!0;const c=await a.licenseManager.isResourceGranted({userId:s,resourceKey:ta}).catch(()=>null);return typeof c=="boolean"?c:!0},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=G(B(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],f=c?.namespaces.authentication??null,h=`${(p?.firstName??"").trim()} ${(p?.lastName??"").trim()}`.trim();return{username:f?.storeUserEmail?.value??"",name:h,email:f?.storeUserEmail?.value??"",phone:p?.phone??"",role:g?.Roles?.map(I=>I.Name)??[],orgUnit:f?.unitName?.value??""}},accountProfile:async(e,n,t)=>{const{account:r,headers:i,clients:{commerce:a}}=t,o=G(B(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,g=c.namespaces.shopper??null,p=c.namespaces.authentication??null,f=on(c)||o?.customerId?.trim()||"";let h=null;if(f)try{h=await a.masterData.getContractById({contractId:f})}catch(u){console.error(`Error while getting contract data for contract ID (${f}).`,u)}const I=`${(g?.firstName?.value??"").trim()} ${(g?.lastName?.value??"").trim()}`.trim();return{name:nt(h,d)||I||"",email:d?.email?.value||p?.storeUserEmail?.value||"",id:d?.id?.value||p?.customerId?.value||o?.customerId?.trim()||""}}const s=await a.licenseManager.getUserById({userId:o?.userId}).catch(()=>null);return{name:s?.name||"",email:s?.email||"",id:s?.id||""}},availableContracts:async(e,{orgUnitId:n},t)=>{if(!n)throw new U("Missing orgUnitId");const{account:r,headers:i,clients:{commerce:a}}=t,o=await a.session("").catch(()=>null),s=B(i?.cookie??"",r);let c=null;try{c=s?G(s):null}catch{c=null}const d=o?.namespaces.authentication?.unitId?.value?.trim()??c?.unitId?.trim()??"";if(!d||d!==n)throw new Q("You are not allowed to list contracts for this organization unit");const g=vi(o?.namespaces.shopper),p=on(o)||c?.customerId?.trim()||"",f=await a.storeFront.attachedContracts(n).catch(I=>(console.warn("availableContracts: default contract lookup failed",I),null)),h=Ci(f?.contracts);return bi(g,p,h)},pickupPoints:async(e,{geoCoordinates:n,postalCode:t,country:r,channel:i},a)=>{const{clients:{search:o}}=a;i&&ie(a,i);const s=n?.longitude!=null&&n?.latitude!=null?`${n.longitude},${n.latitude}`:void 0;return{pickupPointDistances:(await o.pickupPointAvailability({postalCode:t??void 0,country:r??void 0,coordinates:s}))?.pickupPointDistances??[],pickupPointsHash:null}},orderEntryOperation:Zi,orderFormItems:ea,recommendations:Ki},sa={reviewRating:()=>({ratingValue:5,bestRating:5}),author:()=>({name:""})},ca=(e,n,t)=>n?e.key==="category-1":t?e.key==="brand":!1,la={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=Se(g.items);return p&&L(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=Se(r.items);return i&&L(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||!ca(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},da={title:({title:e})=>e??"",description:({description:e})=>e??"",canonical:({canonical:e})=>e??"",titleTemplate:()=>""},ua=["bd","d","h","m"],pa=e=>ua.includes(e),ga={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"}},ot=e=>{const[n,t]=[e.split(/\D+/)[0],e.split(/[0-9]+/)[1]],r=n!==""&&!Number.isNaN(Number(n)),i=pa(t);if(!r||!i)return"";const a=Number(n)<2?Number(n):"other";return ga[t][a].replace("#",n)??""},ma={carrier:e=>e?.friendlyName??e?.name??"",price:e=>e?.price?e.price/100:e?.price,localizedEstimates:e=>e?.shippingEstimate?ot(e.shippingEstimate):""},dn="skuvariation";function un(e,n){const t=`${dn}${n}`.toLowerCase(),r=e.find(a=>a.imageLabel===t);if(r)return r;const i=e.find(a=>a.imageLabel===dn);return i||e[0]}function ha(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 pn(e){const n={};return e.forEach(t=>{n[t.name]=t.values[0]}),n}function fa(e){const n={};return e?.forEach(t=>{n[t.field.originalName??t.field.name]=t.values.map(r=>r.originalName??r.name)}),n}function Sa(e,n){return Number.isNaN(Number(e)-Number(n))?e<n?-1:e>n?1:0:Number(e)-Number(n)}function ya(e){const n=e;for(const t in e)e[t].every(i=>!Number.isNaN(Number(i.value)))&&e[t].sort((i,a)=>Sa(i.value,a.value));return n}function Ia(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=un(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=un(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]})}),ya(r)}const va={activeVariations:e=>pn(e.variations),allVariantsByName:e=>fa(e.isVariantOf.skuSpecifications),slugsMap:(e,n)=>ha(e.isVariantOf.items,n.dominantVariantName??e.variations[0]?.name,e.isVariantOf.linkText),availableVariations:(e,n)=>{const t=n.dominantVariantName??e.variations[0]?.name,i=pn(e.variations)[t];return Ia(e.isVariantOf.items,t,i)},allVariantProducts:e=>e.isVariantOf.items.map(n=>L(n,e.isVariantOf))},Oa={"pickup-in-point":"Pickup",delivery:"Delivery",pickup:"Pickup","take-away":"Take away","":""},Ca={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||"",f=g?.selectedDeliveryChannel||g?.deliveryChannel||"",h=g?.deliveryCompany||"",I=g?.deliveryWindow,l=g?.pickupStoreInfo,u=g?.shippingEstimate||"",m=g?.shippingEstimate?ot(g?.shippingEstimate):"",S=g?.shippingEstimateDate||"",v=g?.addressId||"",b=g?.itemIndex??0,C=t?.[b],T=C?.seller||"",A=`${p}|${f}|${h}|${T}|${u}|${S}|${v}|${I?.startDateUtc}|${I?.endDateUtc}`,O=i?.find(_=>_?.addressId===v),P=`${Oa[f]||""} ${m} ${O?.neighborhood?`to ${O?.neighborhood}`:""}`.trim(),{taxPriceTagsTotal:D,taxPriceTags:k}=ba(C?.priceTags??[]),E=(C?.sellingPrice??0)*(C?.quantity??0)+(C?.tax??0)+(D??0);return d[A]||(d[A]={selectedSla:p,deliveryChannel:f,deliveryCompany:h,deliveryWindow:I,shippingEstimate:u,shippingEstimateDate:S,seller:T,friendlyShippingEstimate:m,friendlyDeliveryOptionName:P,address:O,pickupStoreInfo:l,quantityOfDifferentItems:0,total:0,items:[]}),d[A]&&(d[A].items?.push({id:C?.id||"",uniqueId:C?.uniqueId||"",name:C?.name||"",quantity:C?.quantity||0,price:C?.price||0,sellingPrice:C?.sellingPrice||0,imageUrl:C?.imageUrl||"",taxPriceTags:k??[],taxPriceTagsTotal:D??0,tax:C?.tax||0,total:E}),d[A].quantityOfDifferentItems=(d[A].quantityOfDifferentItems??0)+1,d[A].total=(d[A].total??0)+E),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 ba(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 wa={StoreCollection:$n,StoreAggregateOffer:Cr,StoreProduct:Hi,StoreSeo:da,StoreFacet:Tr,StoreFacetBoolean:_r,StoreFacetRange:Rr,StoreFacetValueBoolean:Fr,StoreOffer:Mi,StoreAggregateRating:br,StoreReview:sa,StoreProductGroup:Xi,StoreSearchResult:la,StorePropertyValue:Yi,SkuVariants:va,ShippingSLA:ma,UserOrderResult:Ca,ObjectOrString:zi,Query:oa,Mutation:Li},Aa=()=>wa,Da=`"""
10
10
  Address information.
11
11
  """
12
12
  type Address {
@@ -51,7 +51,7 @@ type Address {
51
51
  """
52
52
  geoCoordinates: [Float]
53
53
  }
54
- `,Aa=`"""
54
+ `,Pa=`"""
55
55
  Advertisement information about a specific product in a campaign
56
56
  """
57
57
  type Advertisement {
@@ -76,7 +76,7 @@ type Advertisement {
76
76
  """
77
77
  adResponseId: String!
78
78
  }
79
- `,Da=`"""
79
+ `,Ea=`"""
80
80
  Aggregate offer information, for a given SKU that is available to be fulfilled by multiple sellers.
81
81
  """
82
82
  type StoreAggregateOffer {
@@ -105,7 +105,7 @@ type StoreAggregateOffer {
105
105
  """
106
106
  offers: [StoreOffer!]!
107
107
  }
108
- `,Pa=`"""
108
+ `,ka=`"""
109
109
  Average rating, based on multiple ratings or reviews.
110
110
  """
111
111
  type StoreAggregateRating {
@@ -118,7 +118,7 @@ type StoreAggregateRating {
118
118
  """
119
119
  reviewCount: Int!
120
120
  }
121
- `,Ea=`"""
121
+ `,Ua=`"""
122
122
  information about the author of a product review or rating.
123
123
  """
124
124
  type StoreAuthor {
@@ -127,7 +127,7 @@ type StoreAuthor {
127
127
  """
128
128
  name: String!
129
129
  }
130
- `,ka=`"""
130
+ `,Ta=`"""
131
131
  Brand of a given product.
132
132
  """
133
133
  type StoreBrand {
@@ -136,7 +136,7 @@ type StoreBrand {
136
136
  """
137
137
  name: String!
138
138
  }
139
- `,Ta=`"""
139
+ `,_a=`"""
140
140
  Item of a list.
141
141
  """
142
142
  type StoreListItem {
@@ -167,7 +167,7 @@ type StoreBreadcrumbList {
167
167
  """
168
168
  numberOfItems: Int!
169
169
  }
170
- `,Ua=`"""
170
+ `,Ra=`"""
171
171
  Shopping cart message.
172
172
  """
173
173
  type StoreCartMessage {
@@ -204,7 +204,7 @@ input IStoreCart {
204
204
  """
205
205
  order: IStoreOrder!
206
206
  }
207
- `,_a=`"""
207
+ `,Fa=`"""
208
208
  Product collection type. Possible values are \`Department\`, \`Category\`, \`Brand\` or \`Collection\`.
209
209
 
210
210
  \`SubCategory\` and \`Cluster\` are still declared for backward compatibility but are
@@ -330,7 +330,7 @@ type StoreCollectionLocale {
330
330
  """
331
331
  slug: String!
332
332
  }
333
- `,Ra=`"""
333
+ `,Na=`"""
334
334
  Delivery Promise badge.
335
335
  """
336
336
  type DeliveryPromiseBadge {
@@ -339,7 +339,7 @@ type DeliveryPromiseBadge {
339
339
  """
340
340
  typeName: String
341
341
  }
342
- `,Fa=`union StoreFacet = StoreFacetRange | StoreFacetBoolean
342
+ `,La=`union StoreFacet = StoreFacetRange | StoreFacetBoolean
343
343
 
344
344
  """
345
345
  Search facet range information.
@@ -416,7 +416,7 @@ type StoreFacetValueBoolean {
416
416
  """
417
417
  quantity: Int
418
418
  }
419
- `,Na=`"""
419
+ `,Ba=`"""
420
420
  Image.
421
421
  """
422
422
  type StoreImage {
@@ -443,7 +443,7 @@ input IStoreImage {
443
443
  """
444
444
  alternateName: String!
445
445
  }
446
- `,La=`type Mutation {
446
+ `,$a=`type Mutation {
447
447
  """
448
448
  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\`.
449
449
  """
@@ -485,7 +485,7 @@ input IStoreImage {
485
485
  """
486
486
  startRecommendationSession: Boolean!
487
487
  }
488
- `,Ba=`"""
488
+ `,za=`"""
489
489
  Newsletter information.
490
490
  """
491
491
  type PersonNewsletter {
@@ -508,8 +508,8 @@ input IPersonNewsletter {
508
508
  """
509
509
  email: String!
510
510
  }
511
- `,$a=`scalar ObjectOrString
512
- `,Ma=`"""
511
+ `,Ma=`scalar ObjectOrString
512
+ `,Va=`"""
513
513
  Offer information.
514
514
  """
515
515
  type StoreOffer {
@@ -602,7 +602,7 @@ input IStoreOffer {
602
602
  """
603
603
  priceToken: String
604
604
  }
605
- `,za=`"""
605
+ `,qa=`"""
606
606
  Information of a specific order.
607
607
  """
608
608
  type StoreOrder {
@@ -643,7 +643,7 @@ input IStoreOrder {
643
643
  """
644
644
  shouldSplitItem: Boolean
645
645
  }
646
- `,Va=`"""
646
+ `,xa=`"""
647
647
  Commercial Authorization response.
648
648
  """
649
649
  type CommercialAuthorizationResponse {
@@ -1042,7 +1042,7 @@ type ProcessOrderAuthorizationRule {
1042
1042
  """
1043
1043
  rule: CommercialAuthorizationRule!
1044
1044
  }
1045
- `,qa=`"""
1045
+ `,ja=`"""
1046
1046
  Input for uploading a file to the Order Entry Service.
1047
1047
  The file is transmitted as a Base64-encoded string so it can travel
1048
1048
  through the standard GraphQL JSON pipeline without multipart support.
@@ -1103,7 +1103,7 @@ type StoreOrderFormCartItem {
1103
1103
  seller: String!
1104
1104
  unitMultiplier: Float
1105
1105
  }
1106
- `,xa=`"""
1106
+ `,Wa=`"""
1107
1107
  Organization.
1108
1108
  """
1109
1109
  type StoreOrganization {
@@ -1144,7 +1144,7 @@ type StoreContract {
1144
1144
  """
1145
1145
  isDefault: Boolean!
1146
1146
  }
1147
- `,ja=`"""
1147
+ `,Ha=`"""
1148
1148
  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.
1149
1149
  """
1150
1150
  type StorePageInfo {
@@ -1169,7 +1169,7 @@ type StorePageInfo {
1169
1169
  """
1170
1170
  totalCount: Int!
1171
1171
  }
1172
- `,Wa=`"""
1172
+ `,Ga=`"""
1173
1173
  Input type for setting a new password.
1174
1174
  """
1175
1175
  input ISetPassword {
@@ -1212,7 +1212,7 @@ type SetPasswordResponse {
1212
1212
  """
1213
1213
  message: String
1214
1214
  }
1215
- `,Ga=`"""
1215
+ `,Xa=`"""
1216
1216
  Client profile data.
1217
1217
  """
1218
1218
  type StorePerson {
@@ -1255,7 +1255,7 @@ input IStorePerson {
1255
1255
  """
1256
1256
  familyName: String!
1257
1257
  }
1258
- `,Ha=`type PickupPointAddress {
1258
+ `,Ya=`type PickupPointAddress {
1259
1259
  """
1260
1260
  Address city.
1261
1261
  """
@@ -1330,11 +1330,14 @@ type PickupPoints {
1330
1330
  """
1331
1331
  pickupPointDistances: [PickupPointDistance]
1332
1332
  """
1333
- Hash of the pickup points data.
1333
+ Not returned by Intelligent Search pickup-point-availability. Always null.
1334
1334
  """
1335
1335
  pickupPointsHash: String
1336
+ @deprecated(
1337
+ reason: "Not returned by Intelligent Search pickup-point-availability. Always null."
1338
+ )
1336
1339
  }
1337
- `,Xa=`"""
1340
+ `,Ja=`"""
1338
1341
  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.
1339
1342
  """
1340
1343
  type StoreProduct {
@@ -1510,7 +1513,7 @@ input IStoreProduct {
1510
1513
  """
1511
1514
  additionalProperty: [IStorePropertyValue!]
1512
1515
  }
1513
- `,Ya=`"""
1516
+ `,Ka=`"""
1514
1517
  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.
1515
1518
  """
1516
1519
  type StoreProductGroup {
@@ -1555,7 +1558,7 @@ type StoreProductCluster {
1555
1558
  """
1556
1559
  name: String!
1557
1560
  }
1558
- `,Ja=`type Profile {
1561
+ `,Qa=`type Profile {
1559
1562
  """
1560
1563
  Collection of user's address
1561
1564
  """
@@ -1616,7 +1619,7 @@ type ProfileAddress {
1616
1619
  """
1617
1620
  geoCoordinate: [Float]
1618
1621
  }
1619
- `,Ka=`"""
1622
+ `,Za=`"""
1620
1623
  Properties that can be associated with products and products groups.
1621
1624
  """
1622
1625
  type StorePropertyValue {
@@ -1656,7 +1659,7 @@ input IStorePropertyValue {
1656
1659
  """
1657
1660
  valueReference: ObjectOrString!
1658
1661
  }
1659
- `,Qa=`"""
1662
+ `,eo=`"""
1660
1663
  Each product edge contains a \`node\`, with product information, and a \`cursor\`, that can be used as a reference for pagination.
1661
1664
  """
1662
1665
  type StoreProductEdge {
@@ -2188,15 +2191,27 @@ type Query {
2188
2191
  @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
2189
2192
 
2190
2193
  """
2191
- Returns a list of pickup points near to the given geo coordinates.
2194
+ Returns pickup points that have products available for the shopper location and sales channel.
2192
2195
  """
2193
2196
  pickupPoints(
2194
2197
  """
2195
- Geo coordinates input.
2198
+ Geo coordinates used to sort pickup points by distance (\`longitude,latitude\`). Without \`postalCode\`, the segment postal code stays in place.
2196
2199
  """
2197
2200
  geoCoordinates: IStoreGeoCoordinates
2201
+ """
2202
+ Postal code. When it differs from the segment cookie, delivery hashes are omitted so a simulated address is not resolved against the previous CEP.
2203
+ """
2204
+ postalCode: String
2205
+ """
2206
+ Three-letter country code for \`postalCode\`.
2207
+ """
2208
+ country: String
2209
+ """
2210
+ Shopper channel, the same JSON string used by the \`channel\` search facet. When set, its sales channel is used instead of the store default.
2211
+ """
2212
+ channel: String
2198
2213
  ): PickupPoints
2199
- @cacheControl(scope: "public", sMaxAge: 300, staleWhileRevalidate: 3600)
2214
+ @cacheControl(scope: "private", sMaxAge: 300, staleWhileRevalidate: 3600)
2200
2215
  """
2201
2216
  Returns the status of an Order Entry Service operation by its ID.
2202
2217
  """
@@ -2305,7 +2320,7 @@ type StoreAccountProfile {
2305
2320
  email: String
2306
2321
  id: String
2307
2322
  }
2308
- `,Za=`"""
2323
+ `,no=`"""
2309
2324
  Summary of a quote returned in list results.
2310
2325
  """
2311
2326
  type UserQuoteSummary {
@@ -2370,7 +2385,7 @@ type UserQuoteListPaging {
2370
2385
  """
2371
2386
  perPage: Int!
2372
2387
  }
2373
- `,eo=`type RecommendationResponse {
2388
+ `,to=`type RecommendationResponse {
2374
2389
  products: [StoreProduct!]!
2375
2390
  correlationId: String!
2376
2391
  campaign: RecommendationCampaign!
@@ -2381,7 +2396,7 @@ type RecommendationCampaign {
2381
2396
  title: String
2382
2397
  type: String!
2383
2398
  }
2384
- `,no=`"""
2399
+ `,ro=`"""
2385
2400
  Information of a given review rating.
2386
2401
  """
2387
2402
  type StoreReviewRating {
@@ -2408,7 +2423,7 @@ type StoreReview {
2408
2423
  """
2409
2424
  author: StoreAuthor!
2410
2425
  }
2411
- `,to=`"""
2426
+ `,io=`"""
2412
2427
  Whether a saved card is personally owned by the buyer or shared by their
2413
2428
  Organization/Contract. Resolved server-side by the Saved-cards service from
2414
2429
  the buyer's \`useAdHocCard\` role — never inferred client-side.
@@ -2472,7 +2487,7 @@ type SavedCardListResult {
2472
2487
  """
2473
2488
  list: [SavedCard!]
2474
2489
  }
2475
- `,ro=`"""
2490
+ `,ao=`"""
2476
2491
  Search Engine Optimization (SEO) tags data.
2477
2492
  """
2478
2493
  type StoreSeo {
@@ -2493,7 +2508,7 @@ type StoreSeo {
2493
2508
  """
2494
2509
  canonical: String!
2495
2510
  }
2496
- `,io=`"""
2511
+ `,oo=`"""
2497
2512
  Currency information.
2498
2513
  """
2499
2514
  type StoreCurrency {
@@ -2768,7 +2783,7 @@ input IStoreSession {
2768
2783
  """
2769
2784
  refreshAfter: String
2770
2785
  }
2771
- `,ao=`"""
2786
+ `,so=`"""
2772
2787
  Shipping Simulation item input.
2773
2788
  """
2774
2789
  input IShippingItem {
@@ -3099,7 +3114,7 @@ type MessageFields {
3099
3114
  """
3100
3115
  skuName: String
3101
3116
  }
3102
- `,oo=`type SkuVariants {
3117
+ `,co=`type SkuVariants {
3103
3118
  """
3104
3119
  SKU property values for the current SKU.
3105
3120
  """
@@ -3194,7 +3209,7 @@ Example:
3194
3209
  \`\`\`
3195
3210
  """
3196
3211
  scalar FormattedVariants
3197
- `,so=`"""
3212
+ `,lo=`"""
3198
3213
  Status used to indicate a message type. For instance, a shopping cart informative or error message.
3199
3214
  """
3200
3215
  enum StoreStatus {
@@ -3202,7 +3217,7 @@ enum StoreStatus {
3202
3217
  WARNING
3203
3218
  ERROR
3204
3219
  }
3205
- `,co=`scalar JSONObject
3220
+ `,uo=`scalar JSONObject
3206
3221
 
3207
3222
  type UserOrder {
3208
3223
  orderId: String
@@ -4026,4 +4041,4 @@ type UserOrderBudgetAllocationLinkedEntity {
4026
4041
  type: String
4027
4042
  id: String
4028
4043
  }
4029
- `,lo=Object.assign({"./address.graphql":wa,"./advertisement.graphql":Aa,"./aggregateOffer.graphql":Da,"./aggregateRating.graphql":Pa,"./author.graphql":Ea,"./brand.graphql":ka,"./breadcrumb.graphql":Ta,"./cart.graphql":Ua,"./collection.graphql":_a,"./deliveryPromisesBadge.graphql":Ra,"./facet.graphql":Fa,"./image.graphql":Na,"./mutation.graphql":La,"./newsletter.graphql":Ba,"./objectOrString.graphql":$a,"./offer.graphql":Ma,"./order.graphql":za,"./orderCommercialAuthorizaton.graphql":Va,"./orderEntry.graphql":qa,"./organization.graphql":xa,"./pageInfo.graphql":ja,"./password.graphql":Wa,"./person.graphql":Ga,"./pickupPoints.graphql":Ha,"./product.graphql":Xa,"./productGroup.graphql":Ya,"./profile.graphql":Ja,"./propertyValue.graphql":Ka,"./query.graphql":Qa,"./quote.graphql":Za,"./recommendation.graphql":eo,"./review.graphql":no,"./savedCard.graphql":to,"./seo.graphql":ro,"./session.graphql":io,"./shipping.graphql":ao,"./skuVariants.graphql":oo,"./status.graphql":so,"./userOrder.graphql":co}),uo=pe.print(Object.values(lo).map(e=>pe.parse(e)).reduce((e,n)=>pn.mergeTypeDefs([e,n],{sort:!0}))),at=uo,po=async e=>n=>(n.storage={channel:oe.parse(e.channel),flags:e.flags??{},locale:e.locale,customSortMap:e.customSortMap??{},cookies:new Map},n.account=e.account,n.OTEL_ENABLED=e.OTEL_ENABLED,n.discoveryConfig=e.discoveryConfig,n.clients=or(e,n),n.loaders=fr(e,n),n);function go(){const e=ba(),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,ft(a,`${t}(${i})`)]));return n}function mo(e){const t=wn([bn,Cn])(go(),at);return e&&pe.isSchema(e)?gn.mergeSchemas({schemas:[t,e]}):t}exports.AuthDirective=Cn;exports.BadRequestError=E;exports.CacheControlDirective=bn;exports.CardOrigin=mn;exports.CommercialAuthorizationStatus=hn;exports.FastStoreError=q;exports.ForbiddenError=J;exports.GraphqlVtexContextFactory=po;exports.GraphqlVtexSchema=mo;exports.NotFoundError=$;exports.StoreCollectionType=fn;exports.StoreFacetType=Sn;exports.StoreSort=yn;exports.StoreStatus=In;exports.UnauthorizedError=re;exports.UserOrderInvoiceType=vn;exports.getAuthCookie=B;exports.isBadRequestError=yt;exports.isFastStoreError=St;exports.isForbiddenError=En;exports.isNotFoundError=X;exports.isUnauthorizedError=It;exports.stringifyCacheControl=mt;exports.typeDefs=at;exports.validateUserAuthentication=On;exports.withDirectives=wn;
4044
+ `,po=Object.assign({"./address.graphql":Da,"./advertisement.graphql":Pa,"./aggregateOffer.graphql":Ea,"./aggregateRating.graphql":ka,"./author.graphql":Ua,"./brand.graphql":Ta,"./breadcrumb.graphql":_a,"./cart.graphql":Ra,"./collection.graphql":Fa,"./deliveryPromisesBadge.graphql":Na,"./facet.graphql":La,"./image.graphql":Ba,"./mutation.graphql":$a,"./newsletter.graphql":za,"./objectOrString.graphql":Ma,"./offer.graphql":Va,"./order.graphql":qa,"./orderCommercialAuthorizaton.graphql":xa,"./orderEntry.graphql":ja,"./organization.graphql":Wa,"./pageInfo.graphql":Ha,"./password.graphql":Ga,"./person.graphql":Xa,"./pickupPoints.graphql":Ya,"./product.graphql":Ja,"./productGroup.graphql":Ka,"./profile.graphql":Qa,"./propertyValue.graphql":Za,"./query.graphql":eo,"./quote.graphql":no,"./recommendation.graphql":to,"./review.graphql":ro,"./savedCard.graphql":io,"./seo.graphql":ao,"./session.graphql":oo,"./shipping.graphql":so,"./skuVariants.graphql":co,"./status.graphql":lo,"./userOrder.graphql":uo}),go=me.print(Object.values(po).map(e=>me.parse(e)).reduce((e,n)=>gn.mergeTypeDefs([e,n],{sort:!0}))),st=go,mo=async e=>n=>(n.storage={channel:se.parse(e.channel),flags:e.flags??{},locale:e.locale,customSortMap:e.customSortMap??{},cookies:new Map},n.account=e.account,n.OTEL_ENABLED=e.OTEL_ENABLED,n.discoveryConfig=e.discoveryConfig,n.clients=cr(e,n),n.loaders=yr(e,n),n);function ho(){const e=Aa(),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,yt(a,`${t}(${i})`)]));return n}function fo(e){const t=An([wn,bn])(ho(),st);return e&&me.isSchema(e)?mn.mergeSchemas({schemas:[t,e]}):t}exports.AuthDirective=bn;exports.BadRequestError=U;exports.CacheControlDirective=wn;exports.CardOrigin=hn;exports.CommercialAuthorizationStatus=fn;exports.FastStoreError=q;exports.ForbiddenError=Q;exports.GraphqlVtexContextFactory=mo;exports.GraphqlVtexSchema=fo;exports.NotFoundError=$;exports.StoreCollectionType=Sn;exports.StoreFacetType=yn;exports.StoreSort=In;exports.StoreStatus=vn;exports.UnauthorizedError=re;exports.UserOrderInvoiceType=On;exports.getAuthCookie=B;exports.isBadRequestError=vt;exports.isFastStoreError=It;exports.isForbiddenError=kn;exports.isNotFoundError=J;exports.isUnauthorizedError=Ot;exports.stringifyCacheControl=ft;exports.typeDefs=st;exports.validateUserAuthentication=Cn;exports.withDirectives=An;