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