@faststore/api 1.7.42 → 1.7.43
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/CHANGELOG.md +11 -0
- package/dist/__generated__/schema.d.ts +4 -4
- package/dist/api.cjs.development.js +2 -2
- package/dist/api.cjs.production.min.js +1 -1
- package/dist/api.cjs.production.min.js.map +1 -1
- package/dist/api.esm.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/platforms/vtex/index.d.ts +2 -2
- package/dist/platforms/vtex/resolvers/query.d.ts +1 -1
- package/package.json +2 -2
- package/src/__generated__/schema.ts +4 -4
- package/src/typeDefs/query.graphql +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 1.7.43 (2022-04-28)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* api schema ([#1254](https://github.com/vtex/faststore/issues/1254)) ([c901b3d](https://github.com/vtex/faststore/commit/c901b3db8e002558e14101339c817ca87db8f949))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## 1.7.42 (2022-04-28)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -89,7 +89,7 @@ export declare type QueryProductArgs = {
|
|
|
89
89
|
};
|
|
90
90
|
export declare type QuerySearchArgs = {
|
|
91
91
|
after?: Maybe<Scalars['String']>;
|
|
92
|
-
first
|
|
92
|
+
first: Scalars['Int'];
|
|
93
93
|
selectedFacets?: Maybe<Array<IStoreSelectedFacet>>;
|
|
94
94
|
sort?: Maybe<StoreSort>;
|
|
95
95
|
term?: Maybe<Scalars['String']>;
|
|
@@ -282,9 +282,9 @@ export declare type StoreReviewRating = {
|
|
|
282
282
|
};
|
|
283
283
|
export declare type StoreSearchResult = {
|
|
284
284
|
__typename?: 'StoreSearchResult';
|
|
285
|
-
facets
|
|
286
|
-
products
|
|
287
|
-
suggestions
|
|
285
|
+
facets: Array<StoreFacet>;
|
|
286
|
+
products: StoreProductConnection;
|
|
287
|
+
suggestions: StoreSuggestions;
|
|
288
288
|
};
|
|
289
289
|
export declare type StoreSeo = {
|
|
290
290
|
__typename?: 'StoreSeo';
|
|
@@ -1399,8 +1399,8 @@ var doc$d = {"kind":"Document","definitions":[{"kind":"ObjectTypeDefinition","na
|
|
|
1399
1399
|
var doc$e = {"kind":"Document","definitions":[{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreProductGroup"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"hasVariant"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"productGroupID"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"name"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"additionalProperty"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePropertyValue"}}}}},"directives":[]}]}],"loc":{"start":0,"end":145}};
|
|
1400
1400
|
doc$e.loc.source = {"body":"type StoreProductGroup {\n hasVariant: [StoreProduct!]!\n productGroupID: String!\n name: String!\n additionalProperty: [StorePropertyValue!]!\n}\n","name":"GraphQL request","locationOffset":{"line":1,"column":1}};
|
|
1401
1401
|
|
|
1402
|
-
var doc$f = {"kind":"Document","definitions":[{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreProductEdge"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"node"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"cursor"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreProductConnection"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"pageInfo"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePageInfo"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"edges"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductEdge"}}}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreCollectionEdge"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"node"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"cursor"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreCollectionConnection"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"pageInfo"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePageInfo"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"edges"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollectionEdge"}}}}},"directives":[]}]},{"kind":"EnumTypeDefinition","name":{"kind":"Name","value":"StoreSort"},"directives":[],"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"price_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"price_asc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"orders_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"name_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"name_asc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"release_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"discount_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"score_desc"},"directives":[]}]},{"kind":"InputObjectTypeDefinition","name":{"kind":"Name","value":"IStoreSelectedFacet"},"directives":[],"fields":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"key"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"value"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"EnumTypeDefinition","name":{"kind":"Name","value":"StoreFacetType"},"directives":[],"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"BOOLEAN"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"RANGE"},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreSuggestions"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"terms"},"arguments":[],"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"products"},"arguments":[],"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreSearchResult"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"products"},"arguments":[],"type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductConnection"}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"facets"},"arguments":[],"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreFacet"}}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"suggestions"},"arguments":[],"type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSuggestions"}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"Query"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"product"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"locator"},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"IStoreSelectedFacet"}}}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"collection"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"slug"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"search"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"sort"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSort"}},"defaultValue":{"kind":"EnumValue","value":"score_desc"},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"term"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"selectedFacets"},"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"IStoreSelectedFacet"}}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSearchResult"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"allProducts"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductConnection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"allCollections"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollectionConnection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"person"},"arguments":[],"type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePerson"}},"directives":[]}]}],"loc":{"start":0,"end":
|
|
1403
|
-
doc$f.loc.source = {"body":"type StoreProductEdge {\n node: StoreProduct!\n cursor: String!\n}\n\ntype StoreProductConnection {\n pageInfo: StorePageInfo!\n edges: [StoreProductEdge!]!\n}\n\ntype StoreCollectionEdge {\n node: StoreCollection!\n cursor: String!\n}\n\ntype StoreCollectionConnection {\n pageInfo: StorePageInfo!\n edges: [StoreCollectionEdge!]!\n}\n\nenum StoreSort {\n price_desc\n price_asc\n orders_desc\n name_desc\n name_asc\n release_desc\n discount_desc\n score_desc\n}\n\ninput IStoreSelectedFacet {\n key: String!\n value: String!\n}\n\nenum StoreFacetType {\n BOOLEAN\n RANGE\n}\n\ntype StoreSuggestions {\n terms: [String!]\n products: [StoreProduct!]\n}\n\ntype StoreSearchResult {\n products: StoreProductConnection
|
|
1402
|
+
var doc$f = {"kind":"Document","definitions":[{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreProductEdge"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"node"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"cursor"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreProductConnection"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"pageInfo"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePageInfo"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"edges"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductEdge"}}}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreCollectionEdge"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"node"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"cursor"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreCollectionConnection"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"pageInfo"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePageInfo"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"edges"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollectionEdge"}}}}},"directives":[]}]},{"kind":"EnumTypeDefinition","name":{"kind":"Name","value":"StoreSort"},"directives":[],"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"price_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"price_asc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"orders_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"name_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"name_asc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"release_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"discount_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"score_desc"},"directives":[]}]},{"kind":"InputObjectTypeDefinition","name":{"kind":"Name","value":"IStoreSelectedFacet"},"directives":[],"fields":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"key"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"value"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"EnumTypeDefinition","name":{"kind":"Name","value":"StoreFacetType"},"directives":[],"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"BOOLEAN"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"RANGE"},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreSuggestions"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"terms"},"arguments":[],"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"products"},"arguments":[],"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreSearchResult"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"products"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductConnection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"facets"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreFacet"}}}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"suggestions"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSuggestions"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"Query"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"product"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"locator"},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"IStoreSelectedFacet"}}}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"collection"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"slug"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"search"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"sort"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSort"}},"defaultValue":{"kind":"EnumValue","value":"score_desc"},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"term"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"selectedFacets"},"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"IStoreSelectedFacet"}}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSearchResult"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"allProducts"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductConnection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"allCollections"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollectionConnection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"person"},"arguments":[],"type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePerson"}},"directives":[]}]}],"loc":{"start":0,"end":1207}};
|
|
1403
|
+
doc$f.loc.source = {"body":"type StoreProductEdge {\n node: StoreProduct!\n cursor: String!\n}\n\ntype StoreProductConnection {\n pageInfo: StorePageInfo!\n edges: [StoreProductEdge!]!\n}\n\ntype StoreCollectionEdge {\n node: StoreCollection!\n cursor: String!\n}\n\ntype StoreCollectionConnection {\n pageInfo: StorePageInfo!\n edges: [StoreCollectionEdge!]!\n}\n\nenum StoreSort {\n price_desc\n price_asc\n orders_desc\n name_desc\n name_asc\n release_desc\n discount_desc\n score_desc\n}\n\ninput IStoreSelectedFacet {\n key: String!\n value: String!\n}\n\nenum StoreFacetType {\n BOOLEAN\n RANGE\n}\n\ntype StoreSuggestions {\n terms: [String!]\n products: [StoreProduct!]\n}\n\ntype StoreSearchResult {\n products: StoreProductConnection!\n facets: [StoreFacet!]!\n suggestions: StoreSuggestions!\n}\n\ntype Query {\n product(locator: [IStoreSelectedFacet!]!): StoreProduct!\n\n collection(slug: String!): StoreCollection!\n\n search(\n first: Int!\n after: String\n sort: StoreSort = score_desc\n term: String = \"\"\n selectedFacets: [IStoreSelectedFacet!]\n ): StoreSearchResult!\n\n allProducts(first: Int!, after: String): StoreProductConnection!\n\n allCollections(first: Int!, after: String): StoreCollectionConnection!\n\n person: StorePerson\n}\n","name":"GraphQL request","locationOffset":{"line":1,"column":1}};
|
|
1404
1404
|
|
|
1405
1405
|
var doc$g = {"kind":"Document","definitions":[{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreReviewRating"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"ratingValue"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Float"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"bestRating"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Float"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreReview"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"reviewRating"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreReviewRating"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"author"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreAuthor"}}},"directives":[]}]}],"loc":{"start":0,"end":150}};
|
|
1406
1406
|
doc$g.loc.source = {"body":"type StoreReviewRating {\n ratingValue: Float!\n bestRating: Float!\n}\n\ntype StoreReview {\n reviewRating: StoreReviewRating!\n author: StoreAuthor!\n}\n","name":"GraphQL request","locationOffset":{"line":1,"column":1}};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n=require("@graphql-tools/schema"),i=e(require("isomorphic-unfetch")),t=e(require("dataloader")),a=e(require("p-limit")),d=e(require("fast-deep-equal")),r=require("graphql");const l=async(e,n)=>{const t=await i(e,n);if(t.ok)return 204!==t.status?t.json():void 0;console.error(e,n,t);const a=await t.text();throw new Error(a)},o={method:"POST",headers:{"content-type":"application/json"}},m=({account:e,environment:n,hideUnavailableItems:i},t)=>{const a=`https://${e}.${n}.com.br/api/io`,d={key:"trade-policy",value:t.storage.channel.salesChannel},r=({query:e="",page:n,count:t,sort:r="",selectedFacets:o=[],type:m,fuzzy:s="0"})=>{const u=new URLSearchParams({page:(n+1).toString(),count:t.toString(),query:e,sort:r,fuzzy:s});void 0!==i&&u.append("hideUnavailableItems",i.toString());const p=(c=o,void 0===c.find(({key:e})=>e===d.key)?[...c,d]:c).map(({key:e,value:n})=>`${e}/${n}`).join("/");var c;return l(`${a}/_v/api/intelligent-search/${m}/${p}?${u.toString()}`)};return{facets:e=>r({...e,type:"facets"}),products:e=>r({...e,type:"product_search"}),suggestedTerms:e=>l(`${a}/api/split/suggestion_search/?q=${e.query}`),suggestedProducts:e=>l(`${a}/api/suggestion_products/?term=${e.query}`)}},s=()=>(1e6*Math.random()).toFixed(0),u=e=>{let n=s(),i=Date.now();return()=>{var t;return t=i,(Date.now()-t)/1e3>e&&(n=s(),i=Date.now()),n}},p={anonymous:u(31536e3),session:u(1800)};class c extends Error{constructor(e){super(e),this.name="BadRequestError"}}class k extends Error{constructor(e){super(e),this.name="NotFoundError"}}const y=(e,n)=>({...e,isVariantOf:n}),N=new Set(["brand","category","department","subcategory"]),v=e=>"string"==typeof e.pageType&&N.has(e.pageType.toLowerCase()),f="ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆÍÌÎÏŇÑÓÖÒÔÕØŘŔŠŤÚŮÜÙÛÝŸŽáäâàãåčçćďéěëèêẽĕȇíìîïňñóöòôõøðřŕšťúůüùûýÿžþÞĐđ߯a",g=e=>"brand"===e.type||v(e)&&"brand"===e.pageType.toLowerCase(),S=e=>g(e)?(e=>e.replace(/[·/_,:]/,"-"))((e=>{let n=e.slice(0);for(let e=0;e<f.length;e++)n=n.replace(new RegExp(f.charAt(e),"g"),"AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa".charAt(e));return n})(e.name.replace(/,/g,"").replace(/[*+~.()'"!:@&\[\]`/ %$#?{}|><=_^]/g,"-"))).toLowerCase():v(e)?new URL("https://"+e.url).pathname.slice(1).toLowerCase():new URL(e.url).pathname.slice(1).toLowerCase(),T={id:({id:e})=>e.toString(),slug:e=>S(e),seo:e=>g(e)||v(e)?{title:e.title,description:e.metaTagDescription}:{title:e.Title,description:e.MetaTagDescription},type:e=>g(e)?"Brand":v(e)?e.pageType:0===e.level?"Department":"Category",meta:e=>{const n=S(e);return g(e)?{selectedFacets:[{key:"brand",value:n}]}:{selectedFacets:n.split("/").map((e,n)=>({key:"category-"+(n+1),value:e}))}},breadcrumbList:async(e,n,i)=>{const{loaders:{collectionLoader:t}}=i,a=S(e).split("/").filter(e=>Boolean(e)),d=a.map((e,n)=>a.slice(0,n+1).join("/")),r=await Promise.all(d.map(e=>t.load(e)));return{itemListElement:r.map((e,n)=>({item:new URL("https://"+e.url).pathname.toLowerCase(),name:e.name,position:n+1})),numberOfItems:r.length}}},D=e=>[e.itemOffered.sku,e.seller.identifier,e.price].join("::"),h=(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},index:n}),F=e=>({quantity:e.quantity,seller:e.seller.identifier,id:e.itemOffered.sku,index:e.index}),O=e=>e.reduce((e,n)=>{var i;const t=D(n);return e.set(t,null!=(i=e.get(t))?i:n),e},new Map);class I{static parse(e){try{var n,i;const t=JSON.parse(e);return{regionId:null!=(n=t.regionId)?n:"",salesChannel:null!=(i=t.salesChannel)?i:""}}catch(e){throw console.error(e),new Error("Malformed channel string")}}static stringify(e){return JSON.stringify(e)}}const b=(e,n)=>{e.storage={...e.storage,channel:I.parse(n)}},C=e=>e.sellers.find(e=>e.commertialOffer.AvailableQuantity>0),P=e=>e[0],V=(e,n)=>{var i,t;return null!=(i=null==(t=P(e.sellers))?void 0:t.commertialOffer[n])?i:0},L=e=>"sellers"in e,w=e=>"skuName"in e,E=e=>e?"https://schema.org/InStock":"https://schema.org/OutOfStock",q={imageText:"image",imageUrl:"https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg"},R=(e,n)=>`${e}-${n}`,j={sellerId:!0},A=({key:e,value:n})=>{switch(e){case"channel":{const e=I.parse(n),i=[{key:"trade-policy",value:e.salesChannel}];return e.regionId&&i.push({key:"region-id",value:e.regionId}),i}default:return{key:e,value:n}}},_={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:""},x={product:async(e,{locator:n},i)=>{var t;const a=null==(t=n.find(e=>"channel"===e.key))?void 0:t.value;a&&b(i,a);const{loaders:{skuLoader:d}}=i;return d.load(n.flatMap(A))},collection:(e,{slug:n},i)=>{const{loaders:{collectionLoader:t}}=i;return t.load(n)},search:async(e,{first:n,after:i,sort:t,term:a,selectedFacets:d},r)=>{var l,o;const m=null==d||null==(l=d.find(e=>"channel"===e.key))?void 0:l.value;m&&b(r,m);const s=i?Number(i):0;return{page:Math.ceil(s/n),count:n,query:a,sort:_[null!=t?t:"score_desc"],selectedFacets:null!=(o=null==d?void 0:d.flatMap(A))?o:[]}},allProducts:async(e,{first:n,after:i},t)=>{const{clients:{search:a}}=t,d=i?Number(i):0,r=await a.products({page:Math.ceil(d/n),count:n}),l=r.products.map(e=>e.items.map(n=>y(n,e))).flat().filter(e=>e.sellers.length>0);return{pageInfo:{hasNextPage:r.pagination.after.length>0,hasPreviousPage:r.pagination.before.length>0,startCursor:"0",endCursor:r.recordsFiltered.toString(),totalCount:r.recordsFiltered},edges:l.map((e,n)=>({node:e,cursor:(d+n).toString()}))}},allCollections:async(e,{first:n,after:i},t)=>{const{clients:{commerce:a}}=t,d=i?Number(i):0,[r,l]=await Promise.all([a.catalog.brand.list(),a.catalog.category.tree()]),o=[],m=(e,n)=>{o.push({...e,level:n});for(const i of e.children)m(i,n+1)};for(const e of l)m(e,0);const s=[...r.filter(e=>e.isActive).map(e=>({...e,type:"brand"})),...o].filter(e=>Boolean(T.slug(e,null,t,null)));return{pageInfo:{hasNextPage:s.length-d>n,hasPreviousPage:d>0,startCursor:"0",endCursor:(Math.min(n,s.length-d)-1).toString(),totalCount:s.length},edges:s.slice(d,d+n).map((e,n)=>({node:e,cursor:(d+n).toString()}))}},person:async(e,n,i)=>{var t,a,d,r,l,o,m,s;const{clients:{commerce:u}}=i,{namespaces:{profile:p=null}}=await u.session();return p&&{id:null!=(t=null==(a=p.id)?void 0:a.value)?t:"",email:null!=(d=null==(r=p.email)?void 0:r.value)?d:"",givenName:null!=(l=null==(o=p.firstName)?void 0:o.value)?l:"",familyName:null!=(m=null==(s=p.lastName)?void 0:s.value)?m:""}}},$=["departamento","Departamento"],G={StoreCollection:T,StoreAggregateOffer:{highPrice:({product:e})=>{var n;return null!=(n=e.isVariantOf.priceRange.sellingPrice.highPrice)?n:0},lowPrice:e=>{var n;return null!=(n=e.product.isVariantOf.priceRange.sellingPrice.lowPrice)?n:0},offerCount:({items:e})=>e.length,priceCurrency:()=>"",offers:({items:e,product:n})=>e.map(e=>({...e,product:n}))},StoreProduct:{productID:({itemId:e})=>e,name:({isVariantOf:e,name:n})=>null!=n?n:e.productName,slug:({isVariantOf:{linkText:e},itemId:n})=>R(e,n),description:({isVariantOf:{description:e}})=>e,seo:({isVariantOf:{description:e,productName:n}})=>({title:n,description:e}),brand:({isVariantOf:{brand:e}})=>({name:e}),breadcrumbList:({isVariantOf:{categories:e,productName:n,linkText:i},itemId:t})=>{return{itemListElement:[...e.reverse().map((e,n)=>{const i=e.split("/");return{name:i[i.length-2],item:e.toLowerCase(),position:n+1}}),{name:n,item:(a=i,d=t,`/${R(a,d)}/p`),position:e.length+1}],numberOfItems:e.length};var a,d},image:({images:e})=>{var n,i;return(null!=(i=e,n=Array.isArray(i)&&i.length>0?i:null)?n:[q]).map(({imageUrl:e,imageText:n})=>({alternateName:null!=n?n:"",url:e.replace("vteximg.com.br","vtexassets.com")}))},sku:({itemId:e})=>e,gtin:({referenceId:e})=>{var n,i;return null!=(n=null==(i=e[0])?void 0:i.Value)?n:""},review:()=>[],aggregateRating:()=>({}),offers:e=>{return{items:(n=e.isVariantOf.items,n.sort((e,n)=>C(e)&&!C(n)?-1:!C(e)&&C(n)?1:V(e,"Price")-V(n,"Price"))),product:e};var n},isVariantOf:e=>e,additionalProperty:({attributes:e=[]})=>e.map(e=>({name:e.key,value:e.value}))},StoreSeo:{title:({title:e})=>null!=e?e:"",description:({description:e})=>null!=e?e:"",titleTemplate:()=>"",canonical:()=>""},StoreFacet:{key:({key:e})=>null!=e?e:"",label:({name:e})=>null!=e?e:"unknown",values:({values:e})=>e,type:({type:e})=>"TEXT"===e?"BOOLEAN":"RANGE"},StoreFacetValue:{value:({value:e,range:n})=>{var i,t;return null!=e?e:`${null!=(i=null==n?void 0:n.from)?i:""}-to-${null!=(t=null==n?void 0:n.to)?t:""}`},label:({name:e})=>e||"unknown",selected:({selected:e})=>e,quantity:({quantity:e})=>e},StoreOffer:{priceCurrency:()=>"",priceValidUntil:e=>{var n,i,t;return L(e)?null!=(n=null==(i=P(e.sellers))?void 0:i.commertialOffer.PriceValidUntil)?n:"":w(e)?null!=(t=e.priceValidUntil)?t:"":null},itemCondition:()=>"https://schema.org/NewCondition",availability:async e=>L(e)?E(!!C(e)):w(e)?E("available"===e.availability):null,seller:e=>{var n,i;return L(e)?{identifier:null!=(n=null==(i=P(e.sellers))?void 0:i.sellerId)?n:""}:w(e)?{identifier:e.seller}:null},price:e=>L(e)?V(e,"spotPrice"):w(e)?e.price/100:null,sellingPrice:e=>L(e)?V(e,"Price"):w(e)?e.sellingPrice/100:null,listPrice:e=>L(e)?V(e,"ListPrice"):w(e)?e.listPrice/100:null,itemOffered:({product:e})=>e,quantity:e=>L(e)?e.sellers.reduce((e,n)=>e+n.commertialOffer.AvailableQuantity,0):w(e)?e.quantity:null},StoreAggregateRating:{ratingValue:()=>5,reviewCount:()=>0},StoreReview:{reviewRating:()=>({ratingValue:5,bestRating:5}),author:()=>({name:""})},StoreProductGroup:{hasVariant:e=>e.isVariantOf.items.map(n=>y(n,e.isVariantOf)),productGroupID:({isVariantOf:e})=>e.productId,name:({isVariantOf:e})=>e.productName,additionalProperty:({isVariantOf:{properties:e}})=>e.flatMap(e=>j[e.name]?[]:e.values.map(n=>({name:e.name,value:n})))},StoreSearchResult:{suggestions:async(e,n,i)=>{const{clients:{search:t}}=i,a=await t.suggestedTerms(e),d=(await t.suggestedProducts(e)).products.map(e=>{const[n]=e.items;return n&&y(n,e)}).filter(e=>!!e),{suggestion:{searches:r}}=a;return{terms:r.map(e=>e.term),products:d}},products:async(e,n,i)=>{const{clients:{search:t,sp:a}}=i,d=await t.products(e);e.query&&a.sendEvent({type:"search.query",text:e.query,misspelled:d.correction.misspelled,match:d.recordsFiltered,operator:d.operator}).catch(console.error);const r=d.products.map(e=>{const[n]=e.items;return n&&y(n,e)}).filter(e=>!!e);return{pageInfo:{hasNextPage:d.pagination.after.length>0,hasPreviousPage:d.pagination.before.length>0,startCursor:"0",endCursor:d.recordsFiltered.toString(),totalCount:d.recordsFiltered},edges:r.map((e,n)=>({node:e,cursor:n.toString()}))}},facets:async(e,n,i)=>{const{clients:{search:t}}=i,{facets:a}=await t.facets(e),d=!e.query,r=null==a?void 0:a.reduce((e,n)=>{const i=$.includes(n.name);return d&&i||(n.values.sort((e,n)=>{var i,t;const a=null!=(i=e.name)?i:"",d=null!=(t=n.name)?t:"";return a.localeCompare(d)}),e.push(n)),e},[]);return null!=r?r:[]}},Query:x,Mutation:{validateCart:async(e,{cart:{order:n}},i)=>{const{orderNumber:t,acceptedOffer:a}=n,{clients:{commerce:r},loaders:{skuLoader:l}}=i,o=await r.checkout.orderForm({id:t}),m=O(a),s=O(o.items.map(h)),u=Array.from(m.values()),p=Array.from(s.values()),{itemsToAdd:c,itemsToUpdate:k}=u.reduce((e,n)=>{const i=s.get(D(n));return i?e.itemsToUpdate.push({...i,quantity:n.quantity}):e.itemsToAdd.push(n),e},{itemsToAdd:[],itemsToUpdate:[]}),y=[...c,...k,...p.filter(e=>!m.has(D(e))).map(e=>({...e,quantity:0}))].map(F);if(0===y.length)return null;const N=await r.checkout.updateOrderFormItems({id:o.orderFormId,orderItems:y});return((e,n)=>{const i=(e,n)=>({...e,itemOffered:{sku:e.itemOffered.sku},index:n}),t=n.items.map(h).map(i),a=e.acceptedOffer.map(i),r=e.orderNumber===n.orderFormId,l=d(t,a);return r&&l})(n,N)?null:{order:{orderNumber:N.orderFormId,acceptedOffer:N.items.map(e=>({...e,product:l.load([{key:"id",value:e.id}])}))},messages:N.messages.map(({text:e,status:n})=>({text:e,status:n.toUpperCase()}))}},updateSession:async(e,{session:n},{clients:i})=>{var t,a,d,r;const l=I.parse(null!=(t=n.channel)?t:""),o=await i.commerce.checkout.region({postalCode:String(null!=(a=n.postalCode)?a:"").replace(/\D/g,""),country:null!=(d=n.country)?d:""});return{...n,channel:I.stringify({...l,regionId:null==o||null==(r=o[0])?void 0:r.id})}}}};var B={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreAggregateOffer"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"highPrice"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"lowPrice"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"offerCount"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"priceCurrency"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"offers"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreOffer"}}}}},directives:[]}]}],loc:{start:0,end:261}};B.loc.source={body:"type StoreAggregateOffer {\n # Highest spot price amongst all sellers\n highPrice: Float!\n # Lowest spot price amongst all sellers\n lowPrice: Float!\n # Number of sellers selling this sku\n offerCount: Int!\n priceCurrency: String!\n offers: [StoreOffer!]!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var Q={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreAggregateRating"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"ratingValue"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"reviewCount"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]}],loc:{start:0,end:72}};Q.loc.source={body:"type StoreAggregateRating {\n ratingValue: Float!\n reviewCount: Int!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var U={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreAuthor"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:37}};U.loc.source={body:"type StoreAuthor {\n name: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var M={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreBrand"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:36}};M.loc.source={body:"type StoreBrand {\n name: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var z={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreListItem"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"item"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"position"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreBreadcrumbList"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"itemListElement"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreListItem"}}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"numberOfItems"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]}],loc:{start:0,end:161}};z.loc.source={body:"type StoreListItem {\n item: String!\n name: String!\n position: Int!\n}\n\ntype StoreBreadcrumbList {\n itemListElement: [StoreListItem!]!\n numberOfItems: Int!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var J={kind:"Document",definitions:[{kind:"EnumTypeDefinition",name:{kind:"Name",value:"StoreCollectionType"},directives:[],values:[{kind:"EnumValueDefinition",name:{kind:"Name",value:"Department"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"Category"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"Brand"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"Cluster"},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCollectionFacet"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"key"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"value"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCollectionMeta"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"selectedFacets"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollectionFacet"}}}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCollection"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"seo"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreSeo"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"breadcrumbList"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreBreadcrumbList"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"meta"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollectionMeta"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"id"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"ID"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"slug"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"type"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollectionType"}}},directives:[]}]}],loc:{start:0,end:424}};J.loc.source={body:"enum StoreCollectionType {\n Department\n Category\n Brand\n Cluster\n}\n\ntype StoreCollectionFacet {\n key: String!\n value: String!\n}\n\ntype StoreCollectionMeta {\n selectedFacets: [StoreCollectionFacet!]!\n}\n\ntype StoreCollection {\n # Meta tag data\n seo: StoreSeo!\n # location for structured data\n breadcrumbList: StoreBreadcrumbList!\n meta: StoreCollectionMeta!\n id: ID!\n slug: String!\n type: StoreCollectionType!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var W={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreFacet"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"key"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"label"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"values"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreFacetValue"}}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"type"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreFacetType"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreFacetValue"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"value"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"label"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"selected"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Boolean"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"quantity"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]}],loc:{start:0,end:240}};W.loc.source={body:"type StoreFacet {\n key: String!\n label: String!\n values: [StoreFacetValue!]!\n type: StoreFacetType!\n}\n\ntype StoreFacetValue {\n value: String!\n label: String!\n selected: Boolean!\n # Number of items with this facet\n quantity: Int!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var H={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreImage"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"url"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"alternateName"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreImage"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"url"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"alternateName"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:123}};H.loc.source={body:"type StoreImage {\n url: String!\n alternateName: String!\n}\n\ninput IStoreImage {\n url: String!\n alternateName: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var Y={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreSession"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"channel"},arguments:[],type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"country"},arguments:[],type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"postalCode"},arguments:[],type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreSession"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"channel"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"country"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"postalCode"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"Mutation"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"validateCart"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"cart"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreCart"}}},directives:[]}],type:{kind:"NamedType",name:{kind:"Name",value:"StoreCart"}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"updateSession"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"session"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreSession"}}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreSession"}}},directives:[]}]}],loc:{start:0,end:367}};Y.loc.source={body:"type StoreSession {\n channel: String\n country: String\n postalCode: String\n}\n\ninput IStoreSession {\n channel: String\n country: String\n postalCode: String\n}\n\ntype Mutation {\n # Returns the order if anything changed with the order. Null if the order is valid\n validateCart(cart: IStoreCart!): StoreCart\n\n updateSession(session: IStoreSession!): StoreSession!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var K={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreOffer"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"listPrice"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"sellingPrice"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"priceCurrency"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"price"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"priceValidUntil"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"itemCondition"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"availability"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"seller"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreOrganization"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"itemOffered"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProduct"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"quantity"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreOffer"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"price"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"listPrice"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"seller"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreOrganization"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"itemOffered"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreProduct"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"quantity"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]}],loc:{start:0,end:419}};K.loc.source={body:"type StoreOffer {\n listPrice: Float!\n sellingPrice: Float!\n priceCurrency: String!\n # Also known as spotPrice\n price: Float!\n priceValidUntil: String!\n itemCondition: String!\n availability: String!\n seller: StoreOrganization!\n itemOffered: StoreProduct!\n quantity: Int!\n}\n\ninput IStoreOffer {\n price: Float!\n listPrice: Float!\n seller: IStoreOrganization!\n itemOffered: IStoreProduct!\n quantity: Int!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var X={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreOrder"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"orderNumber"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"acceptedOffer"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreOffer"}}}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreOrder"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"orderNumber"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"acceptedOffer"},type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreOffer"}}}}},directives:[]}]}],loc:{start:0,end:154}};X.loc.source={body:"type StoreOrder {\n orderNumber: String!\n acceptedOffer: [StoreOffer!]!\n}\n\ninput IStoreOrder {\n orderNumber: String!\n acceptedOffer: [IStoreOffer!]!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var Z={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreOrganization"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"identifier"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreOrganization"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"identifier"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:101}};Z.loc.source={body:"type StoreOrganization {\n identifier: String!\n}\n\ninput IStoreOrganization {\n identifier: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var ee={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StorePageInfo"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"hasNextPage"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Boolean"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"hasPreviousPage"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Boolean"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"startCursor"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"endCursor"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"totalCount"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]}],loc:{start:0,end:197}};ee.loc.source={body:"type StorePageInfo {\n hasNextPage: Boolean!\n hasPreviousPage: Boolean!\n startCursor: String!\n endCursor: String!\n # Total number of items(products/collections), not pages\n totalCount: Int!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var ne={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreProduct"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"seo"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreSeo"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"breadcrumbList"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreBreadcrumbList"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"slug"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"productID"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"brand"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreBrand"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"description"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"image"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreImage"}}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"offers"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreAggregateOffer"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"sku"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"gtin"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"review"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreReview"}}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"aggregateRating"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreAggregateRating"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"isVariantOf"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProductGroup"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"additionalProperty"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StorePropertyValue"}}}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreProduct"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"sku"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"name"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"image"},type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreImage"}}}}},directives:[]}]}],loc:{start:0,end:573}};ne.loc.source={body:"type StoreProduct {\n # Meta tag data\n seo: StoreSeo!\n # Location for structured data\n breadcrumbList: StoreBreadcrumbList!\n # Where to retrieve this entity\n slug: String!\n name: String!\n productID: String!\n brand: StoreBrand!\n description: String!\n image: [StoreImage!]!\n offers: StoreAggregateOffer!\n sku: String!\n gtin: String!\n review: [StoreReview!]!\n aggregateRating: StoreAggregateRating!\n isVariantOf: StoreProductGroup!\n additionalProperty: [StorePropertyValue!]!\n}\n\ninput IStoreProduct {\n sku: String!\n name: String!\n image: [IStoreImage!]!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var ie={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreProductGroup"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"hasVariant"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProduct"}}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"productGroupID"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"additionalProperty"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StorePropertyValue"}}}}},directives:[]}]}],loc:{start:0,end:145}};ie.loc.source={body:"type StoreProductGroup {\n hasVariant: [StoreProduct!]!\n productGroupID: String!\n name: String!\n additionalProperty: [StorePropertyValue!]!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var te={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreProductEdge"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"node"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProduct"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"cursor"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreProductConnection"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"pageInfo"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StorePageInfo"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"edges"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProductEdge"}}}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCollectionEdge"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"node"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollection"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"cursor"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCollectionConnection"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"pageInfo"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StorePageInfo"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"edges"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollectionEdge"}}}}},directives:[]}]},{kind:"EnumTypeDefinition",name:{kind:"Name",value:"StoreSort"},directives:[],values:[{kind:"EnumValueDefinition",name:{kind:"Name",value:"price_desc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"price_asc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"orders_desc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"name_desc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"name_asc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"release_desc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"discount_desc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"score_desc"},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreSelectedFacet"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"key"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"value"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"EnumTypeDefinition",name:{kind:"Name",value:"StoreFacetType"},directives:[],values:[{kind:"EnumValueDefinition",name:{kind:"Name",value:"BOOLEAN"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"RANGE"},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreSuggestions"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"terms"},arguments:[],type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"products"},arguments:[],type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProduct"}}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreSearchResult"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"products"},arguments:[],type:{kind:"NamedType",name:{kind:"Name",value:"StoreProductConnection"}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"facets"},arguments:[],type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreFacet"}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"suggestions"},arguments:[],type:{kind:"NamedType",name:{kind:"Name",value:"StoreSuggestions"}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"Query"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"product"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"locator"},type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreSelectedFacet"}}}}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProduct"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"collection"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"slug"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollection"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"search"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"first"},type:{kind:"NamedType",name:{kind:"Name",value:"Int"}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"after"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"sort"},type:{kind:"NamedType",name:{kind:"Name",value:"StoreSort"}},defaultValue:{kind:"EnumValue",value:"score_desc"},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"term"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},defaultValue:{kind:"StringValue",value:"",block:!1},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"selectedFacets"},type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreSelectedFacet"}}}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreSearchResult"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"allProducts"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"first"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"after"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProductConnection"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"allCollections"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"first"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"after"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollectionConnection"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"person"},arguments:[],type:{kind:"NamedType",name:{kind:"Name",value:"StorePerson"}},directives:[]}]}],loc:{start:0,end:1203}};te.loc.source={body:'type StoreProductEdge {\n node: StoreProduct!\n cursor: String!\n}\n\ntype StoreProductConnection {\n pageInfo: StorePageInfo!\n edges: [StoreProductEdge!]!\n}\n\ntype StoreCollectionEdge {\n node: StoreCollection!\n cursor: String!\n}\n\ntype StoreCollectionConnection {\n pageInfo: StorePageInfo!\n edges: [StoreCollectionEdge!]!\n}\n\nenum StoreSort {\n price_desc\n price_asc\n orders_desc\n name_desc\n name_asc\n release_desc\n discount_desc\n score_desc\n}\n\ninput IStoreSelectedFacet {\n key: String!\n value: String!\n}\n\nenum StoreFacetType {\n BOOLEAN\n RANGE\n}\n\ntype StoreSuggestions {\n terms: [String!]\n products: [StoreProduct!]\n}\n\ntype StoreSearchResult {\n products: StoreProductConnection\n facets: [StoreFacet!]\n suggestions: StoreSuggestions\n}\n\ntype Query {\n product(locator: [IStoreSelectedFacet!]!): StoreProduct!\n\n collection(slug: String!): StoreCollection!\n\n search(\n first: Int\n after: String\n sort: StoreSort = score_desc\n term: String = ""\n selectedFacets: [IStoreSelectedFacet!]\n ): StoreSearchResult!\n\n allProducts(first: Int!, after: String): StoreProductConnection!\n\n allCollections(first: Int!, after: String): StoreCollectionConnection!\n\n person: StorePerson\n}\n',name:"GraphQL request",locationOffset:{line:1,column:1}};var ae={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreReviewRating"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"ratingValue"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"bestRating"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreReview"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"reviewRating"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreReviewRating"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"author"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreAuthor"}}},directives:[]}]}],loc:{start:0,end:150}};ae.loc.source={body:"type StoreReviewRating {\n ratingValue: Float!\n bestRating: Float!\n}\n\ntype StoreReview {\n reviewRating: StoreReviewRating!\n author: StoreAuthor!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var de={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreSeo"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"title"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"titleTemplate"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"description"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"canonical"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:104}};de.loc.source={body:"type StoreSeo {\n title: String!\n titleTemplate: String!\n description: String!\n canonical: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var re={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCartMessage"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"text"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"status"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreStatus"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCart"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"order"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreOrder"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"messages"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCartMessage"}}}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreCart"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"order"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreOrder"}}},directives:[]}]}],loc:{start:0,end:183}};re.loc.source={body:"type StoreCartMessage {\n text: String!\n status: StoreStatus!\n}\n\ntype StoreCart {\n order: StoreOrder!\n messages: [StoreCartMessage!]!\n}\n\ninput IStoreCart {\n order: IStoreOrder!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var le={kind:"Document",definitions:[{kind:"EnumTypeDefinition",name:{kind:"Name",value:"StoreStatus"},directives:[],values:[{kind:"EnumValueDefinition",name:{kind:"Name",value:"INFO"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"WARNING"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"ERROR"},directives:[]}]}],loc:{start:0,end:46}};le.loc.source={body:"enum StoreStatus {\n INFO\n WARNING\n ERROR\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var oe={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StorePropertyValue"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"value"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:61}};oe.loc.source={body:"type StorePropertyValue {\n value: String!\n name: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var me={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StorePerson"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"id"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"email"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"givenName"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"familyName"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:95}};me.loc.source={body:"type StorePerson {\n id: String!\n email: String!\n givenName: String!\n familyName: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};const se=[te,Y,M,z,J,W,H,ee,ne,de,K,Q,ae,U,ie,Z,B,X,re,le,oe,me].map(r.print).join("\n"),ue={vtex:{getResolvers:e=>G,getContextFactory:e=>n=>(n.storage={channel:I.parse(e.channel)},n.clients=((e,n)=>({search:m(e,n),commerce:(({account:e,environment:n},i)=>{const t=`https://${e}.${n}.com.br`;return{catalog:{brand:{list:()=>l(t+"/api/catalog_system/pub/brand/list")},category:{tree:(e=3)=>l(`${t}/api/catalog_system/pub/category/tree/${e}`)},portal:{pagetype:e=>l(`${t}/api/catalog_system/pub/portal/pagetype/${e}`)}},checkout:{simulation:(e,{salesChannel:n}=i.storage.channel)=>{const a=new URLSearchParams({sc:n});return l(`${t}/api/checkout/pub/orderForms/simulation?${a.toString()}`,{...o,body:JSON.stringify(e)})},orderForm:({id:e,refreshOutdatedData:n=!0,channel:a=i.storage.channel})=>{const{salesChannel:d}=a,r=new URLSearchParams({refreshOutdatedData:n.toString(),sc:d});return l(`${t}/api/checkout/pub/orderForm/${e}?${r.toString()}`,o)},updateOrderFormItems:({id:e,orderItems:n,allowOutdatedData:a="paymentData",salesChannel:d=i.storage.channel.salesChannel})=>{const r=new URLSearchParams({allowOutdatedData:a,sc:d});return l(`${t}/api/checkout/pub/orderForm/${e}/items?${r}`,{...o,body:JSON.stringify({orderItems:n}),method:"PATCH"})},region:async({postalCode:e,country:n,salesChannel:i})=>l(`${t}/api/checkout/pub/regions/?postalCode=${e}&country=${n}&sc=${null!=i?i:""}`)},session:()=>l(t+"/api/sessions?items=profile.id,profile.email,profile.firstName,profile.lastName",{method:"POST",headers:{"content-type":"application/json",cookie:i.headers.cookie},body:"{}"})}})(e,n),sp:(({account:e},n)=>{const i=`https://sp.vtex.com/event-api/v1/${e}/event`;return{sendEvent:e=>l(i,{method:"POST",body:JSON.stringify({...e,agent:"@faststore/api",anonymous:p.anonymous(),session:p.session()}),headers:{"content-type":"application/json"}})}})(e)}))(e,n),n.loaders=((e,{clients:n})=>({skuLoader:((e,n)=>new t(async e=>{const i=e.map(e=>{const n=e.find(({key:e})=>"id"===e);if(!n)throw new c("Error while loading SKU. Needs to pass an id to selected facets");return n.value}),{products:t}=await n.search.products({query:"sku:"+i.join(";"),page:0,count:i.length}),a=t.reduce((e,n)=>{for(const i of n.items)e[i.itemId]=y(i,n);return e},{}),d=i.map(e=>a[e]),r=d.filter(e=>!e);if(r.length>0)throw new Error("Search API did not return the following skus: "+r.join(","));return d},{maxBatchSize:99}))(0,n),simulationLoader:((e,n)=>{const i=a(1),d=async e=>{const i=[...e.flat()],t=await n.commerce.checkout.simulation({items:i}),a=t.items.reduce((e,n)=>{const i=n.requestIndex;return"number"==typeof i&&i<e.length&&(e[i]=n),e},Array(i.length).fill(null)),d=e.reduce((e,n)=>[...e,n.length+e[e.length-1]],[0]);return e.map((e,n)=>({...t,items:a.slice(d[n],d[n+1]).filter(e=>Boolean(e))}))};return new t(async e=>i(d,e),{maxBatchSize:50})})(0,n),collectionLoader:((e,n)=>{const i=a(20);return new t(async e=>Promise.all(e.map(e=>i(async()=>{const i=await n.commerce.catalog.portal.pagetype(e);if(v(i))return i;throw new k(`Catalog returned ${i.pageType} for slug: ${e}. This usually happens when there is more than one category with the same name in the same category tree level.`)}))),{batch:!1})})(0,n)}))(0,n),n)}},pe=e=>ue[e.platform].getResolvers(e);exports.getContextFactory=e=>ue[e.platform].getContextFactory(e),exports.getResolvers=pe,exports.getSchema=async e=>n.makeExecutableSchema({resolvers:pe(e),typeDefs:se}),exports.getTypeDefs=()=>se;
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n=require("@graphql-tools/schema"),i=e(require("isomorphic-unfetch")),t=e(require("dataloader")),a=e(require("p-limit")),d=e(require("fast-deep-equal")),r=require("graphql");const l=async(e,n)=>{const t=await i(e,n);if(t.ok)return 204!==t.status?t.json():void 0;console.error(e,n,t);const a=await t.text();throw new Error(a)},o={method:"POST",headers:{"content-type":"application/json"}},m=({account:e,environment:n,hideUnavailableItems:i},t)=>{const a=`https://${e}.${n}.com.br/api/io`,d={key:"trade-policy",value:t.storage.channel.salesChannel},r=({query:e="",page:n,count:t,sort:r="",selectedFacets:o=[],type:m,fuzzy:u="0"})=>{const s=new URLSearchParams({page:(n+1).toString(),count:t.toString(),query:e,sort:r,fuzzy:u});void 0!==i&&s.append("hideUnavailableItems",i.toString());const p=(c=o,void 0===c.find(({key:e})=>e===d.key)?[...c,d]:c).map(({key:e,value:n})=>`${e}/${n}`).join("/");var c;return l(`${a}/_v/api/intelligent-search/${m}/${p}?${s.toString()}`)};return{facets:e=>r({...e,type:"facets"}),products:e=>r({...e,type:"product_search"}),suggestedTerms:e=>l(`${a}/api/split/suggestion_search/?q=${e.query}`),suggestedProducts:e=>l(`${a}/api/suggestion_products/?term=${e.query}`)}},u=()=>(1e6*Math.random()).toFixed(0),s=e=>{let n=u(),i=Date.now();return()=>{var t;return t=i,(Date.now()-t)/1e3>e&&(n=u(),i=Date.now()),n}},p={anonymous:s(31536e3),session:s(1800)};class c extends Error{constructor(e){super(e),this.name="BadRequestError"}}class k extends Error{constructor(e){super(e),this.name="NotFoundError"}}const y=(e,n)=>({...e,isVariantOf:n}),N=new Set(["brand","category","department","subcategory"]),v=e=>"string"==typeof e.pageType&&N.has(e.pageType.toLowerCase()),f="ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆÍÌÎÏŇÑÓÖÒÔÕØŘŔŠŤÚŮÜÙÛÝŸŽáäâàãåčçćďéěëèêẽĕȇíìîïňñóöòôõøðřŕšťúůüùûýÿžþÞĐđ߯a",g=e=>"brand"===e.type||v(e)&&"brand"===e.pageType.toLowerCase(),S=e=>g(e)?(e=>e.replace(/[·/_,:]/,"-"))((e=>{let n=e.slice(0);for(let e=0;e<f.length;e++)n=n.replace(new RegExp(f.charAt(e),"g"),"AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa".charAt(e));return n})(e.name.replace(/,/g,"").replace(/[*+~.()'"!:@&\[\]`/ %$#?{}|><=_^]/g,"-"))).toLowerCase():v(e)?new URL("https://"+e.url).pathname.slice(1).toLowerCase():new URL(e.url).pathname.slice(1).toLowerCase(),T={id:({id:e})=>e.toString(),slug:e=>S(e),seo:e=>g(e)||v(e)?{title:e.title,description:e.metaTagDescription}:{title:e.Title,description:e.MetaTagDescription},type:e=>g(e)?"Brand":v(e)?e.pageType:0===e.level?"Department":"Category",meta:e=>{const n=S(e);return g(e)?{selectedFacets:[{key:"brand",value:n}]}:{selectedFacets:n.split("/").map((e,n)=>({key:"category-"+(n+1),value:e}))}},breadcrumbList:async(e,n,i)=>{const{loaders:{collectionLoader:t}}=i,a=S(e).split("/").filter(e=>Boolean(e)),d=a.map((e,n)=>a.slice(0,n+1).join("/")),r=await Promise.all(d.map(e=>t.load(e)));return{itemListElement:r.map((e,n)=>({item:new URL("https://"+e.url).pathname.toLowerCase(),name:e.name,position:n+1})),numberOfItems:r.length}}},D=e=>[e.itemOffered.sku,e.seller.identifier,e.price].join("::"),h=(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},index:n}),F=e=>({quantity:e.quantity,seller:e.seller.identifier,id:e.itemOffered.sku,index:e.index}),O=e=>e.reduce((e,n)=>{var i;const t=D(n);return e.set(t,null!=(i=e.get(t))?i:n),e},new Map);class I{static parse(e){try{var n,i;const t=JSON.parse(e);return{regionId:null!=(n=t.regionId)?n:"",salesChannel:null!=(i=t.salesChannel)?i:""}}catch(e){throw console.error(e),new Error("Malformed channel string")}}static stringify(e){return JSON.stringify(e)}}const b=(e,n)=>{e.storage={...e.storage,channel:I.parse(n)}},C=e=>e.sellers.find(e=>e.commertialOffer.AvailableQuantity>0),P=e=>e[0],V=(e,n)=>{var i,t;return null!=(i=null==(t=P(e.sellers))?void 0:t.commertialOffer[n])?i:0},L=e=>"sellers"in e,w=e=>"skuName"in e,E=e=>e?"https://schema.org/InStock":"https://schema.org/OutOfStock",q={imageText:"image",imageUrl:"https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg"},R=(e,n)=>`${e}-${n}`,j={sellerId:!0},A=({key:e,value:n})=>{switch(e){case"channel":{const e=I.parse(n),i=[{key:"trade-policy",value:e.salesChannel}];return e.regionId&&i.push({key:"region-id",value:e.regionId}),i}default:return{key:e,value:n}}},_={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:""},x={product:async(e,{locator:n},i)=>{var t;const a=null==(t=n.find(e=>"channel"===e.key))?void 0:t.value;a&&b(i,a);const{loaders:{skuLoader:d}}=i;return d.load(n.flatMap(A))},collection:(e,{slug:n},i)=>{const{loaders:{collectionLoader:t}}=i;return t.load(n)},search:async(e,{first:n,after:i,sort:t,term:a,selectedFacets:d},r)=>{var l,o;const m=null==d||null==(l=d.find(e=>"channel"===e.key))?void 0:l.value;m&&b(r,m);const u=i?Number(i):0;return{page:Math.ceil(u/n),count:n,query:a,sort:_[null!=t?t:"score_desc"],selectedFacets:null!=(o=null==d?void 0:d.flatMap(A))?o:[]}},allProducts:async(e,{first:n,after:i},t)=>{const{clients:{search:a}}=t,d=i?Number(i):0,r=await a.products({page:Math.ceil(d/n),count:n}),l=r.products.map(e=>e.items.map(n=>y(n,e))).flat().filter(e=>e.sellers.length>0);return{pageInfo:{hasNextPage:r.pagination.after.length>0,hasPreviousPage:r.pagination.before.length>0,startCursor:"0",endCursor:r.recordsFiltered.toString(),totalCount:r.recordsFiltered},edges:l.map((e,n)=>({node:e,cursor:(d+n).toString()}))}},allCollections:async(e,{first:n,after:i},t)=>{const{clients:{commerce:a}}=t,d=i?Number(i):0,[r,l]=await Promise.all([a.catalog.brand.list(),a.catalog.category.tree()]),o=[],m=(e,n)=>{o.push({...e,level:n});for(const i of e.children)m(i,n+1)};for(const e of l)m(e,0);const u=[...r.filter(e=>e.isActive).map(e=>({...e,type:"brand"})),...o].filter(e=>Boolean(T.slug(e,null,t,null)));return{pageInfo:{hasNextPage:u.length-d>n,hasPreviousPage:d>0,startCursor:"0",endCursor:(Math.min(n,u.length-d)-1).toString(),totalCount:u.length},edges:u.slice(d,d+n).map((e,n)=>({node:e,cursor:(d+n).toString()}))}},person:async(e,n,i)=>{var t,a,d,r,l,o,m,u;const{clients:{commerce:s}}=i,{namespaces:{profile:p=null}}=await s.session();return p&&{id:null!=(t=null==(a=p.id)?void 0:a.value)?t:"",email:null!=(d=null==(r=p.email)?void 0:r.value)?d:"",givenName:null!=(l=null==(o=p.firstName)?void 0:o.value)?l:"",familyName:null!=(m=null==(u=p.lastName)?void 0:u.value)?m:""}}},$=["departamento","Departamento"],G={StoreCollection:T,StoreAggregateOffer:{highPrice:({product:e})=>{var n;return null!=(n=e.isVariantOf.priceRange.sellingPrice.highPrice)?n:0},lowPrice:e=>{var n;return null!=(n=e.product.isVariantOf.priceRange.sellingPrice.lowPrice)?n:0},offerCount:({items:e})=>e.length,priceCurrency:()=>"",offers:({items:e,product:n})=>e.map(e=>({...e,product:n}))},StoreProduct:{productID:({itemId:e})=>e,name:({isVariantOf:e,name:n})=>null!=n?n:e.productName,slug:({isVariantOf:{linkText:e},itemId:n})=>R(e,n),description:({isVariantOf:{description:e}})=>e,seo:({isVariantOf:{description:e,productName:n}})=>({title:n,description:e}),brand:({isVariantOf:{brand:e}})=>({name:e}),breadcrumbList:({isVariantOf:{categories:e,productName:n,linkText:i},itemId:t})=>{return{itemListElement:[...e.reverse().map((e,n)=>{const i=e.split("/");return{name:i[i.length-2],item:e.toLowerCase(),position:n+1}}),{name:n,item:(a=i,d=t,`/${R(a,d)}/p`),position:e.length+1}],numberOfItems:e.length};var a,d},image:({images:e})=>{var n,i;return(null!=(i=e,n=Array.isArray(i)&&i.length>0?i:null)?n:[q]).map(({imageUrl:e,imageText:n})=>({alternateName:null!=n?n:"",url:e.replace("vteximg.com.br","vtexassets.com")}))},sku:({itemId:e})=>e,gtin:({referenceId:e})=>{var n,i;return null!=(n=null==(i=e[0])?void 0:i.Value)?n:""},review:()=>[],aggregateRating:()=>({}),offers:e=>{return{items:(n=e.isVariantOf.items,n.sort((e,n)=>C(e)&&!C(n)?-1:!C(e)&&C(n)?1:V(e,"Price")-V(n,"Price"))),product:e};var n},isVariantOf:e=>e,additionalProperty:({attributes:e=[]})=>e.map(e=>({name:e.key,value:e.value}))},StoreSeo:{title:({title:e})=>null!=e?e:"",description:({description:e})=>null!=e?e:"",titleTemplate:()=>"",canonical:()=>""},StoreFacet:{key:({key:e})=>null!=e?e:"",label:({name:e})=>null!=e?e:"unknown",values:({values:e})=>e,type:({type:e})=>"TEXT"===e?"BOOLEAN":"RANGE"},StoreFacetValue:{value:({value:e,range:n})=>{var i,t;return null!=e?e:`${null!=(i=null==n?void 0:n.from)?i:""}-to-${null!=(t=null==n?void 0:n.to)?t:""}`},label:({name:e})=>e||"unknown",selected:({selected:e})=>e,quantity:({quantity:e})=>e},StoreOffer:{priceCurrency:()=>"",priceValidUntil:e=>{var n,i,t;return L(e)?null!=(n=null==(i=P(e.sellers))?void 0:i.commertialOffer.PriceValidUntil)?n:"":w(e)?null!=(t=e.priceValidUntil)?t:"":null},itemCondition:()=>"https://schema.org/NewCondition",availability:async e=>L(e)?E(!!C(e)):w(e)?E("available"===e.availability):null,seller:e=>{var n,i;return L(e)?{identifier:null!=(n=null==(i=P(e.sellers))?void 0:i.sellerId)?n:""}:w(e)?{identifier:e.seller}:null},price:e=>L(e)?V(e,"spotPrice"):w(e)?e.price/100:null,sellingPrice:e=>L(e)?V(e,"Price"):w(e)?e.sellingPrice/100:null,listPrice:e=>L(e)?V(e,"ListPrice"):w(e)?e.listPrice/100:null,itemOffered:({product:e})=>e,quantity:e=>L(e)?e.sellers.reduce((e,n)=>e+n.commertialOffer.AvailableQuantity,0):w(e)?e.quantity:null},StoreAggregateRating:{ratingValue:()=>5,reviewCount:()=>0},StoreReview:{reviewRating:()=>({ratingValue:5,bestRating:5}),author:()=>({name:""})},StoreProductGroup:{hasVariant:e=>e.isVariantOf.items.map(n=>y(n,e.isVariantOf)),productGroupID:({isVariantOf:e})=>e.productId,name:({isVariantOf:e})=>e.productName,additionalProperty:({isVariantOf:{properties:e}})=>e.flatMap(e=>j[e.name]?[]:e.values.map(n=>({name:e.name,value:n})))},StoreSearchResult:{suggestions:async(e,n,i)=>{const{clients:{search:t}}=i,a=await t.suggestedTerms(e),d=(await t.suggestedProducts(e)).products.map(e=>{const[n]=e.items;return n&&y(n,e)}).filter(e=>!!e),{suggestion:{searches:r}}=a;return{terms:r.map(e=>e.term),products:d}},products:async(e,n,i)=>{const{clients:{search:t,sp:a}}=i,d=await t.products(e);e.query&&a.sendEvent({type:"search.query",text:e.query,misspelled:d.correction.misspelled,match:d.recordsFiltered,operator:d.operator}).catch(console.error);const r=d.products.map(e=>{const[n]=e.items;return n&&y(n,e)}).filter(e=>!!e);return{pageInfo:{hasNextPage:d.pagination.after.length>0,hasPreviousPage:d.pagination.before.length>0,startCursor:"0",endCursor:d.recordsFiltered.toString(),totalCount:d.recordsFiltered},edges:r.map((e,n)=>({node:e,cursor:n.toString()}))}},facets:async(e,n,i)=>{const{clients:{search:t}}=i,{facets:a}=await t.facets(e),d=!e.query,r=null==a?void 0:a.reduce((e,n)=>{const i=$.includes(n.name);return d&&i||(n.values.sort((e,n)=>{var i,t;const a=null!=(i=e.name)?i:"",d=null!=(t=n.name)?t:"";return a.localeCompare(d)}),e.push(n)),e},[]);return null!=r?r:[]}},Query:x,Mutation:{validateCart:async(e,{cart:{order:n}},i)=>{const{orderNumber:t,acceptedOffer:a}=n,{clients:{commerce:r},loaders:{skuLoader:l}}=i,o=await r.checkout.orderForm({id:t}),m=O(a),u=O(o.items.map(h)),s=Array.from(m.values()),p=Array.from(u.values()),{itemsToAdd:c,itemsToUpdate:k}=s.reduce((e,n)=>{const i=u.get(D(n));return i?e.itemsToUpdate.push({...i,quantity:n.quantity}):e.itemsToAdd.push(n),e},{itemsToAdd:[],itemsToUpdate:[]}),y=[...c,...k,...p.filter(e=>!m.has(D(e))).map(e=>({...e,quantity:0}))].map(F);if(0===y.length)return null;const N=await r.checkout.updateOrderFormItems({id:o.orderFormId,orderItems:y});return((e,n)=>{const i=(e,n)=>({...e,itemOffered:{sku:e.itemOffered.sku},index:n}),t=n.items.map(h).map(i),a=e.acceptedOffer.map(i),r=e.orderNumber===n.orderFormId,l=d(t,a);return r&&l})(n,N)?null:{order:{orderNumber:N.orderFormId,acceptedOffer:N.items.map(e=>({...e,product:l.load([{key:"id",value:e.id}])}))},messages:N.messages.map(({text:e,status:n})=>({text:e,status:n.toUpperCase()}))}},updateSession:async(e,{session:n},{clients:i})=>{var t,a,d,r;const l=I.parse(null!=(t=n.channel)?t:""),o=await i.commerce.checkout.region({postalCode:String(null!=(a=n.postalCode)?a:"").replace(/\D/g,""),country:null!=(d=n.country)?d:""});return{...n,channel:I.stringify({...l,regionId:null==o||null==(r=o[0])?void 0:r.id})}}}};var B={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreAggregateOffer"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"highPrice"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"lowPrice"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"offerCount"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"priceCurrency"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"offers"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreOffer"}}}}},directives:[]}]}],loc:{start:0,end:261}};B.loc.source={body:"type StoreAggregateOffer {\n # Highest spot price amongst all sellers\n highPrice: Float!\n # Lowest spot price amongst all sellers\n lowPrice: Float!\n # Number of sellers selling this sku\n offerCount: Int!\n priceCurrency: String!\n offers: [StoreOffer!]!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var Q={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreAggregateRating"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"ratingValue"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"reviewCount"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]}],loc:{start:0,end:72}};Q.loc.source={body:"type StoreAggregateRating {\n ratingValue: Float!\n reviewCount: Int!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var U={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreAuthor"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:37}};U.loc.source={body:"type StoreAuthor {\n name: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var M={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreBrand"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:36}};M.loc.source={body:"type StoreBrand {\n name: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var z={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreListItem"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"item"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"position"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreBreadcrumbList"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"itemListElement"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreListItem"}}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"numberOfItems"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]}],loc:{start:0,end:161}};z.loc.source={body:"type StoreListItem {\n item: String!\n name: String!\n position: Int!\n}\n\ntype StoreBreadcrumbList {\n itemListElement: [StoreListItem!]!\n numberOfItems: Int!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var J={kind:"Document",definitions:[{kind:"EnumTypeDefinition",name:{kind:"Name",value:"StoreCollectionType"},directives:[],values:[{kind:"EnumValueDefinition",name:{kind:"Name",value:"Department"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"Category"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"Brand"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"Cluster"},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCollectionFacet"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"key"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"value"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCollectionMeta"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"selectedFacets"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollectionFacet"}}}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCollection"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"seo"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreSeo"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"breadcrumbList"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreBreadcrumbList"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"meta"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollectionMeta"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"id"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"ID"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"slug"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"type"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollectionType"}}},directives:[]}]}],loc:{start:0,end:424}};J.loc.source={body:"enum StoreCollectionType {\n Department\n Category\n Brand\n Cluster\n}\n\ntype StoreCollectionFacet {\n key: String!\n value: String!\n}\n\ntype StoreCollectionMeta {\n selectedFacets: [StoreCollectionFacet!]!\n}\n\ntype StoreCollection {\n # Meta tag data\n seo: StoreSeo!\n # location for structured data\n breadcrumbList: StoreBreadcrumbList!\n meta: StoreCollectionMeta!\n id: ID!\n slug: String!\n type: StoreCollectionType!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var W={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreFacet"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"key"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"label"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"values"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreFacetValue"}}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"type"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreFacetType"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreFacetValue"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"value"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"label"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"selected"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Boolean"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"quantity"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]}],loc:{start:0,end:240}};W.loc.source={body:"type StoreFacet {\n key: String!\n label: String!\n values: [StoreFacetValue!]!\n type: StoreFacetType!\n}\n\ntype StoreFacetValue {\n value: String!\n label: String!\n selected: Boolean!\n # Number of items with this facet\n quantity: Int!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var H={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreImage"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"url"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"alternateName"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreImage"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"url"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"alternateName"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:123}};H.loc.source={body:"type StoreImage {\n url: String!\n alternateName: String!\n}\n\ninput IStoreImage {\n url: String!\n alternateName: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var Y={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreSession"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"channel"},arguments:[],type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"country"},arguments:[],type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"postalCode"},arguments:[],type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreSession"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"channel"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"country"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"postalCode"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"Mutation"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"validateCart"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"cart"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreCart"}}},directives:[]}],type:{kind:"NamedType",name:{kind:"Name",value:"StoreCart"}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"updateSession"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"session"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreSession"}}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreSession"}}},directives:[]}]}],loc:{start:0,end:367}};Y.loc.source={body:"type StoreSession {\n channel: String\n country: String\n postalCode: String\n}\n\ninput IStoreSession {\n channel: String\n country: String\n postalCode: String\n}\n\ntype Mutation {\n # Returns the order if anything changed with the order. Null if the order is valid\n validateCart(cart: IStoreCart!): StoreCart\n\n updateSession(session: IStoreSession!): StoreSession!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var K={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreOffer"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"listPrice"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"sellingPrice"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"priceCurrency"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"price"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"priceValidUntil"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"itemCondition"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"availability"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"seller"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreOrganization"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"itemOffered"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProduct"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"quantity"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreOffer"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"price"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"listPrice"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"seller"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreOrganization"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"itemOffered"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreProduct"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"quantity"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]}],loc:{start:0,end:419}};K.loc.source={body:"type StoreOffer {\n listPrice: Float!\n sellingPrice: Float!\n priceCurrency: String!\n # Also known as spotPrice\n price: Float!\n priceValidUntil: String!\n itemCondition: String!\n availability: String!\n seller: StoreOrganization!\n itemOffered: StoreProduct!\n quantity: Int!\n}\n\ninput IStoreOffer {\n price: Float!\n listPrice: Float!\n seller: IStoreOrganization!\n itemOffered: IStoreProduct!\n quantity: Int!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var X={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreOrder"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"orderNumber"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"acceptedOffer"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreOffer"}}}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreOrder"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"orderNumber"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"acceptedOffer"},type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreOffer"}}}}},directives:[]}]}],loc:{start:0,end:154}};X.loc.source={body:"type StoreOrder {\n orderNumber: String!\n acceptedOffer: [StoreOffer!]!\n}\n\ninput IStoreOrder {\n orderNumber: String!\n acceptedOffer: [IStoreOffer!]!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var Z={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreOrganization"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"identifier"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreOrganization"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"identifier"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:101}};Z.loc.source={body:"type StoreOrganization {\n identifier: String!\n}\n\ninput IStoreOrganization {\n identifier: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var ee={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StorePageInfo"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"hasNextPage"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Boolean"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"hasPreviousPage"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Boolean"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"startCursor"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"endCursor"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"totalCount"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]}]}],loc:{start:0,end:197}};ee.loc.source={body:"type StorePageInfo {\n hasNextPage: Boolean!\n hasPreviousPage: Boolean!\n startCursor: String!\n endCursor: String!\n # Total number of items(products/collections), not pages\n totalCount: Int!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var ne={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreProduct"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"seo"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreSeo"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"breadcrumbList"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreBreadcrumbList"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"slug"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"productID"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"brand"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreBrand"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"description"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"image"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreImage"}}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"offers"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreAggregateOffer"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"sku"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"gtin"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"review"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreReview"}}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"aggregateRating"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreAggregateRating"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"isVariantOf"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProductGroup"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"additionalProperty"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StorePropertyValue"}}}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreProduct"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"sku"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"name"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"image"},type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreImage"}}}}},directives:[]}]}],loc:{start:0,end:573}};ne.loc.source={body:"type StoreProduct {\n # Meta tag data\n seo: StoreSeo!\n # Location for structured data\n breadcrumbList: StoreBreadcrumbList!\n # Where to retrieve this entity\n slug: String!\n name: String!\n productID: String!\n brand: StoreBrand!\n description: String!\n image: [StoreImage!]!\n offers: StoreAggregateOffer!\n sku: String!\n gtin: String!\n review: [StoreReview!]!\n aggregateRating: StoreAggregateRating!\n isVariantOf: StoreProductGroup!\n additionalProperty: [StorePropertyValue!]!\n}\n\ninput IStoreProduct {\n sku: String!\n name: String!\n image: [IStoreImage!]!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var ie={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreProductGroup"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"hasVariant"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProduct"}}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"productGroupID"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"additionalProperty"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StorePropertyValue"}}}}},directives:[]}]}],loc:{start:0,end:145}};ie.loc.source={body:"type StoreProductGroup {\n hasVariant: [StoreProduct!]!\n productGroupID: String!\n name: String!\n additionalProperty: [StorePropertyValue!]!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var te={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreProductEdge"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"node"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProduct"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"cursor"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreProductConnection"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"pageInfo"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StorePageInfo"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"edges"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProductEdge"}}}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCollectionEdge"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"node"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollection"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"cursor"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCollectionConnection"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"pageInfo"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StorePageInfo"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"edges"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollectionEdge"}}}}},directives:[]}]},{kind:"EnumTypeDefinition",name:{kind:"Name",value:"StoreSort"},directives:[],values:[{kind:"EnumValueDefinition",name:{kind:"Name",value:"price_desc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"price_asc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"orders_desc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"name_desc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"name_asc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"release_desc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"discount_desc"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"score_desc"},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreSelectedFacet"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"key"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"value"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]},{kind:"EnumTypeDefinition",name:{kind:"Name",value:"StoreFacetType"},directives:[],values:[{kind:"EnumValueDefinition",name:{kind:"Name",value:"BOOLEAN"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"RANGE"},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreSuggestions"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"terms"},arguments:[],type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"products"},arguments:[],type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProduct"}}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreSearchResult"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"products"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProductConnection"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"facets"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreFacet"}}}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"suggestions"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreSuggestions"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"Query"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"product"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"locator"},type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreSelectedFacet"}}}}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProduct"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"collection"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"slug"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollection"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"search"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"first"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"after"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"sort"},type:{kind:"NamedType",name:{kind:"Name",value:"StoreSort"}},defaultValue:{kind:"EnumValue",value:"score_desc"},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"term"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},defaultValue:{kind:"StringValue",value:"",block:!1},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"selectedFacets"},type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreSelectedFacet"}}}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreSearchResult"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"allProducts"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"first"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"after"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreProductConnection"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"allCollections"},arguments:[{kind:"InputValueDefinition",name:{kind:"Name",value:"first"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]},{kind:"InputValueDefinition",name:{kind:"Name",value:"after"},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]}],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCollectionConnection"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"person"},arguments:[],type:{kind:"NamedType",name:{kind:"Name",value:"StorePerson"}},directives:[]}]}],loc:{start:0,end:1207}};te.loc.source={body:'type StoreProductEdge {\n node: StoreProduct!\n cursor: String!\n}\n\ntype StoreProductConnection {\n pageInfo: StorePageInfo!\n edges: [StoreProductEdge!]!\n}\n\ntype StoreCollectionEdge {\n node: StoreCollection!\n cursor: String!\n}\n\ntype StoreCollectionConnection {\n pageInfo: StorePageInfo!\n edges: [StoreCollectionEdge!]!\n}\n\nenum StoreSort {\n price_desc\n price_asc\n orders_desc\n name_desc\n name_asc\n release_desc\n discount_desc\n score_desc\n}\n\ninput IStoreSelectedFacet {\n key: String!\n value: String!\n}\n\nenum StoreFacetType {\n BOOLEAN\n RANGE\n}\n\ntype StoreSuggestions {\n terms: [String!]\n products: [StoreProduct!]\n}\n\ntype StoreSearchResult {\n products: StoreProductConnection!\n facets: [StoreFacet!]!\n suggestions: StoreSuggestions!\n}\n\ntype Query {\n product(locator: [IStoreSelectedFacet!]!): StoreProduct!\n\n collection(slug: String!): StoreCollection!\n\n search(\n first: Int!\n after: String\n sort: StoreSort = score_desc\n term: String = ""\n selectedFacets: [IStoreSelectedFacet!]\n ): StoreSearchResult!\n\n allProducts(first: Int!, after: String): StoreProductConnection!\n\n allCollections(first: Int!, after: String): StoreCollectionConnection!\n\n person: StorePerson\n}\n',name:"GraphQL request",locationOffset:{line:1,column:1}};var ae={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreReviewRating"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"ratingValue"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"bestRating"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Float"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreReview"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"reviewRating"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreReviewRating"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"author"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreAuthor"}}},directives:[]}]}],loc:{start:0,end:150}};ae.loc.source={body:"type StoreReviewRating {\n ratingValue: Float!\n bestRating: Float!\n}\n\ntype StoreReview {\n reviewRating: StoreReviewRating!\n author: StoreAuthor!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var de={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreSeo"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"title"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"titleTemplate"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"description"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"canonical"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:104}};de.loc.source={body:"type StoreSeo {\n title: String!\n titleTemplate: String!\n description: String!\n canonical: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var re={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCartMessage"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"text"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"status"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreStatus"}}},directives:[]}]},{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StoreCart"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"order"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreOrder"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"messages"},arguments:[],type:{kind:"NonNullType",type:{kind:"ListType",type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"StoreCartMessage"}}}}},directives:[]}]},{kind:"InputObjectTypeDefinition",name:{kind:"Name",value:"IStoreCart"},directives:[],fields:[{kind:"InputValueDefinition",name:{kind:"Name",value:"order"},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"IStoreOrder"}}},directives:[]}]}],loc:{start:0,end:183}};re.loc.source={body:"type StoreCartMessage {\n text: String!\n status: StoreStatus!\n}\n\ntype StoreCart {\n order: StoreOrder!\n messages: [StoreCartMessage!]!\n}\n\ninput IStoreCart {\n order: IStoreOrder!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var le={kind:"Document",definitions:[{kind:"EnumTypeDefinition",name:{kind:"Name",value:"StoreStatus"},directives:[],values:[{kind:"EnumValueDefinition",name:{kind:"Name",value:"INFO"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"WARNING"},directives:[]},{kind:"EnumValueDefinition",name:{kind:"Name",value:"ERROR"},directives:[]}]}],loc:{start:0,end:46}};le.loc.source={body:"enum StoreStatus {\n INFO\n WARNING\n ERROR\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var oe={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StorePropertyValue"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"value"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"name"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:61}};oe.loc.source={body:"type StorePropertyValue {\n value: String!\n name: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};var me={kind:"Document",definitions:[{kind:"ObjectTypeDefinition",name:{kind:"Name",value:"StorePerson"},interfaces:[],directives:[],fields:[{kind:"FieldDefinition",name:{kind:"Name",value:"id"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"email"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"givenName"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]},{kind:"FieldDefinition",name:{kind:"Name",value:"familyName"},arguments:[],type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"String"}}},directives:[]}]}],loc:{start:0,end:95}};me.loc.source={body:"type StorePerson {\n id: String!\n email: String!\n givenName: String!\n familyName: String!\n}\n",name:"GraphQL request",locationOffset:{line:1,column:1}};const ue=[te,Y,M,z,J,W,H,ee,ne,de,K,Q,ae,U,ie,Z,B,X,re,le,oe,me].map(r.print).join("\n"),se={vtex:{getResolvers:e=>G,getContextFactory:e=>n=>(n.storage={channel:I.parse(e.channel)},n.clients=((e,n)=>({search:m(e,n),commerce:(({account:e,environment:n},i)=>{const t=`https://${e}.${n}.com.br`;return{catalog:{brand:{list:()=>l(t+"/api/catalog_system/pub/brand/list")},category:{tree:(e=3)=>l(`${t}/api/catalog_system/pub/category/tree/${e}`)},portal:{pagetype:e=>l(`${t}/api/catalog_system/pub/portal/pagetype/${e}`)}},checkout:{simulation:(e,{salesChannel:n}=i.storage.channel)=>{const a=new URLSearchParams({sc:n});return l(`${t}/api/checkout/pub/orderForms/simulation?${a.toString()}`,{...o,body:JSON.stringify(e)})},orderForm:({id:e,refreshOutdatedData:n=!0,channel:a=i.storage.channel})=>{const{salesChannel:d}=a,r=new URLSearchParams({refreshOutdatedData:n.toString(),sc:d});return l(`${t}/api/checkout/pub/orderForm/${e}?${r.toString()}`,o)},updateOrderFormItems:({id:e,orderItems:n,allowOutdatedData:a="paymentData",salesChannel:d=i.storage.channel.salesChannel})=>{const r=new URLSearchParams({allowOutdatedData:a,sc:d});return l(`${t}/api/checkout/pub/orderForm/${e}/items?${r}`,{...o,body:JSON.stringify({orderItems:n}),method:"PATCH"})},region:async({postalCode:e,country:n,salesChannel:i})=>l(`${t}/api/checkout/pub/regions/?postalCode=${e}&country=${n}&sc=${null!=i?i:""}`)},session:()=>l(t+"/api/sessions?items=profile.id,profile.email,profile.firstName,profile.lastName",{method:"POST",headers:{"content-type":"application/json",cookie:i.headers.cookie},body:"{}"})}})(e,n),sp:(({account:e},n)=>{const i=`https://sp.vtex.com/event-api/v1/${e}/event`;return{sendEvent:e=>l(i,{method:"POST",body:JSON.stringify({...e,agent:"@faststore/api",anonymous:p.anonymous(),session:p.session()}),headers:{"content-type":"application/json"}})}})(e)}))(e,n),n.loaders=((e,{clients:n})=>({skuLoader:((e,n)=>new t(async e=>{const i=e.map(e=>{const n=e.find(({key:e})=>"id"===e);if(!n)throw new c("Error while loading SKU. Needs to pass an id to selected facets");return n.value}),{products:t}=await n.search.products({query:"sku:"+i.join(";"),page:0,count:i.length}),a=t.reduce((e,n)=>{for(const i of n.items)e[i.itemId]=y(i,n);return e},{}),d=i.map(e=>a[e]),r=d.filter(e=>!e);if(r.length>0)throw new Error("Search API did not return the following skus: "+r.join(","));return d},{maxBatchSize:99}))(0,n),simulationLoader:((e,n)=>{const i=a(1),d=async e=>{const i=[...e.flat()],t=await n.commerce.checkout.simulation({items:i}),a=t.items.reduce((e,n)=>{const i=n.requestIndex;return"number"==typeof i&&i<e.length&&(e[i]=n),e},Array(i.length).fill(null)),d=e.reduce((e,n)=>[...e,n.length+e[e.length-1]],[0]);return e.map((e,n)=>({...t,items:a.slice(d[n],d[n+1]).filter(e=>Boolean(e))}))};return new t(async e=>i(d,e),{maxBatchSize:50})})(0,n),collectionLoader:((e,n)=>{const i=a(20);return new t(async e=>Promise.all(e.map(e=>i(async()=>{const i=await n.commerce.catalog.portal.pagetype(e);if(v(i))return i;throw new k(`Catalog returned ${i.pageType} for slug: ${e}. This usually happens when there is more than one category with the same name in the same category tree level.`)}))),{batch:!1})})(0,n)}))(0,n),n)}},pe=e=>se[e.platform].getResolvers(e);exports.getContextFactory=e=>se[e.platform].getContextFactory(e),exports.getResolvers=pe,exports.getSchema=async e=>n.makeExecutableSchema({resolvers:pe(e),typeDefs:ue}),exports.getTypeDefs=()=>ue;
|
|
2
2
|
//# sourceMappingURL=api.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.cjs.production.min.js","sources":["../src/platforms/vtex/clients/fetch.ts","../src/platforms/vtex/clients/commerce/index.ts","../src/platforms/vtex/clients/search/index.ts","../src/platforms/vtex/clients/sp/index.ts","../src/platforms/vtex/utils/errors.ts","../src/platforms/vtex/utils/enhanceSku.ts","../src/platforms/vtex/loaders/collection.ts","../src/platforms/vtex/utils/slugify.ts","../src/platforms/vtex/resolvers/collection.ts","../src/platforms/vtex/resolvers/validateCart.ts","../src/platforms/vtex/utils/channel.ts","../src/platforms/vtex/utils/productStock.ts","../src/platforms/vtex/resolvers/offer.ts","../src/platforms/vtex/resolvers/product.ts","../src/platforms/vtex/resolvers/productGroup.ts","../src/platforms/vtex/utils/facets.ts","../src/platforms/vtex/utils/sort.ts","../src/platforms/vtex/resolvers/query.ts","../src/platforms/vtex/resolvers/searchResult.ts","../src/platforms/vtex/index.ts","../src/platforms/vtex/resolvers/aggregateOffer.ts","../src/platforms/vtex/resolvers/seo.ts","../src/platforms/vtex/resolvers/facet.ts","../src/platforms/vtex/resolvers/facetValue.ts","../src/platforms/vtex/resolvers/aggregateRating.ts","../src/platforms/vtex/resolvers/review.ts","../src/platforms/vtex/resolvers/mutation.ts","../src/platforms/vtex/resolvers/updateSession.ts","../src/typeDefs/index.ts","../src/index.ts","../src/platforms/vtex/clients/index.ts","../src/platforms/vtex/loaders/index.ts","../src/platforms/vtex/loaders/sku.ts","../src/platforms/vtex/loaders/simulation.ts"],"sourcesContent":["import fetch from 'isomorphic-unfetch'\n\nexport const fetchAPI = async (info: RequestInfo, init?: RequestInit) => {\n const response = await fetch(info, init)\n\n if (response.ok) {\n return response.status !== 204 ? response.json() : undefined\n }\n\n console.error(info, init, response)\n const text = await response.text()\n\n throw new Error(text)\n}\n","import type { Context, Options } from '../../index'\nimport { fetchAPI } from '../fetch'\nimport type { Brand } from './types/Brand'\nimport type { CategoryTree } from './types/CategoryTree'\nimport type { OrderForm, OrderFormInputItem } from './types/OrderForm'\nimport type { PortalPagetype } from './types/Portal'\nimport type { Region, RegionInput } from './types/Region'\nimport type {\n Simulation,\n SimulationArgs,\n SimulationOptions,\n} from './types/Simulation'\nimport type { Session } from './types/Session'\nimport type { Channel } from '../../utils/channel'\n\nconst BASE_INIT = {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n}\n\nexport const VtexCommerce = (\n { account, environment }: Options,\n ctx: Context\n) => {\n const base = `https://${account}.${environment}.com.br`\n\n return {\n catalog: {\n brand: {\n list: (): Promise<Brand[]> =>\n fetchAPI(`${base}/api/catalog_system/pub/brand/list`),\n },\n category: {\n tree: (depth = 3): Promise<CategoryTree[]> =>\n fetchAPI(`${base}/api/catalog_system/pub/category/tree/${depth}`),\n },\n portal: {\n pagetype: (slug: string): Promise<PortalPagetype> =>\n fetchAPI(`${base}/api/catalog_system/pub/portal/pagetype/${slug}`),\n },\n },\n checkout: {\n simulation: (\n args: SimulationArgs,\n { salesChannel }: SimulationOptions = ctx.storage.channel\n ): Promise<Simulation> => {\n const params = new URLSearchParams({\n sc: salesChannel,\n })\n\n return fetchAPI(\n `${base}/api/checkout/pub/orderForms/simulation?${params.toString()}`,\n {\n ...BASE_INIT,\n body: JSON.stringify(args),\n }\n )\n },\n orderForm: ({\n id,\n refreshOutdatedData = true,\n channel = ctx.storage.channel,\n }: {\n id: string\n refreshOutdatedData?: boolean\n channel?: Required<Channel>\n }): Promise<OrderForm> => {\n const { salesChannel } = channel\n const params = new URLSearchParams({\n refreshOutdatedData: refreshOutdatedData.toString(),\n sc: salesChannel,\n })\n\n return fetchAPI(\n `${base}/api/checkout/pub/orderForm/${id}?${params.toString()}`,\n BASE_INIT\n )\n },\n updateOrderFormItems: ({\n id,\n orderItems,\n allowOutdatedData = 'paymentData',\n salesChannel = ctx.storage.channel.salesChannel,\n }: {\n id: string\n orderItems: OrderFormInputItem[]\n allowOutdatedData?: 'paymentData'\n salesChannel?: string\n }): Promise<OrderForm> => {\n const params = new URLSearchParams({\n allowOutdatedData,\n sc: salesChannel,\n })\n\n return fetchAPI(\n `${base}/api/checkout/pub/orderForm/${id}/items?${params}`,\n {\n ...BASE_INIT,\n body: JSON.stringify({ orderItems }),\n method: 'PATCH',\n }\n )\n },\n region: async ({\n postalCode,\n country,\n salesChannel,\n }: RegionInput): Promise<Region> => {\n return fetchAPI(\n `${base}/api/checkout/pub/regions/?postalCode=${postalCode}&country=${country}&sc=${\n salesChannel ?? ''\n }`\n )\n },\n },\n session: (): Promise<Session> =>\n fetchAPI(\n `${base}/api/sessions?items=profile.id,profile.email,profile.firstName,profile.lastName`,\n {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n cookie: ctx.headers.cookie,\n },\n body: '{}',\n }\n ),\n }\n}\n","import type { IStoreSelectedFacet } from '../../../../__generated__/schema'\nimport type { Context, Options } from '../../index'\nimport type { SelectedFacet } from '../../utils/facets'\nimport { fetchAPI } from '../fetch'\nimport type { FacetSearchResult } from './types/FacetSearchResult'\nimport type {\n ProductSearchResult,\n SuggestedTerms,\n} from './types/ProductSearchResult'\n\nexport type Sort =\n | 'price:desc'\n | 'price:asc'\n | 'orders:desc'\n | 'name:desc'\n | 'name:asc'\n | 'release:desc'\n | 'discount:desc'\n | ''\n\nexport interface SearchArgs {\n query?: string\n page: number\n count: number\n type: 'product_search' | 'facets'\n sort?: Sort\n selectedFacets?: SelectedFacet[]\n fuzzy?: '0' | '1'\n hideUnavailableItems?: boolean\n}\n\nexport interface ProductLocator {\n field: 'id' | 'slug'\n value: string\n}\n\nexport const IntelligentSearch = (\n { account, environment, hideUnavailableItems }: Options,\n ctx: Context\n) => {\n const base = `https://${account}.${environment}.com.br/api/io`\n const policyFacet: IStoreSelectedFacet = {\n key: 'trade-policy',\n value: ctx.storage.channel.salesChannel,\n }\n\n const addDefaultFacets = (facets: SelectedFacet[]) => {\n const facet = facets.find(({ key }) => key === policyFacet.key)\n\n if (facet === undefined) {\n return [...facets, policyFacet]\n }\n\n return facets\n }\n\n const search = <T>({\n query = '',\n page,\n count,\n sort = '',\n selectedFacets = [],\n type,\n fuzzy = '0',\n }: SearchArgs): Promise<T> => {\n const params = new URLSearchParams({\n page: (page + 1).toString(),\n count: count.toString(),\n query,\n sort,\n fuzzy,\n })\n\n if (hideUnavailableItems !== undefined) {\n params.append('hideUnavailableItems', hideUnavailableItems.toString())\n }\n\n const pathname = addDefaultFacets(selectedFacets)\n .map(({ key, value }) => `${key}/${value}`)\n .join('/')\n\n return fetchAPI(\n `${base}/_v/api/intelligent-search/${type}/${pathname}?${params.toString()}`\n )\n }\n\n const products = (args: Omit<SearchArgs, 'type'>) =>\n search<ProductSearchResult>({ ...args, type: 'product_search' })\n\n const suggestedProducts = (\n args: Omit<SearchArgs, 'type'>\n ): Promise<ProductSearchResult> =>\n fetchAPI(`${base}/api/suggestion_products/?term=${args.query}`)\n\n const suggestedTerms = (\n args: Omit<SearchArgs, 'type'>\n ): Promise<SuggestedTerms> =>\n fetchAPI(`${base}/api/split/suggestion_search/?q=${args.query}`)\n\n const facets = (args: Omit<SearchArgs, 'type'>) =>\n search<FacetSearchResult>({ ...args, type: 'facets' })\n\n return {\n facets,\n products,\n suggestedTerms,\n suggestedProducts,\n }\n}\n","/**\n * Client for SP, Intelligent search's analytics event API\n * More info at: https://www.notion.so/vtexhandbook/Event-API-Documentation-48eee26730cf4d7f80f8fd7262231f84\n */\nimport { fetchAPI } from '../fetch'\nimport type { Options, Context } from '../../index'\n\nconst THIRTY_MINUTES_S = 30 * 60\nconst ONE_YEAR_S = 365 * 24 * 3600\n\nconst randomUUID = () => (Math.random() * 1e6).toFixed(0)\n\nconst timelapsed = (past: number) => (Date.now() - past) / 1e3\n\nconst createId = (expiresSecond: number) => {\n let payload = randomUUID()\n let createdAt = Date.now()\n\n return () => {\n if (timelapsed(createdAt) > expiresSecond) {\n payload = randomUUID()\n createdAt = Date.now()\n }\n\n return payload\n }\n}\n\nconst user = {\n anonymous: createId(ONE_YEAR_S),\n session: createId(THIRTY_MINUTES_S),\n}\n\nexport type SearchEvent = {\n type: 'search.query'\n text: string // 'zapatilha'\n misspelled: boolean\n match: number\n operator: 'and' | 'or'\n session?: string\n anonymous?: string\n}\n\nexport const SP = ({ account }: Options, _: Context) => {\n const base = `https://sp.vtex.com/event-api/v1/${account}/event`\n\n const sendEvent = (options: SearchEvent) => {\n return fetchAPI(base, {\n method: 'POST',\n body: JSON.stringify({\n ...options,\n agent: '@faststore/api',\n anonymous: user.anonymous(),\n session: user.session(),\n // session: 'zZlNhqz1vFJP6iPG5Oqtt',\n // anonymous: 'Om1TNluGvgmSgU5OOTvkkd',\n }),\n headers: {\n 'content-type': 'application/json',\n },\n })\n }\n\n return {\n sendEvent,\n }\n}\n","export class BadRequestError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'BadRequestError'\n }\n}\n\nexport class NotFoundError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'NotFoundError'\n }\n}\n","import type { Product, Item } from '../clients/search/types/ProductSearchResult'\n\nexport type EnhancedSku = Item & { isVariantOf: Product }\n\nexport const enhanceSku = (item: Item, product: Product): EnhancedSku => ({\n ...item,\n isVariantOf: product,\n})\n","import DataLoader from 'dataloader'\nimport pLimit from 'p-limit'\n\nimport { NotFoundError } from '../utils/errors'\nimport type { CollectionPageType } from '../clients/commerce/types/Portal'\nimport type { Options } from '..'\nimport type { Clients } from '../clients'\n\n// Limits concurrent requests to 20 so that they don't timeout\nconst CONCURRENT_REQUESTS_MAX = 20\n\nconst collectionPageTypes = new Set([\n 'brand',\n 'category',\n 'department',\n 'subcategory',\n] as const)\n\nexport const isCollectionPageType = (x: any): x is CollectionPageType =>\n typeof x.pageType === 'string' &&\n collectionPageTypes.has(x.pageType.toLowerCase())\n\nexport const getCollectionLoader = (_: Options, clients: Clients) => {\n const limit = pLimit(CONCURRENT_REQUESTS_MAX)\n\n const loader = async (\n slugs: readonly string[]\n ): Promise<CollectionPageType[]> => {\n return Promise.all(\n slugs.map((slug: string) =>\n limit(async () => {\n const page = await clients.commerce.catalog.portal.pagetype(slug)\n\n if (isCollectionPageType(page)) {\n return page\n }\n\n throw new NotFoundError(\n `Catalog returned ${page.pageType} for slug: ${slug}. This usually happens when there is more than one category with the same name in the same category tree level.`\n )\n })\n )\n )\n }\n\n return new DataLoader<string, CollectionPageType>(loader, {\n // DataLoader is being used to cache requests, not to batch them\n batch: false,\n })\n}\n","/* eslint-disable no-useless-escape */\n/**\n * VTEX catalog slugify function\n *\n * Copied from:\n * https://github.com/vtex/rewriter/blob/1ce2010783e0586cab42534ce2fb7a983d8a3a84/node/clients/catalog.ts#L72\n *\n * Sometimes, we need to slugify strings for creating urls. An example is the\n * brand urls, where we create them from the brand's name.\n * This slugify function should match exactly what VTEX catalog generates. Any mismatch\n * will lead to broken links.\n * Hopefully, we had this function implemented on VTEX IO and we've been using it for\n * years now. However, looking at the code, I think we can save lots of computing. I'm\n * in a hurry for doing these tests now, so I'll leave a small TODO.\n *\n * TODO: Research for better ways of computing this slugify function. Things I'd try are:\n * - Join those 3 regexs for special characters into a single one.\n * - Replace the regexp of `removeDiacritics` function with a Map. We can make the complexity\n * of this function be O(n) with n=string.length\n *\n */\nconst from =\n 'ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆÍÌÎÏŇÑÓÖÒÔÕØŘŔŠŤÚŮÜÙÛÝŸŽáäâàãåčçćďéěëèêẽĕȇíìîïňñóöòôõøðřŕšťúůüùûýÿžþÞĐđ߯a'\n\nconst to =\n 'AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa'\n\nconst removeDiacritics = (str: string) => {\n let newStr = str.slice(0)\n\n for (let i = 0; i < from.length; i++) {\n newStr = newStr.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i))\n }\n\n return newStr\n}\n\nconst slugifySpecialCharacters = (str: string) => {\n return str.replace(/[·/_,:]/, '-')\n}\n\nexport function slugify(str: string) {\n const noCommas = str.replace(/,/g, '')\n const replaced = noCommas.replace(/[*+~.()'\"!:@&\\[\\]`/ %$#?{}|><=_^]/g, '-')\n const slugified = slugifySpecialCharacters(removeDiacritics(replaced))\n\n return slugified.toLowerCase()\n}\n","import { isCollectionPageType } from '../loaders/collection'\nimport { slugify } from '../utils/slugify'\nimport type { Resolver } from '..'\nimport type { Brand } from '../clients/commerce/types/Brand'\nimport type { CategoryTree } from '../clients/commerce/types/CategoryTree'\nimport type { CollectionPageType } from '../clients/commerce/types/Portal'\n\ntype Root = Brand | (CategoryTree & { level: number }) | CollectionPageType\n\nconst isBrand = (x: any): x is Brand | CollectionPageType =>\n x.type === 'brand' ||\n (isCollectionPageType(x) && x.pageType.toLowerCase() === 'brand')\n\nconst slugifyRoot = (root: Root) => {\n if (isBrand(root)) {\n return slugify(root.name)\n }\n\n if (isCollectionPageType(root)) {\n return new URL(`https://${root.url}`).pathname.slice(1).toLowerCase()\n }\n\n return new URL(root.url).pathname.slice(1).toLowerCase()\n}\n\nexport const StoreCollection: Record<string, Resolver<Root>> = {\n id: ({ id }) => id.toString(),\n slug: (root) => slugifyRoot(root),\n seo: (root) =>\n isBrand(root) || isCollectionPageType(root)\n ? {\n title: root.title,\n description: root.metaTagDescription,\n }\n : {\n title: root.Title,\n description: root.MetaTagDescription,\n },\n type: (root) =>\n isBrand(root)\n ? 'Brand'\n : isCollectionPageType(root)\n ? root.pageType\n : root.level === 0\n ? 'Department'\n : 'Category',\n meta: (root) => {\n const slug = slugifyRoot(root)\n\n return isBrand(root)\n ? {\n selectedFacets: [{ key: 'brand', value: slug }],\n }\n : {\n selectedFacets: slug.split('/').map((segment, index) => ({\n key: `category-${index + 1}`,\n value: segment,\n })),\n }\n },\n breadcrumbList: async (root, _, ctx) => {\n const {\n loaders: { collectionLoader },\n } = ctx\n\n const slug = slugifyRoot(root)\n\n /**\n * Split slug into segments so we fetch all data for\n * the breadcrumb. For instance, if we get `/foo/bar`\n * we need all metadata for both `/foo` and `/bar` and\n * thus we need to fetch pageType for `/foo` and `/bar`\n */\n const segments = slug.split('/').filter((segment) => Boolean(segment))\n const slugs = segments.map((__, index) =>\n segments.slice(0, index + 1).join('/')\n )\n\n const collections = await Promise.all(\n slugs.map((s) => collectionLoader.load(s))\n )\n\n return {\n itemListElement: collections.map((collection, index) => ({\n item: new URL(`https://${collection.url}`).pathname.toLowerCase(),\n name: collection.name,\n position: index + 1,\n })),\n numberOfItems: collections.length,\n }\n },\n}\n","import deepEquals from 'fast-deep-equal'\n\nimport type {\n IStoreOrder,\n IStoreCart,\n IStoreOffer,\n} from '../../../__generated__/schema'\nimport type {\n OrderForm,\n OrderFormItem,\n OrderFormInputItem,\n} from '../clients/commerce/types/OrderForm'\nimport type { Context } from '..'\n\ntype Indexed<T> = T & { index?: number }\n\nconst getId = (item: IStoreOffer) =>\n [item.itemOffered.sku, item.seller.identifier, item.price].join('::')\n\nconst orderFormItemToOffer = (\n item: OrderFormItem,\n index?: number\n): Indexed<IStoreOffer> => ({\n listPrice: item.listPrice / 100,\n price: item.sellingPrice / 100,\n quantity: item.quantity,\n seller: { identifier: item.seller },\n itemOffered: {\n sku: item.id,\n image: [],\n name: item.name,\n },\n index,\n})\n\nconst offerToOrderItemInput = (\n offer: Indexed<IStoreOffer>\n): OrderFormInputItem => ({\n quantity: offer.quantity,\n seller: offer.seller.identifier,\n id: offer.itemOffered.sku,\n index: offer.index,\n})\n\nconst groupById = (offers: IStoreOffer[]): Map<string, IStoreOffer> =>\n offers.reduce((acc, item) => {\n const id = getId(item)\n\n acc.set(id, acc.get(id) ?? item)\n\n return acc\n }, new Map<string, IStoreOffer>())\n\nconst equals = (storeOrder: IStoreOrder, orderForm: OrderForm) => {\n const pick = (item: Indexed<IStoreOffer>, index: number) => ({\n ...item,\n itemOffered: {\n sku: item.itemOffered.sku,\n },\n index,\n })\n\n const orderFormItems = orderForm.items.map(orderFormItemToOffer).map(pick)\n const storeOrderItems = storeOrder.acceptedOffer.map(pick)\n\n const isSameOrder = storeOrder.orderNumber === orderForm.orderFormId\n const orderItemsAreSync = deepEquals(orderFormItems, storeOrderItems)\n\n return isSameOrder && orderItemsAreSync\n}\n\n/**\n * This resolver implements the optimistic cart behavior. The main idea in here\n * is that we receive a cart from the UI (as query params) and we validate it with\n * the commerce platform. If the cart is valid, we return null, if the cart is\n * invalid according to the commerce platform, we return the new cart the UI should use\n * instead.\n *\n * The algorithm is something like:\n * 1. Fetch orderForm from VTEX\n * 2. Compute delta changes between the orderForm and the UI's cart\n * 3. Update the orderForm in VTEX platform accordingly\n * 4. If any changes were made, send to the UI the new cart. Null otherwise\n */\nexport const validateCart = async (\n _: unknown,\n { cart: { order } }: { cart: IStoreCart },\n ctx: Context\n) => {\n const { orderNumber, acceptedOffer } = order\n const {\n clients: { commerce },\n loaders: { skuLoader },\n } = ctx\n\n // Step1: Get OrderForm from VTEX Commerce\n const orderForm = await commerce.checkout.orderForm({\n id: orderNumber,\n })\n\n // Step2: Process items from both browser and checkout so they have the same shape\n const browserItemsById = groupById(acceptedOffer)\n const originItemsById = groupById(orderForm.items.map(orderFormItemToOffer))\n const browserItems = Array.from(browserItemsById.values()) // items on the user's browser\n const originItems = Array.from(originItemsById.values()) // items on the VTEX platform backend\n\n // Step3: Compute delta changes\n const { itemsToAdd, itemsToUpdate } = browserItems.reduce(\n (acc, item) => {\n const maybeOriginItem = originItemsById.get(getId(item))\n\n if (!maybeOriginItem) {\n acc.itemsToAdd.push(item)\n } else {\n acc.itemsToUpdate.push({\n ...maybeOriginItem,\n quantity: item.quantity,\n })\n }\n\n return acc\n },\n {\n itemsToAdd: [] as IStoreOffer[],\n itemsToUpdate: [] as IStoreOffer[],\n }\n )\n\n const itemsToDelete = originItems\n .filter((item) => !browserItemsById.has(getId(item)))\n .map((item) => ({ ...item, quantity: 0 }))\n\n const changes = [...itemsToAdd, ...itemsToUpdate, ...itemsToDelete].map(\n offerToOrderItemInput\n )\n\n if (changes.length === 0) {\n return null\n }\n\n // Step4: Apply delta changes to order form\n const updatedOrderForm = await commerce.checkout.updateOrderFormItems({\n id: orderForm.orderFormId,\n orderItems: changes,\n })\n\n // Step5: If no changes detected before/after updating orderForm, the order is validated\n if (equals(order, updatedOrderForm)) {\n return null\n }\n\n // Step6: There were changes, convert orderForm to StoreOrder\n return {\n order: {\n orderNumber: updatedOrderForm.orderFormId,\n acceptedOffer: updatedOrderForm.items.map((item) => ({\n ...item,\n product: skuLoader.load([{ key: 'id', value: item.id }]), // TODO: add channel\n })),\n },\n messages: updatedOrderForm.messages.map(({ text, status }) => ({\n text,\n status: status.toUpperCase(),\n })),\n }\n}\n","import type { Context } from '..'\n\nexport interface Channel {\n regionId?: string\n salesChannel?: string\n}\n\nexport default class ChannelMarshal {\n public static parse(channelString: string): Required<Channel> {\n try {\n const parsedChannel = JSON.parse(channelString) as Channel\n\n return {\n regionId: parsedChannel.regionId ?? '',\n salesChannel: parsedChannel.salesChannel ?? '',\n }\n } catch (error) {\n console.error(error)\n\n throw new Error('Malformed channel string')\n }\n }\n\n public static stringify(channel: Channel): string {\n return JSON.stringify(channel)\n }\n}\n\nexport const mutateChannelContext = (ctx: Context, channelString: string) => {\n ctx.storage = {\n ...ctx.storage,\n channel: ChannelMarshal.parse(channelString),\n }\n}\n","import type {\n Item,\n Seller,\n CommertialOffer,\n} from '../clients/search/types/ProductSearchResult'\n\nexport const inStock = (item: Item) =>\n item.sellers.find((seller) => seller.commertialOffer.AvailableQuantity > 0)\n\nexport const getFirstSeller = (sellers: Seller[]): Seller | undefined =>\n sellers[0]\n\nexport const getItemPriceByKey = (\n item: Item,\n key: keyof CommertialOffer\n): number => getFirstSeller(item.sellers)?.commertialOffer[key] ?? 0\n\n// Smallest Available Selling Price First\nexport const sortOfferByPrice = (items: Item[]): Item[] =>\n items.sort((a, b) => {\n if (inStock(a) && !inStock(b)) {\n return -1\n }\n\n if (!inStock(a) && inStock(b)) {\n return 1\n }\n\n return getItemPriceByKey(a, 'Price') - getItemPriceByKey(b, 'Price')\n })\n\nexport const inStockOrderFormItem = (availability: string) =>\n availability === 'available'\n","import type { Resolver } from '..'\nimport type { StoreAggregateOffer } from './aggregateOffer'\nimport {\n getFirstSeller,\n inStock,\n inStockOrderFormItem,\n getItemPriceByKey,\n} from '../utils/productStock'\nimport type { ArrayElementType } from '../../../typings'\nimport type { Item } from '../clients/search/types/ProductSearchResult'\nimport type { EnhancedSku } from '../utils/enhanceSku'\nimport type { OrderFormItem } from '../clients/commerce/types/OrderForm'\n\ntype OrderFormProduct = OrderFormItem & { product: Promise<EnhancedSku> }\ntype SearchProduct = ArrayElementType<\n ReturnType<typeof StoreAggregateOffer.offers>\n>\ntype Root = SearchProduct | OrderFormProduct\n\nconst isSearchItem = (item: any): item is Item => 'sellers' in item\nconst isOrderFormItem = (item: any): item is OrderFormProduct =>\n 'skuName' in item\n\nconst getAvailability = (available: boolean) =>\n available ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock'\n\nexport const StoreOffer: Record<string, Resolver<Root>> = {\n priceCurrency: () => '',\n priceValidUntil: (item) => {\n if (isSearchItem(item)) {\n return getFirstSeller(item.sellers)?.commertialOffer.PriceValidUntil ?? ''\n }\n\n if (isOrderFormItem(item)) {\n return item.priceValidUntil ?? ''\n }\n\n return null\n },\n itemCondition: () => 'https://schema.org/NewCondition',\n availability: async (item) => {\n if (isSearchItem(item)) {\n return getAvailability(!!inStock(item))\n }\n\n if (isOrderFormItem(item)) {\n return getAvailability(inStockOrderFormItem(item.availability))\n }\n\n return null\n },\n seller: (item) => {\n if (isSearchItem(item)) {\n return {\n identifier: getFirstSeller(item.sellers)?.sellerId ?? '',\n }\n }\n\n if (isOrderFormItem(item)) {\n return {\n identifier: item.seller,\n }\n }\n\n return null\n },\n price: (item) => {\n if (isSearchItem(item)) {\n return getItemPriceByKey(item, 'spotPrice')\n }\n\n if (isOrderFormItem(item)) {\n return item.price / 1e2\n }\n\n return null\n },\n sellingPrice: (item) => {\n if (isSearchItem(item)) {\n return getItemPriceByKey(item, 'Price')\n }\n\n if (isOrderFormItem(item)) {\n return item.sellingPrice / 1e2\n }\n\n return null\n },\n listPrice: (item) => {\n if (isSearchItem(item)) {\n return getItemPriceByKey(item, 'ListPrice')\n }\n\n if (isOrderFormItem(item)) {\n return item.listPrice / 1e2\n }\n\n return null\n },\n itemOffered: ({ product }) => product,\n quantity: (item) => {\n if (isSearchItem(item)) {\n return item.sellers.reduce(\n (quantity, seller) =>\n quantity + seller.commertialOffer.AvailableQuantity,\n 0\n )\n }\n\n if (isOrderFormItem(item)) {\n return item.quantity\n }\n\n return null\n },\n}\n","import type { Resolver } from '..'\nimport { sortOfferByPrice } from '../utils/productStock'\nimport type { PromiseType } from '../../../typings'\nimport type { Query } from './query'\nimport type { Item } from '../clients/search/types/ProductSearchResult'\nimport type { EnhancedSku } from '../utils/enhanceSku'\n\ntype Root = PromiseType<ReturnType<typeof Query.product>>\n\nconst DEFAULT_IMAGE = {\n imageText: 'image',\n imageUrl:\n 'https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg',\n}\n\nconst getSlug = (link: string, id: string) => `${link}-${id}`\nconst getPath = (link: string, id: string) => `/${getSlug(link, id)}/p`\nconst nonEmptyArray = <T>(array: T[] | null | undefined) =>\n Array.isArray(array) && array.length > 0 ? array : null\n\nexport const StoreProduct: Record<string, Resolver<Root>> & {\n offers: Resolver<Root, any, { items: Item[]; product: EnhancedSku }>\n isVariantOf: Resolver<Root, any, Root>\n} = {\n productID: ({ itemId }) => itemId,\n name: ({ isVariantOf, name }) => name ?? isVariantOf.productName,\n slug: ({ isVariantOf: { linkText }, itemId }) => getSlug(linkText, itemId),\n description: ({ isVariantOf: { description } }) => description,\n seo: ({ isVariantOf: { description, productName } }) => ({\n title: productName,\n description,\n }),\n brand: ({ isVariantOf: { brand } }) => ({ name: brand }),\n breadcrumbList: ({\n isVariantOf: { categories, productName, linkText },\n itemId,\n }) => {\n return {\n itemListElement: [\n ...categories.reverse().map((categoryPath, index) => {\n const categoryNames = categoryPath.split('/')\n\n return {\n name: categoryNames[categoryNames.length - 2],\n item: categoryPath.toLowerCase(),\n position: index + 1,\n }\n }),\n {\n name: productName,\n item: getPath(linkText, itemId),\n position: categories.length + 1,\n },\n ],\n numberOfItems: categories.length,\n }\n },\n image: ({ images }) =>\n (nonEmptyArray(images) ?? [DEFAULT_IMAGE]).map(\n ({ imageUrl, imageText }) => ({\n alternateName: imageText ?? '',\n url: imageUrl.replace('vteximg.com.br', 'vtexassets.com'),\n })\n ),\n sku: ({ itemId }) => itemId,\n gtin: ({ referenceId }) => referenceId[0]?.Value ?? '',\n review: () => [],\n aggregateRating: () => ({}),\n offers: (product): { items: Item[]; product: Root } => {\n return {\n items: sortOfferByPrice(product.isVariantOf.items),\n product,\n }\n },\n isVariantOf: (root) => root,\n // TODO: get this value. Fix any type\n additionalProperty: ({ attributes = [] }: any) =>\n attributes.map((attribute: any) => ({\n name: attribute.key,\n value: attribute.value,\n })),\n}\n","import { enhanceSku } from '../utils/enhanceSku'\nimport type { Resolver } from '..'\nimport type { PromiseType } from '../../../typings'\nimport type { StoreProduct } from './product'\n\ntype Root = PromiseType<ReturnType<typeof StoreProduct.isVariantOf>>\n\nconst BLOCKED_PROPERTIES: Record<string, boolean> = {\n sellerId: true,\n}\n\nexport const StoreProductGroup: Record<string, Resolver<Root>> = {\n hasVariant: (root) =>\n root.isVariantOf.items.map((item) => enhanceSku(item, root.isVariantOf)),\n productGroupID: ({ isVariantOf }) => isVariantOf.productId,\n name: ({ isVariantOf }) => isVariantOf.productName,\n additionalProperty: ({ isVariantOf: { properties } }) =>\n properties.flatMap((property) => {\n if (BLOCKED_PROPERTIES[property.name]) {\n return []\n }\n\n return property.values.map((propertyValue) => ({\n name: property.name,\n value: propertyValue,\n }))\n }),\n}\n","import ChannelMarshal from './channel'\n\nexport interface SelectedFacet {\n key: string\n value: string\n}\n\n/**\n * Transform facets from the store to VTEX platform facets.\n * For instance, the channel in Store becomes trade-policy and regionId in VTEX's realm\n * */\nexport const transformSelectedFacet = ({ key, value }: SelectedFacet) => {\n switch (key) {\n case 'channel': {\n const channel = ChannelMarshal.parse(value)\n const channelFacets = [\n { key: 'trade-policy', value: channel.salesChannel },\n ]\n\n if (channel.regionId) {\n channelFacets.push({ key: 'region-id', value: channel.regionId })\n }\n\n return channelFacets\n }\n\n default:\n return { key, value }\n }\n}\n","export const SORT_MAP = {\n price_desc: 'price:desc',\n price_asc: 'price:asc',\n orders_desc: 'orders:desc',\n name_desc: 'name:desc',\n name_asc: 'name:asc',\n release_desc: 'release:desc',\n discount_desc: 'discount:desc',\n score_desc: '',\n} as const\n","import { enhanceSku } from '../utils/enhanceSku'\nimport { transformSelectedFacet } from '../utils/facets'\nimport { SORT_MAP } from '../utils/sort'\nimport { StoreCollection } from './collection'\nimport type {\n QueryProductArgs,\n QueryAllCollectionsArgs,\n QueryAllProductsArgs,\n QuerySearchArgs,\n QueryCollectionArgs,\n} from '../../../__generated__/schema'\nimport type { CategoryTree } from '../clients/commerce/types/CategoryTree'\nimport type { Context } from '../index'\nimport { mutateChannelContext } from '../utils/channel'\n\nexport const Query = {\n product: async (_: unknown, { locator }: QueryProductArgs, ctx: Context) => {\n // Insert channel in context for later usage\n const channelString = locator.find((facet) => facet.key === 'channel')\n ?.value\n\n if (channelString) {\n mutateChannelContext(ctx, channelString)\n }\n\n const {\n loaders: { skuLoader },\n } = ctx\n\n return skuLoader.load(locator.flatMap(transformSelectedFacet))\n },\n collection: (_: unknown, { slug }: QueryCollectionArgs, ctx: Context) => {\n const {\n loaders: { collectionLoader },\n } = ctx\n\n return collectionLoader.load(slug)\n },\n search: async (\n _: unknown,\n { first, after: maybeAfter, sort, term, selectedFacets }: QuerySearchArgs,\n ctx: Context\n ) => {\n // Insert channel in context for later usage\n const channelString = selectedFacets?.find(\n (facet) => facet.key === 'channel'\n )?.value\n\n if (channelString) {\n mutateChannelContext(ctx, channelString)\n }\n\n const after = maybeAfter ? Number(maybeAfter) : 0\n const searchArgs = {\n page: Math.ceil(after / first!),\n count: first,\n query: term,\n sort: SORT_MAP[sort ?? 'score_desc'],\n selectedFacets: selectedFacets?.flatMap(transformSelectedFacet) ?? [],\n }\n\n return searchArgs\n },\n allProducts: async (\n _: unknown,\n { first, after: maybeAfter }: QueryAllProductsArgs,\n ctx: Context\n ) => {\n const {\n clients: { search },\n } = ctx\n\n const after = maybeAfter ? Number(maybeAfter) : 0\n const products = await search.products({\n page: Math.ceil(after / first),\n count: first,\n })\n\n const skus = products.products\n .map((product) => product.items.map((sku) => enhanceSku(sku, product)))\n .flat()\n .filter((sku) => sku.sellers.length > 0)\n\n return {\n pageInfo: {\n hasNextPage: products.pagination.after.length > 0,\n hasPreviousPage: products.pagination.before.length > 0,\n startCursor: '0',\n endCursor: products.recordsFiltered.toString(),\n totalCount: products.recordsFiltered,\n },\n // after + index is bigger than after+first itself because of the array flat() above\n edges: skus.map((sku, index) => ({\n node: sku,\n cursor: (after + index).toString(),\n })),\n }\n },\n allCollections: async (\n _: unknown,\n { first, after: maybeAfter }: QueryAllCollectionsArgs,\n ctx: Context\n ) => {\n const {\n clients: { commerce },\n } = ctx\n\n const after = maybeAfter ? Number(maybeAfter) : 0\n\n const [brands, tree] = await Promise.all([\n commerce.catalog.brand.list(),\n commerce.catalog.category.tree(),\n ])\n\n const categories: Array<CategoryTree & { level: number }> = []\n const dfs = (node: CategoryTree, level: number) => {\n categories.push({ ...node, level })\n\n for (const child of node.children) {\n dfs(child, level + 1)\n }\n }\n\n for (const node of tree) {\n dfs(node, 0)\n }\n\n const collections = [\n ...brands\n .filter((brand) => brand.isActive)\n .map((x) => ({ ...x, type: 'brand' })),\n ...categories,\n ]\n\n const validCollections = collections\n // Nullable slugs may cause one route to override the other\n .filter((node) => Boolean(StoreCollection.slug(node, null, ctx, null)))\n\n return {\n pageInfo: {\n hasNextPage: validCollections.length - after > first,\n hasPreviousPage: after > 0,\n startCursor: '0',\n endCursor: (\n Math.min(first, validCollections.length - after) - 1\n ).toString(),\n totalCount: validCollections.length,\n },\n edges: validCollections\n .slice(after, after + first)\n .map((node, index) => ({\n node,\n cursor: (after + index).toString(),\n })),\n }\n },\n person: async (_: unknown, __: unknown, ctx: Context) => {\n const {\n clients: { commerce },\n } = ctx\n\n const {\n namespaces: { profile = null },\n } = await commerce.session()\n\n return (\n profile && {\n id: profile.id?.value ?? '',\n email: profile.email?.value ?? '',\n givenName: profile.firstName?.value ?? '',\n familyName: profile.lastName?.value ?? '',\n }\n )\n },\n}\n","import type { Resolver } from '..'\nimport type { SearchArgs } from '../clients/search'\nimport type { Facet } from '../clients/search/types/FacetSearchResult'\nimport { enhanceSku } from '../utils/enhanceSku'\n\ntype Root = Omit<SearchArgs, 'type'>\n\nconst REMOVED_FACETS_FROM_COLLECTION_PAGE = ['departamento', 'Departamento']\n\nexport const StoreSearchResult: Record<string, Resolver<Root>> = {\n suggestions: async (searchArgs, _, ctx) => {\n const {\n clients: { search },\n } = ctx\n\n const terms = await search.suggestedTerms(searchArgs)\n const products = await search.suggestedProducts(searchArgs)\n\n const skus = products.products\n .map((product) => {\n const [maybeSku] = product.items\n\n return maybeSku && enhanceSku(maybeSku, product)\n })\n .filter((sku) => !!sku)\n\n const {\n suggestion: { searches },\n } = terms\n\n return {\n terms: searches.map((item) => item.term),\n products: skus,\n }\n },\n products: async (searchArgs, _, ctx) => {\n const {\n clients: { search, sp },\n } = ctx\n\n const products = await search.products(searchArgs)\n\n // Raise event on search's analytics API when performing\n // a full text search.\n if (searchArgs.query) {\n sp.sendEvent({\n type: 'search.query',\n text: searchArgs.query,\n misspelled: products.correction.misspelled,\n match: products.recordsFiltered,\n operator: products.operator,\n }).catch(console.error)\n }\n\n const skus = products.products\n .map((product) => {\n const [maybeSku] = product.items\n\n return maybeSku && enhanceSku(maybeSku, product)\n })\n .filter((sku) => !!sku)\n\n return {\n pageInfo: {\n hasNextPage: products.pagination.after.length > 0,\n hasPreviousPage: products.pagination.before.length > 0,\n startCursor: '0',\n endCursor: products.recordsFiltered.toString(),\n totalCount: products.recordsFiltered,\n },\n edges: skus.map((sku, index) => ({\n node: sku,\n cursor: index.toString(),\n })),\n }\n },\n facets: async (searchArgs, _, ctx) => {\n const {\n clients: { search: is },\n } = ctx\n\n const { facets } = await is.facets(searchArgs)\n\n const isCollectionPage = !searchArgs.query\n const filteredFacets = facets?.reduce((acc, currentFacet) => {\n const shouldFilterFacet = REMOVED_FACETS_FROM_COLLECTION_PAGE.includes(\n currentFacet.name\n )\n\n const shouldRemoveFacetFromCollectionPage =\n isCollectionPage && shouldFilterFacet\n\n if (shouldRemoveFacetFromCollectionPage) {\n return acc\n }\n\n currentFacet.values.sort((a, b) => {\n const firstItemLabel = a.name ?? ''\n const secondItemLabel = b.name ?? ''\n\n return firstItemLabel.localeCompare(secondItemLabel)\n })\n\n acc.push(currentFacet)\n\n return acc\n }, [] as Facet[])\n\n return filteredFacets ?? []\n },\n}\n","import { getClients } from './clients'\nimport { getLoaders } from './loaders'\nimport { StoreAggregateOffer } from './resolvers/aggregateOffer'\nimport { StoreAggregateRating } from './resolvers/aggregateRating'\nimport { StoreCollection } from './resolvers/collection'\nimport { StoreFacet } from './resolvers/facet'\nimport { StoreFacetValue } from './resolvers/facetValue'\nimport { Mutation } from './resolvers/mutation'\nimport { StoreOffer } from './resolvers/offer'\nimport { StoreProduct } from './resolvers/product'\nimport { StoreProductGroup } from './resolvers/productGroup'\nimport { Query } from './resolvers/query'\nimport { StoreReview } from './resolvers/review'\nimport { StoreSearchResult } from './resolvers/searchResult'\nimport { StoreSeo } from './resolvers/seo'\nimport type { Loaders } from './loaders'\nimport type { Clients } from './clients'\nimport type { Channel } from './utils/channel'\nimport ChannelMarshal from './utils/channel'\n\nexport interface Options {\n platform: 'vtex'\n account: string\n environment: 'vtexcommercestable' | 'vtexcommercebeta'\n // Default sales channel to use for fetching products\n channel: string\n hideUnavailableItems: boolean\n}\n\nexport interface Context {\n clients: Clients\n loaders: Loaders\n /**\n * @description Storage updated at each request.\n *\n * Use this datastructure to store and share small values in the context.\n * Use it with caution since dependecy injection leads to a more complex code\n * */\n storage: {\n channel: Required<Channel>\n }\n headers: Record<string, string>\n}\n\nexport type Resolver<R = unknown, A = unknown, Return = any> = (\n root: R,\n args: A,\n ctx: Context,\n info: any\n) => Return\n\nconst Resolvers = {\n StoreCollection,\n StoreAggregateOffer,\n StoreProduct,\n StoreSeo,\n StoreFacet,\n StoreFacetValue,\n StoreOffer,\n StoreAggregateRating,\n StoreReview,\n StoreProductGroup,\n StoreSearchResult,\n Query,\n Mutation,\n}\n\nexport const getContextFactory = (options: Options) => (ctx: any): Context => {\n ctx.storage = {\n channel: ChannelMarshal.parse(options.channel),\n }\n ctx.clients = getClients(options, ctx)\n ctx.loaders = getLoaders(options, ctx)\n\n return ctx\n}\n\nexport const getResolvers = (_: Options) => Resolvers\n","import type { Item } from '../clients/search/types/ProductSearchResult'\nimport type { StoreProduct } from './product'\nimport type { PromiseType } from '../../../typings'\nimport type { Resolver } from '..'\nimport type { EnhancedSku } from '../utils/enhanceSku'\n\ntype Root = PromiseType<ReturnType<typeof StoreProduct.offers>>\n\nexport const StoreAggregateOffer: Record<string, Resolver<Root>> & {\n offers: Resolver<Root, any, Array<Item & { product: EnhancedSku }>>\n} = {\n highPrice: ({ product }) =>\n product.isVariantOf.priceRange.sellingPrice.highPrice ?? 0,\n lowPrice: (root) =>\n root.product.isVariantOf.priceRange.sellingPrice.lowPrice ?? 0,\n offerCount: ({ items }) => items.length,\n priceCurrency: () => '',\n offers: ({ items, product }) =>\n items.map((item) => ({\n ...item,\n product,\n })),\n}\n","import type { Resolver } from '..'\n\ntype Root = { title?: string; description?: string }\n\nexport const StoreSeo: Record<string, Resolver<Root>> = {\n title: ({ title }) => title ?? '',\n description: ({ description }) => description ?? '',\n titleTemplate: () => '',\n canonical: () => '',\n}\n","import type { Resolver } from '..'\nimport type { Facet } from '../clients/search/types/FacetSearchResult'\n\ntype Root = Facet\n\nexport const StoreFacet: Record<string, Resolver<Root>> = {\n key: ({ key }) => key ?? '',\n label: ({ name }) => name ?? 'unknown',\n values: ({ values }) => values,\n type: ({ type }) => (type === 'TEXT' ? 'BOOLEAN' : 'RANGE'),\n}\n","import type { Resolver } from '..'\nimport type { FacetValue } from '../clients/search/types/FacetSearchResult'\n\ntype Root = FacetValue\n\nexport const StoreFacetValue: Record<string, Resolver<Root>> = {\n value: ({ value, range }) =>\n value ?? `${range?.from ?? ''}-to-${range?.to ?? ''}`,\n label: ({ name }) => name || 'unknown',\n selected: ({ selected }) => selected,\n quantity: ({ quantity }) => quantity,\n}\n","import type { Resolver } from '..'\n\n// TODO: Add a review system integration\nexport const StoreAggregateRating: Record<string, Resolver> = {\n ratingValue: () => 5,\n reviewCount: () => 0,\n}\n","import type { Resolver } from '..'\n\nexport const StoreReview: Record<string, Resolver> = {\n reviewRating: () => ({\n ratingValue: 5,\n bestRating: 5,\n }),\n author: () => ({\n name: '',\n }),\n}\n","import { validateCart } from './validateCart'\nimport { updateSession } from './updateSession'\n\nexport const Mutation = {\n validateCart,\n updateSession,\n}\n","import type { Context } from '..'\nimport type {\n MutationUpdateSessionArgs,\n StoreSession,\n} from '../../../__generated__/schema'\nimport ChannelMarshal from '../utils/channel'\n\nexport const updateSession = async (\n _: any,\n { session }: MutationUpdateSessionArgs,\n { clients }: Context\n): Promise<StoreSession> => {\n const channel = ChannelMarshal.parse(session.channel ?? '')\n const regionData = await clients.commerce.checkout.region({\n postalCode: String(session.postalCode ?? '').replace(/\\D/g, ''),\n country: session.country ?? '',\n })\n\n return {\n ...session,\n channel: ChannelMarshal.stringify({\n ...channel,\n regionId: regionData?.[0]?.id,\n }),\n }\n}\n","import { print } from 'graphql'\n\nimport AggregateOffer from './aggregateOffer.graphql'\nimport AggregateRating from './aggregateRating.graphql'\nimport Author from './author.graphql'\nimport Brand from './brand.graphql'\nimport Breadcrumb from './breadcrumb.graphql'\nimport Collection from './collection.graphql'\nimport Facet from './facet.graphql'\nimport Image from './image.graphql'\nimport Mutation from './mutation.graphql'\nimport Offer from './offer.graphql'\nimport Order from './order.graphql'\nimport Organization from './organization.graphql'\nimport PageInfo from './pageInfo.graphql'\nimport Product from './product.graphql'\nimport ProductGroup from './productGroup.graphql'\nimport Query from './query.graphql'\nimport Review from './review.graphql'\nimport Seo from './seo.graphql'\nimport Cart from './cart.graphql'\nimport Status from './status.graphql'\nimport PropertyValue from './propertyValue.graphql'\nimport Person from './person.graphql'\n\nexport const typeDefs = [\n Query,\n Mutation,\n Brand,\n Breadcrumb,\n Collection,\n Facet,\n Image,\n PageInfo,\n Product,\n Seo,\n Offer,\n AggregateRating,\n Review,\n Author,\n ProductGroup,\n Organization,\n AggregateOffer,\n Order,\n Cart,\n Status,\n PropertyValue,\n Person,\n]\n .map(print)\n .join('\\n')\n","import { makeExecutableSchema } from '@graphql-tools/schema'\n\nimport {\n getContextFactory as getContextFactoryVTEX,\n getResolvers as getResolversVTEX,\n} from './platforms/vtex'\nimport { typeDefs } from './typeDefs'\nimport type { Options as OptionsVTEX } from './platforms/vtex'\n\nexport * from './__generated__/schema'\n\nexport type Options = OptionsVTEX\n\nconst platforms = {\n vtex: {\n getResolvers: getResolversVTEX,\n getContextFactory: getContextFactoryVTEX,\n },\n}\n\nexport const getTypeDefs = () => typeDefs\n\nexport const getResolvers = (options: Options) =>\n platforms[options.platform].getResolvers(options)\n\nexport const getContextFactory = (options: Options) =>\n platforms[options.platform].getContextFactory(options)\n\nexport const getSchema = async (options: Options) =>\n makeExecutableSchema({\n resolvers: getResolvers(options),\n typeDefs,\n })\n","import { VtexCommerce } from './commerce'\nimport { IntelligentSearch } from './search'\nimport { SP } from './sp'\nimport type { Context, Options } from '..'\n\nexport type Clients = ReturnType<typeof getClients>\n\nexport const getClients = (options: Options, ctx: Context) => {\n const search = IntelligentSearch(options, ctx)\n const commerce = VtexCommerce(options, ctx)\n const sp = SP(options, ctx)\n\n return {\n search,\n commerce,\n sp,\n }\n}\n","import { getSimulationLoader } from './simulation'\nimport { getSkuLoader } from './sku'\nimport { getCollectionLoader } from './collection'\nimport type { Context, Options } from '..'\n\nexport type Loaders = ReturnType<typeof getLoaders>\n\nexport const getLoaders = (options: Options, { clients }: Context) => {\n const skuLoader = getSkuLoader(options, clients)\n const simulationLoader = getSimulationLoader(options, clients)\n const collectionLoader = getCollectionLoader(options, clients)\n\n return {\n skuLoader,\n simulationLoader,\n collectionLoader,\n }\n}\n","import DataLoader from 'dataloader'\n\nimport { BadRequestError } from '../utils/errors'\nimport { enhanceSku } from '../utils/enhanceSku'\nimport type { EnhancedSku } from '../utils/enhanceSku'\nimport type { Options } from '..'\nimport type { Clients } from '../clients'\nimport type { SelectedFacet } from '../utils/facets'\n\nexport const getSkuLoader = (_: Options, clients: Clients) => {\n const loader = async (facetsList: readonly SelectedFacet[][]) => {\n const skuIds = facetsList.map((facets) => {\n const maybeFacet = facets.find(({ key }) => key === 'id')\n\n if (!maybeFacet) {\n throw new BadRequestError(\n 'Error while loading SKU. Needs to pass an id to selected facets'\n )\n }\n\n return maybeFacet.value\n })\n\n const { products } = await clients.search.products({\n query: `sku:${skuIds.join(';')}`,\n page: 0,\n count: skuIds.length,\n })\n\n const skuBySkuId = products.reduce((acc, product) => {\n for (const sku of product.items) {\n acc[sku.itemId] = enhanceSku(sku, product)\n }\n\n return acc\n }, {} as Record<string, EnhancedSku>)\n\n const skus = skuIds.map((skuId) => skuBySkuId[skuId])\n const missingSkus = skus.filter((sku) => !sku)\n\n if (missingSkus.length > 0) {\n throw new Error(\n `Search API did not return the following skus: ${missingSkus.join(',')}`\n )\n }\n\n return skus\n }\n\n return new DataLoader<SelectedFacet[], EnhancedSku>(loader, {\n maxBatchSize: 99, // Max allowed batch size of Search API\n })\n}\n","import DataLoader from 'dataloader'\nimport pLimit from 'p-limit'\n\nimport type {\n PayloadItem,\n Simulation,\n} from '../clients/commerce/types/Simulation'\nimport type { Options } from '..'\nimport type { Clients } from '../clients'\n\n// Limits concurrent requests to the API per request cycle\nconst CONCURRENT_REQUESTS_MAX = 1\n\nexport const getSimulationLoader = (_: Options, clients: Clients) => {\n const limit = pLimit(CONCURRENT_REQUESTS_MAX)\n\n const loader = async (allItems: readonly PayloadItem[][]) => {\n const items = [...allItems.flat()]\n const simulation = await clients.commerce.checkout.simulation({\n items,\n })\n\n // Sort and filter simulation since Checkout API may return\n // items that we didn't ask for\n const simulated = simulation.items.reduce((acc, item) => {\n const index = item.requestIndex\n\n if (typeof index === 'number' && index < acc.length) {\n acc[index] = item\n }\n\n return acc\n }, Array(items.length).fill(null) as Simulation['items'])\n\n const itemsIndices = allItems.reduce(\n (acc, curr) => [...acc, curr.length + acc[acc.length - 1]],\n [0]\n )\n\n return allItems.map((__, index) => ({\n ...simulation,\n items: simulated\n .slice(itemsIndices[index], itemsIndices[index + 1])\n .filter((item) => Boolean(item)),\n }))\n }\n\n const limited = async (allItems: readonly PayloadItem[][]) =>\n limit(loader, allItems)\n\n return new DataLoader<PayloadItem[], Simulation>(limited, {\n maxBatchSize: 50,\n })\n}\n"],"names":["fetchAPI","async","info","init","response","fetch","ok","status","json","undefined","console","error","text","Error","BASE_INIT","method","headers","IntelligentSearch","account","environment","hideUnavailableItems","ctx","base","policyFacet","key","value","storage","channel","salesChannel","search","query","page","count","sort","selectedFacets","type","fuzzy","params","URLSearchParams","toString","append","pathname","facets","find","map","join","args","products","suggestedTerms","suggestedProducts","randomUUID","Math","random","toFixed","createId","expiresSecond","payload","createdAt","Date","now","past","user","anonymous","session","BadRequestError","constructor","message","name","NotFoundError","enhanceSku","item","product","isVariantOf","collectionPageTypes","Set","isCollectionPageType","x","pageType","has","toLowerCase","from","isBrand","slugifyRoot","root","str","replace","slugifySpecialCharacters","newStr","slice","i","length","RegExp","charAt","removeDiacritics","URL","url","StoreCollection","id","slug","seo","title","description","metaTagDescription","Title","MetaTagDescription","level","meta","split","segment","index","breadcrumbList","_","loaders","collectionLoader","segments","filter","Boolean","slugs","__","collections","Promise","all","s","load","itemListElement","collection","position","numberOfItems","getId","itemOffered","sku","seller","identifier","price","orderFormItemToOffer","listPrice","sellingPrice","quantity","image","offerToOrderItemInput","offer","groupById","offers","reduce","acc","set","get","Map","ChannelMarshal","channelString","parsedChannel","JSON","parse","regionId","stringify","mutateChannelContext","inStock","sellers","commertialOffer","AvailableQuantity","getFirstSeller","getItemPriceByKey","_getFirstSeller","isSearchItem","isOrderFormItem","getAvailability","available","DEFAULT_IMAGE","imageText","imageUrl","getSlug","link","BLOCKED_PROPERTIES","sellerId","transformSelectedFacet","channelFacets","push","SORT_MAP","price_desc","price_asc","orders_desc","name_desc","name_asc","release_desc","discount_desc","score_desc","Query","locator","facet","_locator$find","skuLoader","flatMap","first","after","maybeAfter","term","_selectedFacets$find","Number","ceil","allProducts","clients","skus","items","flat","pageInfo","hasNextPage","pagination","hasPreviousPage","before","startCursor","endCursor","recordsFiltered","totalCount","edges","node","cursor","allCollections","commerce","brands","tree","catalog","brand","list","category","categories","dfs","child","children","validCollections","isActive","min","person","namespaces","profile","_profile$id","email","_profile$email","givenName","firstName","_profile$firstName","familyName","lastName","_profile$lastName","REMOVED_FACETS_FROM_COLLECTION_PAGE","Resolvers","StoreAggregateOffer","highPrice","priceRange","lowPrice","offerCount","priceCurrency","StoreProduct","productID","itemId","productName","linkText","reverse","categoryPath","categoryNames","images","array","Array","isArray","alternateName","gtin","referenceId","_referenceId$","Value","review","aggregateRating","a","b","additionalProperty","attributes","attribute","StoreSeo","titleTemplate","canonical","StoreFacet","label","values","StoreFacetValue","range","to","selected","StoreOffer","priceValidUntil","PriceValidUntil","itemCondition","availability","_getFirstSeller2","StoreAggregateRating","ratingValue","reviewCount","StoreReview","reviewRating","bestRating","author","StoreProductGroup","hasVariant","productGroupID","productId","properties","property","propertyValue","StoreSearchResult","suggestions","searchArgs","terms","maybeSku","suggestion","searches","sp","sendEvent","misspelled","correction","match","operator","catch","is","isCollectionPage","filteredFacets","currentFacet","shouldFilterFacet","includes","firstItemLabel","secondItemLabel","localeCompare","Mutation","validateCart","cart","order","orderNumber","acceptedOffer","orderForm","checkout","browserItemsById","originItemsById","browserItems","originItems","itemsToAdd","itemsToUpdate","maybeOriginItem","changes","updatedOrderForm","updateOrderFormItems","orderFormId","orderItems","storeOrder","pick","orderFormItems","storeOrderItems","isSameOrder","orderItemsAreSync","deepEquals","equals","messages","toUpperCase","updateSession","regionData","region","postalCode","String","country","_regionData$","typeDefs","Brand","Breadcrumb","Collection","Facet","Image","PageInfo","Product","Seo","Offer","AggregateRating","Review","Author","ProductGroup","Organization","AggregateOffer","Order","Cart","Status","PropertyValue","Person","print","platforms","vtex","getResolvers","getContextFactory","options","depth","portal","pagetype","simulation","sc","body","refreshOutdatedData","allowOutdatedData","cookie","VtexCommerce","agent","SP","getClients","DataLoader","skuIds","facetsList","maybeFacet","skuBySkuId","skuId","missingSkus","maxBatchSize","getSkuLoader","simulationLoader","limit","pLimit","loader","allItems","simulated","requestIndex","fill","itemsIndices","curr","getSimulationLoader","batch","getCollectionLoader","getLoaders","platform","makeExecutableSchema","resolvers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.cjs.production.min.js","sources":["../src/platforms/vtex/clients/fetch.ts","../src/platforms/vtex/clients/commerce/index.ts","../src/platforms/vtex/clients/search/index.ts","../src/platforms/vtex/clients/sp/index.ts","../src/platforms/vtex/utils/errors.ts","../src/platforms/vtex/utils/enhanceSku.ts","../src/platforms/vtex/loaders/collection.ts","../src/platforms/vtex/utils/slugify.ts","../src/platforms/vtex/resolvers/collection.ts","../src/platforms/vtex/resolvers/validateCart.ts","../src/platforms/vtex/utils/channel.ts","../src/platforms/vtex/utils/productStock.ts","../src/platforms/vtex/resolvers/offer.ts","../src/platforms/vtex/resolvers/product.ts","../src/platforms/vtex/resolvers/productGroup.ts","../src/platforms/vtex/utils/facets.ts","../src/platforms/vtex/utils/sort.ts","../src/platforms/vtex/resolvers/query.ts","../src/platforms/vtex/resolvers/searchResult.ts","../src/platforms/vtex/index.ts","../src/platforms/vtex/resolvers/aggregateOffer.ts","../src/platforms/vtex/resolvers/seo.ts","../src/platforms/vtex/resolvers/facet.ts","../src/platforms/vtex/resolvers/facetValue.ts","../src/platforms/vtex/resolvers/aggregateRating.ts","../src/platforms/vtex/resolvers/review.ts","../src/platforms/vtex/resolvers/mutation.ts","../src/platforms/vtex/resolvers/updateSession.ts","../src/typeDefs/index.ts","../src/index.ts","../src/platforms/vtex/clients/index.ts","../src/platforms/vtex/loaders/index.ts","../src/platforms/vtex/loaders/sku.ts","../src/platforms/vtex/loaders/simulation.ts"],"sourcesContent":["import fetch from 'isomorphic-unfetch'\n\nexport const fetchAPI = async (info: RequestInfo, init?: RequestInit) => {\n const response = await fetch(info, init)\n\n if (response.ok) {\n return response.status !== 204 ? response.json() : undefined\n }\n\n console.error(info, init, response)\n const text = await response.text()\n\n throw new Error(text)\n}\n","import type { Context, Options } from '../../index'\nimport { fetchAPI } from '../fetch'\nimport type { Brand } from './types/Brand'\nimport type { CategoryTree } from './types/CategoryTree'\nimport type { OrderForm, OrderFormInputItem } from './types/OrderForm'\nimport type { PortalPagetype } from './types/Portal'\nimport type { Region, RegionInput } from './types/Region'\nimport type {\n Simulation,\n SimulationArgs,\n SimulationOptions,\n} from './types/Simulation'\nimport type { Session } from './types/Session'\nimport type { Channel } from '../../utils/channel'\n\nconst BASE_INIT = {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n}\n\nexport const VtexCommerce = (\n { account, environment }: Options,\n ctx: Context\n) => {\n const base = `https://${account}.${environment}.com.br`\n\n return {\n catalog: {\n brand: {\n list: (): Promise<Brand[]> =>\n fetchAPI(`${base}/api/catalog_system/pub/brand/list`),\n },\n category: {\n tree: (depth = 3): Promise<CategoryTree[]> =>\n fetchAPI(`${base}/api/catalog_system/pub/category/tree/${depth}`),\n },\n portal: {\n pagetype: (slug: string): Promise<PortalPagetype> =>\n fetchAPI(`${base}/api/catalog_system/pub/portal/pagetype/${slug}`),\n },\n },\n checkout: {\n simulation: (\n args: SimulationArgs,\n { salesChannel }: SimulationOptions = ctx.storage.channel\n ): Promise<Simulation> => {\n const params = new URLSearchParams({\n sc: salesChannel,\n })\n\n return fetchAPI(\n `${base}/api/checkout/pub/orderForms/simulation?${params.toString()}`,\n {\n ...BASE_INIT,\n body: JSON.stringify(args),\n }\n )\n },\n orderForm: ({\n id,\n refreshOutdatedData = true,\n channel = ctx.storage.channel,\n }: {\n id: string\n refreshOutdatedData?: boolean\n channel?: Required<Channel>\n }): Promise<OrderForm> => {\n const { salesChannel } = channel\n const params = new URLSearchParams({\n refreshOutdatedData: refreshOutdatedData.toString(),\n sc: salesChannel,\n })\n\n return fetchAPI(\n `${base}/api/checkout/pub/orderForm/${id}?${params.toString()}`,\n BASE_INIT\n )\n },\n updateOrderFormItems: ({\n id,\n orderItems,\n allowOutdatedData = 'paymentData',\n salesChannel = ctx.storage.channel.salesChannel,\n }: {\n id: string\n orderItems: OrderFormInputItem[]\n allowOutdatedData?: 'paymentData'\n salesChannel?: string\n }): Promise<OrderForm> => {\n const params = new URLSearchParams({\n allowOutdatedData,\n sc: salesChannel,\n })\n\n return fetchAPI(\n `${base}/api/checkout/pub/orderForm/${id}/items?${params}`,\n {\n ...BASE_INIT,\n body: JSON.stringify({ orderItems }),\n method: 'PATCH',\n }\n )\n },\n region: async ({\n postalCode,\n country,\n salesChannel,\n }: RegionInput): Promise<Region> => {\n return fetchAPI(\n `${base}/api/checkout/pub/regions/?postalCode=${postalCode}&country=${country}&sc=${\n salesChannel ?? ''\n }`\n )\n },\n },\n session: (): Promise<Session> =>\n fetchAPI(\n `${base}/api/sessions?items=profile.id,profile.email,profile.firstName,profile.lastName`,\n {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n cookie: ctx.headers.cookie,\n },\n body: '{}',\n }\n ),\n }\n}\n","import type { IStoreSelectedFacet } from '../../../../__generated__/schema'\nimport type { Context, Options } from '../../index'\nimport type { SelectedFacet } from '../../utils/facets'\nimport { fetchAPI } from '../fetch'\nimport type { FacetSearchResult } from './types/FacetSearchResult'\nimport type {\n ProductSearchResult,\n SuggestedTerms,\n} from './types/ProductSearchResult'\n\nexport type Sort =\n | 'price:desc'\n | 'price:asc'\n | 'orders:desc'\n | 'name:desc'\n | 'name:asc'\n | 'release:desc'\n | 'discount:desc'\n | ''\n\nexport interface SearchArgs {\n query?: string\n page: number\n count: number\n type: 'product_search' | 'facets'\n sort?: Sort\n selectedFacets?: SelectedFacet[]\n fuzzy?: '0' | '1'\n hideUnavailableItems?: boolean\n}\n\nexport interface ProductLocator {\n field: 'id' | 'slug'\n value: string\n}\n\nexport const IntelligentSearch = (\n { account, environment, hideUnavailableItems }: Options,\n ctx: Context\n) => {\n const base = `https://${account}.${environment}.com.br/api/io`\n const policyFacet: IStoreSelectedFacet = {\n key: 'trade-policy',\n value: ctx.storage.channel.salesChannel,\n }\n\n const addDefaultFacets = (facets: SelectedFacet[]) => {\n const facet = facets.find(({ key }) => key === policyFacet.key)\n\n if (facet === undefined) {\n return [...facets, policyFacet]\n }\n\n return facets\n }\n\n const search = <T>({\n query = '',\n page,\n count,\n sort = '',\n selectedFacets = [],\n type,\n fuzzy = '0',\n }: SearchArgs): Promise<T> => {\n const params = new URLSearchParams({\n page: (page + 1).toString(),\n count: count.toString(),\n query,\n sort,\n fuzzy,\n })\n\n if (hideUnavailableItems !== undefined) {\n params.append('hideUnavailableItems', hideUnavailableItems.toString())\n }\n\n const pathname = addDefaultFacets(selectedFacets)\n .map(({ key, value }) => `${key}/${value}`)\n .join('/')\n\n return fetchAPI(\n `${base}/_v/api/intelligent-search/${type}/${pathname}?${params.toString()}`\n )\n }\n\n const products = (args: Omit<SearchArgs, 'type'>) =>\n search<ProductSearchResult>({ ...args, type: 'product_search' })\n\n const suggestedProducts = (\n args: Omit<SearchArgs, 'type'>\n ): Promise<ProductSearchResult> =>\n fetchAPI(`${base}/api/suggestion_products/?term=${args.query}`)\n\n const suggestedTerms = (\n args: Omit<SearchArgs, 'type'>\n ): Promise<SuggestedTerms> =>\n fetchAPI(`${base}/api/split/suggestion_search/?q=${args.query}`)\n\n const facets = (args: Omit<SearchArgs, 'type'>) =>\n search<FacetSearchResult>({ ...args, type: 'facets' })\n\n return {\n facets,\n products,\n suggestedTerms,\n suggestedProducts,\n }\n}\n","/**\n * Client for SP, Intelligent search's analytics event API\n * More info at: https://www.notion.so/vtexhandbook/Event-API-Documentation-48eee26730cf4d7f80f8fd7262231f84\n */\nimport { fetchAPI } from '../fetch'\nimport type { Options, Context } from '../../index'\n\nconst THIRTY_MINUTES_S = 30 * 60\nconst ONE_YEAR_S = 365 * 24 * 3600\n\nconst randomUUID = () => (Math.random() * 1e6).toFixed(0)\n\nconst timelapsed = (past: number) => (Date.now() - past) / 1e3\n\nconst createId = (expiresSecond: number) => {\n let payload = randomUUID()\n let createdAt = Date.now()\n\n return () => {\n if (timelapsed(createdAt) > expiresSecond) {\n payload = randomUUID()\n createdAt = Date.now()\n }\n\n return payload\n }\n}\n\nconst user = {\n anonymous: createId(ONE_YEAR_S),\n session: createId(THIRTY_MINUTES_S),\n}\n\nexport type SearchEvent = {\n type: 'search.query'\n text: string // 'zapatilha'\n misspelled: boolean\n match: number\n operator: 'and' | 'or'\n session?: string\n anonymous?: string\n}\n\nexport const SP = ({ account }: Options, _: Context) => {\n const base = `https://sp.vtex.com/event-api/v1/${account}/event`\n\n const sendEvent = (options: SearchEvent) => {\n return fetchAPI(base, {\n method: 'POST',\n body: JSON.stringify({\n ...options,\n agent: '@faststore/api',\n anonymous: user.anonymous(),\n session: user.session(),\n // session: 'zZlNhqz1vFJP6iPG5Oqtt',\n // anonymous: 'Om1TNluGvgmSgU5OOTvkkd',\n }),\n headers: {\n 'content-type': 'application/json',\n },\n })\n }\n\n return {\n sendEvent,\n }\n}\n","export class BadRequestError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'BadRequestError'\n }\n}\n\nexport class NotFoundError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'NotFoundError'\n }\n}\n","import type { Product, Item } from '../clients/search/types/ProductSearchResult'\n\nexport type EnhancedSku = Item & { isVariantOf: Product }\n\nexport const enhanceSku = (item: Item, product: Product): EnhancedSku => ({\n ...item,\n isVariantOf: product,\n})\n","import DataLoader from 'dataloader'\nimport pLimit from 'p-limit'\n\nimport { NotFoundError } from '../utils/errors'\nimport type { CollectionPageType } from '../clients/commerce/types/Portal'\nimport type { Options } from '..'\nimport type { Clients } from '../clients'\n\n// Limits concurrent requests to 20 so that they don't timeout\nconst CONCURRENT_REQUESTS_MAX = 20\n\nconst collectionPageTypes = new Set([\n 'brand',\n 'category',\n 'department',\n 'subcategory',\n] as const)\n\nexport const isCollectionPageType = (x: any): x is CollectionPageType =>\n typeof x.pageType === 'string' &&\n collectionPageTypes.has(x.pageType.toLowerCase())\n\nexport const getCollectionLoader = (_: Options, clients: Clients) => {\n const limit = pLimit(CONCURRENT_REQUESTS_MAX)\n\n const loader = async (\n slugs: readonly string[]\n ): Promise<CollectionPageType[]> => {\n return Promise.all(\n slugs.map((slug: string) =>\n limit(async () => {\n const page = await clients.commerce.catalog.portal.pagetype(slug)\n\n if (isCollectionPageType(page)) {\n return page\n }\n\n throw new NotFoundError(\n `Catalog returned ${page.pageType} for slug: ${slug}. This usually happens when there is more than one category with the same name in the same category tree level.`\n )\n })\n )\n )\n }\n\n return new DataLoader<string, CollectionPageType>(loader, {\n // DataLoader is being used to cache requests, not to batch them\n batch: false,\n })\n}\n","/* eslint-disable no-useless-escape */\n/**\n * VTEX catalog slugify function\n *\n * Copied from:\n * https://github.com/vtex/rewriter/blob/1ce2010783e0586cab42534ce2fb7a983d8a3a84/node/clients/catalog.ts#L72\n *\n * Sometimes, we need to slugify strings for creating urls. An example is the\n * brand urls, where we create them from the brand's name.\n * This slugify function should match exactly what VTEX catalog generates. Any mismatch\n * will lead to broken links.\n * Hopefully, we had this function implemented on VTEX IO and we've been using it for\n * years now. However, looking at the code, I think we can save lots of computing. I'm\n * in a hurry for doing these tests now, so I'll leave a small TODO.\n *\n * TODO: Research for better ways of computing this slugify function. Things I'd try are:\n * - Join those 3 regexs for special characters into a single one.\n * - Replace the regexp of `removeDiacritics` function with a Map. We can make the complexity\n * of this function be O(n) with n=string.length\n *\n */\nconst from =\n 'ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆÍÌÎÏŇÑÓÖÒÔÕØŘŔŠŤÚŮÜÙÛÝŸŽáäâàãåčçćďéěëèêẽĕȇíìîïňñóöòôõøðřŕšťúůüùûýÿžþÞĐđ߯a'\n\nconst to =\n 'AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa'\n\nconst removeDiacritics = (str: string) => {\n let newStr = str.slice(0)\n\n for (let i = 0; i < from.length; i++) {\n newStr = newStr.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i))\n }\n\n return newStr\n}\n\nconst slugifySpecialCharacters = (str: string) => {\n return str.replace(/[·/_,:]/, '-')\n}\n\nexport function slugify(str: string) {\n const noCommas = str.replace(/,/g, '')\n const replaced = noCommas.replace(/[*+~.()'\"!:@&\\[\\]`/ %$#?{}|><=_^]/g, '-')\n const slugified = slugifySpecialCharacters(removeDiacritics(replaced))\n\n return slugified.toLowerCase()\n}\n","import { isCollectionPageType } from '../loaders/collection'\nimport { slugify } from '../utils/slugify'\nimport type { Resolver } from '..'\nimport type { Brand } from '../clients/commerce/types/Brand'\nimport type { CategoryTree } from '../clients/commerce/types/CategoryTree'\nimport type { CollectionPageType } from '../clients/commerce/types/Portal'\n\ntype Root = Brand | (CategoryTree & { level: number }) | CollectionPageType\n\nconst isBrand = (x: any): x is Brand | CollectionPageType =>\n x.type === 'brand' ||\n (isCollectionPageType(x) && x.pageType.toLowerCase() === 'brand')\n\nconst slugifyRoot = (root: Root) => {\n if (isBrand(root)) {\n return slugify(root.name)\n }\n\n if (isCollectionPageType(root)) {\n return new URL(`https://${root.url}`).pathname.slice(1).toLowerCase()\n }\n\n return new URL(root.url).pathname.slice(1).toLowerCase()\n}\n\nexport const StoreCollection: Record<string, Resolver<Root>> = {\n id: ({ id }) => id.toString(),\n slug: (root) => slugifyRoot(root),\n seo: (root) =>\n isBrand(root) || isCollectionPageType(root)\n ? {\n title: root.title,\n description: root.metaTagDescription,\n }\n : {\n title: root.Title,\n description: root.MetaTagDescription,\n },\n type: (root) =>\n isBrand(root)\n ? 'Brand'\n : isCollectionPageType(root)\n ? root.pageType\n : root.level === 0\n ? 'Department'\n : 'Category',\n meta: (root) => {\n const slug = slugifyRoot(root)\n\n return isBrand(root)\n ? {\n selectedFacets: [{ key: 'brand', value: slug }],\n }\n : {\n selectedFacets: slug.split('/').map((segment, index) => ({\n key: `category-${index + 1}`,\n value: segment,\n })),\n }\n },\n breadcrumbList: async (root, _, ctx) => {\n const {\n loaders: { collectionLoader },\n } = ctx\n\n const slug = slugifyRoot(root)\n\n /**\n * Split slug into segments so we fetch all data for\n * the breadcrumb. For instance, if we get `/foo/bar`\n * we need all metadata for both `/foo` and `/bar` and\n * thus we need to fetch pageType for `/foo` and `/bar`\n */\n const segments = slug.split('/').filter((segment) => Boolean(segment))\n const slugs = segments.map((__, index) =>\n segments.slice(0, index + 1).join('/')\n )\n\n const collections = await Promise.all(\n slugs.map((s) => collectionLoader.load(s))\n )\n\n return {\n itemListElement: collections.map((collection, index) => ({\n item: new URL(`https://${collection.url}`).pathname.toLowerCase(),\n name: collection.name,\n position: index + 1,\n })),\n numberOfItems: collections.length,\n }\n },\n}\n","import deepEquals from 'fast-deep-equal'\n\nimport type {\n IStoreOrder,\n IStoreCart,\n IStoreOffer,\n} from '../../../__generated__/schema'\nimport type {\n OrderForm,\n OrderFormItem,\n OrderFormInputItem,\n} from '../clients/commerce/types/OrderForm'\nimport type { Context } from '..'\n\ntype Indexed<T> = T & { index?: number }\n\nconst getId = (item: IStoreOffer) =>\n [item.itemOffered.sku, item.seller.identifier, item.price].join('::')\n\nconst orderFormItemToOffer = (\n item: OrderFormItem,\n index?: number\n): Indexed<IStoreOffer> => ({\n listPrice: item.listPrice / 100,\n price: item.sellingPrice / 100,\n quantity: item.quantity,\n seller: { identifier: item.seller },\n itemOffered: {\n sku: item.id,\n image: [],\n name: item.name,\n },\n index,\n})\n\nconst offerToOrderItemInput = (\n offer: Indexed<IStoreOffer>\n): OrderFormInputItem => ({\n quantity: offer.quantity,\n seller: offer.seller.identifier,\n id: offer.itemOffered.sku,\n index: offer.index,\n})\n\nconst groupById = (offers: IStoreOffer[]): Map<string, IStoreOffer> =>\n offers.reduce((acc, item) => {\n const id = getId(item)\n\n acc.set(id, acc.get(id) ?? item)\n\n return acc\n }, new Map<string, IStoreOffer>())\n\nconst equals = (storeOrder: IStoreOrder, orderForm: OrderForm) => {\n const pick = (item: Indexed<IStoreOffer>, index: number) => ({\n ...item,\n itemOffered: {\n sku: item.itemOffered.sku,\n },\n index,\n })\n\n const orderFormItems = orderForm.items.map(orderFormItemToOffer).map(pick)\n const storeOrderItems = storeOrder.acceptedOffer.map(pick)\n\n const isSameOrder = storeOrder.orderNumber === orderForm.orderFormId\n const orderItemsAreSync = deepEquals(orderFormItems, storeOrderItems)\n\n return isSameOrder && orderItemsAreSync\n}\n\n/**\n * This resolver implements the optimistic cart behavior. The main idea in here\n * is that we receive a cart from the UI (as query params) and we validate it with\n * the commerce platform. If the cart is valid, we return null, if the cart is\n * invalid according to the commerce platform, we return the new cart the UI should use\n * instead.\n *\n * The algorithm is something like:\n * 1. Fetch orderForm from VTEX\n * 2. Compute delta changes between the orderForm and the UI's cart\n * 3. Update the orderForm in VTEX platform accordingly\n * 4. If any changes were made, send to the UI the new cart. Null otherwise\n */\nexport const validateCart = async (\n _: unknown,\n { cart: { order } }: { cart: IStoreCart },\n ctx: Context\n) => {\n const { orderNumber, acceptedOffer } = order\n const {\n clients: { commerce },\n loaders: { skuLoader },\n } = ctx\n\n // Step1: Get OrderForm from VTEX Commerce\n const orderForm = await commerce.checkout.orderForm({\n id: orderNumber,\n })\n\n // Step2: Process items from both browser and checkout so they have the same shape\n const browserItemsById = groupById(acceptedOffer)\n const originItemsById = groupById(orderForm.items.map(orderFormItemToOffer))\n const browserItems = Array.from(browserItemsById.values()) // items on the user's browser\n const originItems = Array.from(originItemsById.values()) // items on the VTEX platform backend\n\n // Step3: Compute delta changes\n const { itemsToAdd, itemsToUpdate } = browserItems.reduce(\n (acc, item) => {\n const maybeOriginItem = originItemsById.get(getId(item))\n\n if (!maybeOriginItem) {\n acc.itemsToAdd.push(item)\n } else {\n acc.itemsToUpdate.push({\n ...maybeOriginItem,\n quantity: item.quantity,\n })\n }\n\n return acc\n },\n {\n itemsToAdd: [] as IStoreOffer[],\n itemsToUpdate: [] as IStoreOffer[],\n }\n )\n\n const itemsToDelete = originItems\n .filter((item) => !browserItemsById.has(getId(item)))\n .map((item) => ({ ...item, quantity: 0 }))\n\n const changes = [...itemsToAdd, ...itemsToUpdate, ...itemsToDelete].map(\n offerToOrderItemInput\n )\n\n if (changes.length === 0) {\n return null\n }\n\n // Step4: Apply delta changes to order form\n const updatedOrderForm = await commerce.checkout.updateOrderFormItems({\n id: orderForm.orderFormId,\n orderItems: changes,\n })\n\n // Step5: If no changes detected before/after updating orderForm, the order is validated\n if (equals(order, updatedOrderForm)) {\n return null\n }\n\n // Step6: There were changes, convert orderForm to StoreOrder\n return {\n order: {\n orderNumber: updatedOrderForm.orderFormId,\n acceptedOffer: updatedOrderForm.items.map((item) => ({\n ...item,\n product: skuLoader.load([{ key: 'id', value: item.id }]), // TODO: add channel\n })),\n },\n messages: updatedOrderForm.messages.map(({ text, status }) => ({\n text,\n status: status.toUpperCase(),\n })),\n }\n}\n","import type { Context } from '..'\n\nexport interface Channel {\n regionId?: string\n salesChannel?: string\n}\n\nexport default class ChannelMarshal {\n public static parse(channelString: string): Required<Channel> {\n try {\n const parsedChannel = JSON.parse(channelString) as Channel\n\n return {\n regionId: parsedChannel.regionId ?? '',\n salesChannel: parsedChannel.salesChannel ?? '',\n }\n } catch (error) {\n console.error(error)\n\n throw new Error('Malformed channel string')\n }\n }\n\n public static stringify(channel: Channel): string {\n return JSON.stringify(channel)\n }\n}\n\nexport const mutateChannelContext = (ctx: Context, channelString: string) => {\n ctx.storage = {\n ...ctx.storage,\n channel: ChannelMarshal.parse(channelString),\n }\n}\n","import type {\n Item,\n Seller,\n CommertialOffer,\n} from '../clients/search/types/ProductSearchResult'\n\nexport const inStock = (item: Item) =>\n item.sellers.find((seller) => seller.commertialOffer.AvailableQuantity > 0)\n\nexport const getFirstSeller = (sellers: Seller[]): Seller | undefined =>\n sellers[0]\n\nexport const getItemPriceByKey = (\n item: Item,\n key: keyof CommertialOffer\n): number => getFirstSeller(item.sellers)?.commertialOffer[key] ?? 0\n\n// Smallest Available Selling Price First\nexport const sortOfferByPrice = (items: Item[]): Item[] =>\n items.sort((a, b) => {\n if (inStock(a) && !inStock(b)) {\n return -1\n }\n\n if (!inStock(a) && inStock(b)) {\n return 1\n }\n\n return getItemPriceByKey(a, 'Price') - getItemPriceByKey(b, 'Price')\n })\n\nexport const inStockOrderFormItem = (availability: string) =>\n availability === 'available'\n","import type { Resolver } from '..'\nimport type { StoreAggregateOffer } from './aggregateOffer'\nimport {\n getFirstSeller,\n inStock,\n inStockOrderFormItem,\n getItemPriceByKey,\n} from '../utils/productStock'\nimport type { ArrayElementType } from '../../../typings'\nimport type { Item } from '../clients/search/types/ProductSearchResult'\nimport type { EnhancedSku } from '../utils/enhanceSku'\nimport type { OrderFormItem } from '../clients/commerce/types/OrderForm'\n\ntype OrderFormProduct = OrderFormItem & { product: Promise<EnhancedSku> }\ntype SearchProduct = ArrayElementType<\n ReturnType<typeof StoreAggregateOffer.offers>\n>\ntype Root = SearchProduct | OrderFormProduct\n\nconst isSearchItem = (item: any): item is Item => 'sellers' in item\nconst isOrderFormItem = (item: any): item is OrderFormProduct =>\n 'skuName' in item\n\nconst getAvailability = (available: boolean) =>\n available ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock'\n\nexport const StoreOffer: Record<string, Resolver<Root>> = {\n priceCurrency: () => '',\n priceValidUntil: (item) => {\n if (isSearchItem(item)) {\n return getFirstSeller(item.sellers)?.commertialOffer.PriceValidUntil ?? ''\n }\n\n if (isOrderFormItem(item)) {\n return item.priceValidUntil ?? ''\n }\n\n return null\n },\n itemCondition: () => 'https://schema.org/NewCondition',\n availability: async (item) => {\n if (isSearchItem(item)) {\n return getAvailability(!!inStock(item))\n }\n\n if (isOrderFormItem(item)) {\n return getAvailability(inStockOrderFormItem(item.availability))\n }\n\n return null\n },\n seller: (item) => {\n if (isSearchItem(item)) {\n return {\n identifier: getFirstSeller(item.sellers)?.sellerId ?? '',\n }\n }\n\n if (isOrderFormItem(item)) {\n return {\n identifier: item.seller,\n }\n }\n\n return null\n },\n price: (item) => {\n if (isSearchItem(item)) {\n return getItemPriceByKey(item, 'spotPrice')\n }\n\n if (isOrderFormItem(item)) {\n return item.price / 1e2\n }\n\n return null\n },\n sellingPrice: (item) => {\n if (isSearchItem(item)) {\n return getItemPriceByKey(item, 'Price')\n }\n\n if (isOrderFormItem(item)) {\n return item.sellingPrice / 1e2\n }\n\n return null\n },\n listPrice: (item) => {\n if (isSearchItem(item)) {\n return getItemPriceByKey(item, 'ListPrice')\n }\n\n if (isOrderFormItem(item)) {\n return item.listPrice / 1e2\n }\n\n return null\n },\n itemOffered: ({ product }) => product,\n quantity: (item) => {\n if (isSearchItem(item)) {\n return item.sellers.reduce(\n (quantity, seller) =>\n quantity + seller.commertialOffer.AvailableQuantity,\n 0\n )\n }\n\n if (isOrderFormItem(item)) {\n return item.quantity\n }\n\n return null\n },\n}\n","import type { Resolver } from '..'\nimport { sortOfferByPrice } from '../utils/productStock'\nimport type { PromiseType } from '../../../typings'\nimport type { Query } from './query'\nimport type { Item } from '../clients/search/types/ProductSearchResult'\nimport type { EnhancedSku } from '../utils/enhanceSku'\n\ntype Root = PromiseType<ReturnType<typeof Query.product>>\n\nconst DEFAULT_IMAGE = {\n imageText: 'image',\n imageUrl:\n 'https://storecomponents.vtexassets.com/assets/faststore/images/image___117a6d3e229a96ad0e0d0876352566e2.svg',\n}\n\nconst getSlug = (link: string, id: string) => `${link}-${id}`\nconst getPath = (link: string, id: string) => `/${getSlug(link, id)}/p`\nconst nonEmptyArray = <T>(array: T[] | null | undefined) =>\n Array.isArray(array) && array.length > 0 ? array : null\n\nexport const StoreProduct: Record<string, Resolver<Root>> & {\n offers: Resolver<Root, any, { items: Item[]; product: EnhancedSku }>\n isVariantOf: Resolver<Root, any, Root>\n} = {\n productID: ({ itemId }) => itemId,\n name: ({ isVariantOf, name }) => name ?? isVariantOf.productName,\n slug: ({ isVariantOf: { linkText }, itemId }) => getSlug(linkText, itemId),\n description: ({ isVariantOf: { description } }) => description,\n seo: ({ isVariantOf: { description, productName } }) => ({\n title: productName,\n description,\n }),\n brand: ({ isVariantOf: { brand } }) => ({ name: brand }),\n breadcrumbList: ({\n isVariantOf: { categories, productName, linkText },\n itemId,\n }) => {\n return {\n itemListElement: [\n ...categories.reverse().map((categoryPath, index) => {\n const categoryNames = categoryPath.split('/')\n\n return {\n name: categoryNames[categoryNames.length - 2],\n item: categoryPath.toLowerCase(),\n position: index + 1,\n }\n }),\n {\n name: productName,\n item: getPath(linkText, itemId),\n position: categories.length + 1,\n },\n ],\n numberOfItems: categories.length,\n }\n },\n image: ({ images }) =>\n (nonEmptyArray(images) ?? [DEFAULT_IMAGE]).map(\n ({ imageUrl, imageText }) => ({\n alternateName: imageText ?? '',\n url: imageUrl.replace('vteximg.com.br', 'vtexassets.com'),\n })\n ),\n sku: ({ itemId }) => itemId,\n gtin: ({ referenceId }) => referenceId[0]?.Value ?? '',\n review: () => [],\n aggregateRating: () => ({}),\n offers: (product): { items: Item[]; product: Root } => {\n return {\n items: sortOfferByPrice(product.isVariantOf.items),\n product,\n }\n },\n isVariantOf: (root) => root,\n // TODO: get this value. Fix any type\n additionalProperty: ({ attributes = [] }: any) =>\n attributes.map((attribute: any) => ({\n name: attribute.key,\n value: attribute.value,\n })),\n}\n","import { enhanceSku } from '../utils/enhanceSku'\nimport type { Resolver } from '..'\nimport type { PromiseType } from '../../../typings'\nimport type { StoreProduct } from './product'\n\ntype Root = PromiseType<ReturnType<typeof StoreProduct.isVariantOf>>\n\nconst BLOCKED_PROPERTIES: Record<string, boolean> = {\n sellerId: true,\n}\n\nexport const StoreProductGroup: Record<string, Resolver<Root>> = {\n hasVariant: (root) =>\n root.isVariantOf.items.map((item) => enhanceSku(item, root.isVariantOf)),\n productGroupID: ({ isVariantOf }) => isVariantOf.productId,\n name: ({ isVariantOf }) => isVariantOf.productName,\n additionalProperty: ({ isVariantOf: { properties } }) =>\n properties.flatMap((property) => {\n if (BLOCKED_PROPERTIES[property.name]) {\n return []\n }\n\n return property.values.map((propertyValue) => ({\n name: property.name,\n value: propertyValue,\n }))\n }),\n}\n","import ChannelMarshal from './channel'\n\nexport interface SelectedFacet {\n key: string\n value: string\n}\n\n/**\n * Transform facets from the store to VTEX platform facets.\n * For instance, the channel in Store becomes trade-policy and regionId in VTEX's realm\n * */\nexport const transformSelectedFacet = ({ key, value }: SelectedFacet) => {\n switch (key) {\n case 'channel': {\n const channel = ChannelMarshal.parse(value)\n const channelFacets = [\n { key: 'trade-policy', value: channel.salesChannel },\n ]\n\n if (channel.regionId) {\n channelFacets.push({ key: 'region-id', value: channel.regionId })\n }\n\n return channelFacets\n }\n\n default:\n return { key, value }\n }\n}\n","export const SORT_MAP = {\n price_desc: 'price:desc',\n price_asc: 'price:asc',\n orders_desc: 'orders:desc',\n name_desc: 'name:desc',\n name_asc: 'name:asc',\n release_desc: 'release:desc',\n discount_desc: 'discount:desc',\n score_desc: '',\n} as const\n","import { enhanceSku } from '../utils/enhanceSku'\nimport { transformSelectedFacet } from '../utils/facets'\nimport { SORT_MAP } from '../utils/sort'\nimport { StoreCollection } from './collection'\nimport type {\n QueryProductArgs,\n QueryAllCollectionsArgs,\n QueryAllProductsArgs,\n QuerySearchArgs,\n QueryCollectionArgs,\n} from '../../../__generated__/schema'\nimport type { CategoryTree } from '../clients/commerce/types/CategoryTree'\nimport type { Context } from '../index'\nimport { mutateChannelContext } from '../utils/channel'\n\nexport const Query = {\n product: async (_: unknown, { locator }: QueryProductArgs, ctx: Context) => {\n // Insert channel in context for later usage\n const channelString = locator.find((facet) => facet.key === 'channel')\n ?.value\n\n if (channelString) {\n mutateChannelContext(ctx, channelString)\n }\n\n const {\n loaders: { skuLoader },\n } = ctx\n\n return skuLoader.load(locator.flatMap(transformSelectedFacet))\n },\n collection: (_: unknown, { slug }: QueryCollectionArgs, ctx: Context) => {\n const {\n loaders: { collectionLoader },\n } = ctx\n\n return collectionLoader.load(slug)\n },\n search: async (\n _: unknown,\n { first, after: maybeAfter, sort, term, selectedFacets }: QuerySearchArgs,\n ctx: Context\n ) => {\n // Insert channel in context for later usage\n const channelString = selectedFacets?.find(\n (facet) => facet.key === 'channel'\n )?.value\n\n if (channelString) {\n mutateChannelContext(ctx, channelString)\n }\n\n const after = maybeAfter ? Number(maybeAfter) : 0\n const searchArgs = {\n page: Math.ceil(after / first!),\n count: first,\n query: term,\n sort: SORT_MAP[sort ?? 'score_desc'],\n selectedFacets: selectedFacets?.flatMap(transformSelectedFacet) ?? [],\n }\n\n return searchArgs\n },\n allProducts: async (\n _: unknown,\n { first, after: maybeAfter }: QueryAllProductsArgs,\n ctx: Context\n ) => {\n const {\n clients: { search },\n } = ctx\n\n const after = maybeAfter ? Number(maybeAfter) : 0\n const products = await search.products({\n page: Math.ceil(after / first),\n count: first,\n })\n\n const skus = products.products\n .map((product) => product.items.map((sku) => enhanceSku(sku, product)))\n .flat()\n .filter((sku) => sku.sellers.length > 0)\n\n return {\n pageInfo: {\n hasNextPage: products.pagination.after.length > 0,\n hasPreviousPage: products.pagination.before.length > 0,\n startCursor: '0',\n endCursor: products.recordsFiltered.toString(),\n totalCount: products.recordsFiltered,\n },\n // after + index is bigger than after+first itself because of the array flat() above\n edges: skus.map((sku, index) => ({\n node: sku,\n cursor: (after + index).toString(),\n })),\n }\n },\n allCollections: async (\n _: unknown,\n { first, after: maybeAfter }: QueryAllCollectionsArgs,\n ctx: Context\n ) => {\n const {\n clients: { commerce },\n } = ctx\n\n const after = maybeAfter ? Number(maybeAfter) : 0\n\n const [brands, tree] = await Promise.all([\n commerce.catalog.brand.list(),\n commerce.catalog.category.tree(),\n ])\n\n const categories: Array<CategoryTree & { level: number }> = []\n const dfs = (node: CategoryTree, level: number) => {\n categories.push({ ...node, level })\n\n for (const child of node.children) {\n dfs(child, level + 1)\n }\n }\n\n for (const node of tree) {\n dfs(node, 0)\n }\n\n const collections = [\n ...brands\n .filter((brand) => brand.isActive)\n .map((x) => ({ ...x, type: 'brand' })),\n ...categories,\n ]\n\n const validCollections = collections\n // Nullable slugs may cause one route to override the other\n .filter((node) => Boolean(StoreCollection.slug(node, null, ctx, null)))\n\n return {\n pageInfo: {\n hasNextPage: validCollections.length - after > first,\n hasPreviousPage: after > 0,\n startCursor: '0',\n endCursor: (\n Math.min(first, validCollections.length - after) - 1\n ).toString(),\n totalCount: validCollections.length,\n },\n edges: validCollections\n .slice(after, after + first)\n .map((node, index) => ({\n node,\n cursor: (after + index).toString(),\n })),\n }\n },\n person: async (_: unknown, __: unknown, ctx: Context) => {\n const {\n clients: { commerce },\n } = ctx\n\n const {\n namespaces: { profile = null },\n } = await commerce.session()\n\n return (\n profile && {\n id: profile.id?.value ?? '',\n email: profile.email?.value ?? '',\n givenName: profile.firstName?.value ?? '',\n familyName: profile.lastName?.value ?? '',\n }\n )\n },\n}\n","import type { Resolver } from '..'\nimport type { SearchArgs } from '../clients/search'\nimport type { Facet } from '../clients/search/types/FacetSearchResult'\nimport { enhanceSku } from '../utils/enhanceSku'\n\ntype Root = Omit<SearchArgs, 'type'>\n\nconst REMOVED_FACETS_FROM_COLLECTION_PAGE = ['departamento', 'Departamento']\n\nexport const StoreSearchResult: Record<string, Resolver<Root>> = {\n suggestions: async (searchArgs, _, ctx) => {\n const {\n clients: { search },\n } = ctx\n\n const terms = await search.suggestedTerms(searchArgs)\n const products = await search.suggestedProducts(searchArgs)\n\n const skus = products.products\n .map((product) => {\n const [maybeSku] = product.items\n\n return maybeSku && enhanceSku(maybeSku, product)\n })\n .filter((sku) => !!sku)\n\n const {\n suggestion: { searches },\n } = terms\n\n return {\n terms: searches.map((item) => item.term),\n products: skus,\n }\n },\n products: async (searchArgs, _, ctx) => {\n const {\n clients: { search, sp },\n } = ctx\n\n const products = await search.products(searchArgs)\n\n // Raise event on search's analytics API when performing\n // a full text search.\n if (searchArgs.query) {\n sp.sendEvent({\n type: 'search.query',\n text: searchArgs.query,\n misspelled: products.correction.misspelled,\n match: products.recordsFiltered,\n operator: products.operator,\n }).catch(console.error)\n }\n\n const skus = products.products\n .map((product) => {\n const [maybeSku] = product.items\n\n return maybeSku && enhanceSku(maybeSku, product)\n })\n .filter((sku) => !!sku)\n\n return {\n pageInfo: {\n hasNextPage: products.pagination.after.length > 0,\n hasPreviousPage: products.pagination.before.length > 0,\n startCursor: '0',\n endCursor: products.recordsFiltered.toString(),\n totalCount: products.recordsFiltered,\n },\n edges: skus.map((sku, index) => ({\n node: sku,\n cursor: index.toString(),\n })),\n }\n },\n facets: async (searchArgs, _, ctx) => {\n const {\n clients: { search: is },\n } = ctx\n\n const { facets } = await is.facets(searchArgs)\n\n const isCollectionPage = !searchArgs.query\n const filteredFacets = facets?.reduce((acc, currentFacet) => {\n const shouldFilterFacet = REMOVED_FACETS_FROM_COLLECTION_PAGE.includes(\n currentFacet.name\n )\n\n const shouldRemoveFacetFromCollectionPage =\n isCollectionPage && shouldFilterFacet\n\n if (shouldRemoveFacetFromCollectionPage) {\n return acc\n }\n\n currentFacet.values.sort((a, b) => {\n const firstItemLabel = a.name ?? ''\n const secondItemLabel = b.name ?? ''\n\n return firstItemLabel.localeCompare(secondItemLabel)\n })\n\n acc.push(currentFacet)\n\n return acc\n }, [] as Facet[])\n\n return filteredFacets ?? []\n },\n}\n","import { getClients } from './clients'\nimport { getLoaders } from './loaders'\nimport { StoreAggregateOffer } from './resolvers/aggregateOffer'\nimport { StoreAggregateRating } from './resolvers/aggregateRating'\nimport { StoreCollection } from './resolvers/collection'\nimport { StoreFacet } from './resolvers/facet'\nimport { StoreFacetValue } from './resolvers/facetValue'\nimport { Mutation } from './resolvers/mutation'\nimport { StoreOffer } from './resolvers/offer'\nimport { StoreProduct } from './resolvers/product'\nimport { StoreProductGroup } from './resolvers/productGroup'\nimport { Query } from './resolvers/query'\nimport { StoreReview } from './resolvers/review'\nimport { StoreSearchResult } from './resolvers/searchResult'\nimport { StoreSeo } from './resolvers/seo'\nimport type { Loaders } from './loaders'\nimport type { Clients } from './clients'\nimport type { Channel } from './utils/channel'\nimport ChannelMarshal from './utils/channel'\n\nexport interface Options {\n platform: 'vtex'\n account: string\n environment: 'vtexcommercestable' | 'vtexcommercebeta'\n // Default sales channel to use for fetching products\n channel: string\n hideUnavailableItems: boolean\n}\n\nexport interface Context {\n clients: Clients\n loaders: Loaders\n /**\n * @description Storage updated at each request.\n *\n * Use this datastructure to store and share small values in the context.\n * Use it with caution since dependecy injection leads to a more complex code\n * */\n storage: {\n channel: Required<Channel>\n }\n headers: Record<string, string>\n}\n\nexport type Resolver<R = unknown, A = unknown, Return = any> = (\n root: R,\n args: A,\n ctx: Context,\n info: any\n) => Return\n\nconst Resolvers = {\n StoreCollection,\n StoreAggregateOffer,\n StoreProduct,\n StoreSeo,\n StoreFacet,\n StoreFacetValue,\n StoreOffer,\n StoreAggregateRating,\n StoreReview,\n StoreProductGroup,\n StoreSearchResult,\n Query,\n Mutation,\n}\n\nexport const getContextFactory = (options: Options) => (ctx: any): Context => {\n ctx.storage = {\n channel: ChannelMarshal.parse(options.channel),\n }\n ctx.clients = getClients(options, ctx)\n ctx.loaders = getLoaders(options, ctx)\n\n return ctx\n}\n\nexport const getResolvers = (_: Options) => Resolvers\n","import type { Item } from '../clients/search/types/ProductSearchResult'\nimport type { StoreProduct } from './product'\nimport type { PromiseType } from '../../../typings'\nimport type { Resolver } from '..'\nimport type { EnhancedSku } from '../utils/enhanceSku'\n\ntype Root = PromiseType<ReturnType<typeof StoreProduct.offers>>\n\nexport const StoreAggregateOffer: Record<string, Resolver<Root>> & {\n offers: Resolver<Root, any, Array<Item & { product: EnhancedSku }>>\n} = {\n highPrice: ({ product }) =>\n product.isVariantOf.priceRange.sellingPrice.highPrice ?? 0,\n lowPrice: (root) =>\n root.product.isVariantOf.priceRange.sellingPrice.lowPrice ?? 0,\n offerCount: ({ items }) => items.length,\n priceCurrency: () => '',\n offers: ({ items, product }) =>\n items.map((item) => ({\n ...item,\n product,\n })),\n}\n","import type { Resolver } from '..'\n\ntype Root = { title?: string; description?: string }\n\nexport const StoreSeo: Record<string, Resolver<Root>> = {\n title: ({ title }) => title ?? '',\n description: ({ description }) => description ?? '',\n titleTemplate: () => '',\n canonical: () => '',\n}\n","import type { Resolver } from '..'\nimport type { Facet } from '../clients/search/types/FacetSearchResult'\n\ntype Root = Facet\n\nexport const StoreFacet: Record<string, Resolver<Root>> = {\n key: ({ key }) => key ?? '',\n label: ({ name }) => name ?? 'unknown',\n values: ({ values }) => values,\n type: ({ type }) => (type === 'TEXT' ? 'BOOLEAN' : 'RANGE'),\n}\n","import type { Resolver } from '..'\nimport type { FacetValue } from '../clients/search/types/FacetSearchResult'\n\ntype Root = FacetValue\n\nexport const StoreFacetValue: Record<string, Resolver<Root>> = {\n value: ({ value, range }) =>\n value ?? `${range?.from ?? ''}-to-${range?.to ?? ''}`,\n label: ({ name }) => name || 'unknown',\n selected: ({ selected }) => selected,\n quantity: ({ quantity }) => quantity,\n}\n","import type { Resolver } from '..'\n\n// TODO: Add a review system integration\nexport const StoreAggregateRating: Record<string, Resolver> = {\n ratingValue: () => 5,\n reviewCount: () => 0,\n}\n","import type { Resolver } from '..'\n\nexport const StoreReview: Record<string, Resolver> = {\n reviewRating: () => ({\n ratingValue: 5,\n bestRating: 5,\n }),\n author: () => ({\n name: '',\n }),\n}\n","import { validateCart } from './validateCart'\nimport { updateSession } from './updateSession'\n\nexport const Mutation = {\n validateCart,\n updateSession,\n}\n","import type { Context } from '..'\nimport type {\n MutationUpdateSessionArgs,\n StoreSession,\n} from '../../../__generated__/schema'\nimport ChannelMarshal from '../utils/channel'\n\nexport const updateSession = async (\n _: any,\n { session }: MutationUpdateSessionArgs,\n { clients }: Context\n): Promise<StoreSession> => {\n const channel = ChannelMarshal.parse(session.channel ?? '')\n const regionData = await clients.commerce.checkout.region({\n postalCode: String(session.postalCode ?? '').replace(/\\D/g, ''),\n country: session.country ?? '',\n })\n\n return {\n ...session,\n channel: ChannelMarshal.stringify({\n ...channel,\n regionId: regionData?.[0]?.id,\n }),\n }\n}\n","import { print } from 'graphql'\n\nimport AggregateOffer from './aggregateOffer.graphql'\nimport AggregateRating from './aggregateRating.graphql'\nimport Author from './author.graphql'\nimport Brand from './brand.graphql'\nimport Breadcrumb from './breadcrumb.graphql'\nimport Collection from './collection.graphql'\nimport Facet from './facet.graphql'\nimport Image from './image.graphql'\nimport Mutation from './mutation.graphql'\nimport Offer from './offer.graphql'\nimport Order from './order.graphql'\nimport Organization from './organization.graphql'\nimport PageInfo from './pageInfo.graphql'\nimport Product from './product.graphql'\nimport ProductGroup from './productGroup.graphql'\nimport Query from './query.graphql'\nimport Review from './review.graphql'\nimport Seo from './seo.graphql'\nimport Cart from './cart.graphql'\nimport Status from './status.graphql'\nimport PropertyValue from './propertyValue.graphql'\nimport Person from './person.graphql'\n\nexport const typeDefs = [\n Query,\n Mutation,\n Brand,\n Breadcrumb,\n Collection,\n Facet,\n Image,\n PageInfo,\n Product,\n Seo,\n Offer,\n AggregateRating,\n Review,\n Author,\n ProductGroup,\n Organization,\n AggregateOffer,\n Order,\n Cart,\n Status,\n PropertyValue,\n Person,\n]\n .map(print)\n .join('\\n')\n","import { makeExecutableSchema } from '@graphql-tools/schema'\n\nimport {\n getContextFactory as getContextFactoryVTEX,\n getResolvers as getResolversVTEX,\n} from './platforms/vtex'\nimport { typeDefs } from './typeDefs'\nimport type { Options as OptionsVTEX } from './platforms/vtex'\n\nexport * from './__generated__/schema'\n\nexport type Options = OptionsVTEX\n\nconst platforms = {\n vtex: {\n getResolvers: getResolversVTEX,\n getContextFactory: getContextFactoryVTEX,\n },\n}\n\nexport const getTypeDefs = () => typeDefs\n\nexport const getResolvers = (options: Options) =>\n platforms[options.platform].getResolvers(options)\n\nexport const getContextFactory = (options: Options) =>\n platforms[options.platform].getContextFactory(options)\n\nexport const getSchema = async (options: Options) =>\n makeExecutableSchema({\n resolvers: getResolvers(options),\n typeDefs,\n })\n","import { VtexCommerce } from './commerce'\nimport { IntelligentSearch } from './search'\nimport { SP } from './sp'\nimport type { Context, Options } from '..'\n\nexport type Clients = ReturnType<typeof getClients>\n\nexport const getClients = (options: Options, ctx: Context) => {\n const search = IntelligentSearch(options, ctx)\n const commerce = VtexCommerce(options, ctx)\n const sp = SP(options, ctx)\n\n return {\n search,\n commerce,\n sp,\n }\n}\n","import { getSimulationLoader } from './simulation'\nimport { getSkuLoader } from './sku'\nimport { getCollectionLoader } from './collection'\nimport type { Context, Options } from '..'\n\nexport type Loaders = ReturnType<typeof getLoaders>\n\nexport const getLoaders = (options: Options, { clients }: Context) => {\n const skuLoader = getSkuLoader(options, clients)\n const simulationLoader = getSimulationLoader(options, clients)\n const collectionLoader = getCollectionLoader(options, clients)\n\n return {\n skuLoader,\n simulationLoader,\n collectionLoader,\n }\n}\n","import DataLoader from 'dataloader'\n\nimport { BadRequestError } from '../utils/errors'\nimport { enhanceSku } from '../utils/enhanceSku'\nimport type { EnhancedSku } from '../utils/enhanceSku'\nimport type { Options } from '..'\nimport type { Clients } from '../clients'\nimport type { SelectedFacet } from '../utils/facets'\n\nexport const getSkuLoader = (_: Options, clients: Clients) => {\n const loader = async (facetsList: readonly SelectedFacet[][]) => {\n const skuIds = facetsList.map((facets) => {\n const maybeFacet = facets.find(({ key }) => key === 'id')\n\n if (!maybeFacet) {\n throw new BadRequestError(\n 'Error while loading SKU. Needs to pass an id to selected facets'\n )\n }\n\n return maybeFacet.value\n })\n\n const { products } = await clients.search.products({\n query: `sku:${skuIds.join(';')}`,\n page: 0,\n count: skuIds.length,\n })\n\n const skuBySkuId = products.reduce((acc, product) => {\n for (const sku of product.items) {\n acc[sku.itemId] = enhanceSku(sku, product)\n }\n\n return acc\n }, {} as Record<string, EnhancedSku>)\n\n const skus = skuIds.map((skuId) => skuBySkuId[skuId])\n const missingSkus = skus.filter((sku) => !sku)\n\n if (missingSkus.length > 0) {\n throw new Error(\n `Search API did not return the following skus: ${missingSkus.join(',')}`\n )\n }\n\n return skus\n }\n\n return new DataLoader<SelectedFacet[], EnhancedSku>(loader, {\n maxBatchSize: 99, // Max allowed batch size of Search API\n })\n}\n","import DataLoader from 'dataloader'\nimport pLimit from 'p-limit'\n\nimport type {\n PayloadItem,\n Simulation,\n} from '../clients/commerce/types/Simulation'\nimport type { Options } from '..'\nimport type { Clients } from '../clients'\n\n// Limits concurrent requests to the API per request cycle\nconst CONCURRENT_REQUESTS_MAX = 1\n\nexport const getSimulationLoader = (_: Options, clients: Clients) => {\n const limit = pLimit(CONCURRENT_REQUESTS_MAX)\n\n const loader = async (allItems: readonly PayloadItem[][]) => {\n const items = [...allItems.flat()]\n const simulation = await clients.commerce.checkout.simulation({\n items,\n })\n\n // Sort and filter simulation since Checkout API may return\n // items that we didn't ask for\n const simulated = simulation.items.reduce((acc, item) => {\n const index = item.requestIndex\n\n if (typeof index === 'number' && index < acc.length) {\n acc[index] = item\n }\n\n return acc\n }, Array(items.length).fill(null) as Simulation['items'])\n\n const itemsIndices = allItems.reduce(\n (acc, curr) => [...acc, curr.length + acc[acc.length - 1]],\n [0]\n )\n\n return allItems.map((__, index) => ({\n ...simulation,\n items: simulated\n .slice(itemsIndices[index], itemsIndices[index + 1])\n .filter((item) => Boolean(item)),\n }))\n }\n\n const limited = async (allItems: readonly PayloadItem[][]) =>\n limit(loader, allItems)\n\n return new DataLoader<PayloadItem[], Simulation>(limited, {\n maxBatchSize: 50,\n })\n}\n"],"names":["fetchAPI","async","info","init","response","fetch","ok","status","json","undefined","console","error","text","Error","BASE_INIT","method","headers","IntelligentSearch","account","environment","hideUnavailableItems","ctx","base","policyFacet","key","value","storage","channel","salesChannel","search","query","page","count","sort","selectedFacets","type","fuzzy","params","URLSearchParams","toString","append","pathname","facets","find","map","join","args","products","suggestedTerms","suggestedProducts","randomUUID","Math","random","toFixed","createId","expiresSecond","payload","createdAt","Date","now","past","user","anonymous","session","BadRequestError","constructor","message","name","NotFoundError","enhanceSku","item","product","isVariantOf","collectionPageTypes","Set","isCollectionPageType","x","pageType","has","toLowerCase","from","isBrand","slugifyRoot","root","str","replace","slugifySpecialCharacters","newStr","slice","i","length","RegExp","charAt","removeDiacritics","URL","url","StoreCollection","id","slug","seo","title","description","metaTagDescription","Title","MetaTagDescription","level","meta","split","segment","index","breadcrumbList","_","loaders","collectionLoader","segments","filter","Boolean","slugs","__","collections","Promise","all","s","load","itemListElement","collection","position","numberOfItems","getId","itemOffered","sku","seller","identifier","price","orderFormItemToOffer","listPrice","sellingPrice","quantity","image","offerToOrderItemInput","offer","groupById","offers","reduce","acc","set","get","Map","ChannelMarshal","channelString","parsedChannel","JSON","parse","regionId","stringify","mutateChannelContext","inStock","sellers","commertialOffer","AvailableQuantity","getFirstSeller","getItemPriceByKey","_getFirstSeller","isSearchItem","isOrderFormItem","getAvailability","available","DEFAULT_IMAGE","imageText","imageUrl","getSlug","link","BLOCKED_PROPERTIES","sellerId","transformSelectedFacet","channelFacets","push","SORT_MAP","price_desc","price_asc","orders_desc","name_desc","name_asc","release_desc","discount_desc","score_desc","Query","locator","facet","_locator$find","skuLoader","flatMap","first","after","maybeAfter","term","_selectedFacets$find","Number","ceil","allProducts","clients","skus","items","flat","pageInfo","hasNextPage","pagination","hasPreviousPage","before","startCursor","endCursor","recordsFiltered","totalCount","edges","node","cursor","allCollections","commerce","brands","tree","catalog","brand","list","category","categories","dfs","child","children","validCollections","isActive","min","person","namespaces","profile","_profile$id","email","_profile$email","givenName","firstName","_profile$firstName","familyName","lastName","_profile$lastName","REMOVED_FACETS_FROM_COLLECTION_PAGE","Resolvers","StoreAggregateOffer","highPrice","priceRange","lowPrice","offerCount","priceCurrency","StoreProduct","productID","itemId","productName","linkText","reverse","categoryPath","categoryNames","images","array","Array","isArray","alternateName","gtin","referenceId","_referenceId$","Value","review","aggregateRating","a","b","additionalProperty","attributes","attribute","StoreSeo","titleTemplate","canonical","StoreFacet","label","values","StoreFacetValue","range","to","selected","StoreOffer","priceValidUntil","PriceValidUntil","itemCondition","availability","_getFirstSeller2","StoreAggregateRating","ratingValue","reviewCount","StoreReview","reviewRating","bestRating","author","StoreProductGroup","hasVariant","productGroupID","productId","properties","property","propertyValue","StoreSearchResult","suggestions","searchArgs","terms","maybeSku","suggestion","searches","sp","sendEvent","misspelled","correction","match","operator","catch","is","isCollectionPage","filteredFacets","currentFacet","shouldFilterFacet","includes","firstItemLabel","secondItemLabel","localeCompare","Mutation","validateCart","cart","order","orderNumber","acceptedOffer","orderForm","checkout","browserItemsById","originItemsById","browserItems","originItems","itemsToAdd","itemsToUpdate","maybeOriginItem","changes","updatedOrderForm","updateOrderFormItems","orderFormId","orderItems","storeOrder","pick","orderFormItems","storeOrderItems","isSameOrder","orderItemsAreSync","deepEquals","equals","messages","toUpperCase","updateSession","regionData","region","postalCode","String","country","_regionData$","typeDefs","Brand","Breadcrumb","Collection","Facet","Image","PageInfo","Product","Seo","Offer","AggregateRating","Review","Author","ProductGroup","Organization","AggregateOffer","Order","Cart","Status","PropertyValue","Person","print","platforms","vtex","getResolvers","getContextFactory","options","depth","portal","pagetype","simulation","sc","body","refreshOutdatedData","allowOutdatedData","cookie","VtexCommerce","agent","SP","getClients","DataLoader","skuIds","facetsList","maybeFacet","skuBySkuId","skuId","missingSkus","maxBatchSize","getSkuLoader","simulationLoader","limit","pLimit","loader","allItems","simulated","requestIndex","fill","itemsIndices","curr","getSimulationLoader","batch","getCollectionLoader","getLoaders","platform","makeExecutableSchema","resolvers"],"mappings":"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"}
|
package/dist/api.esm.js
CHANGED
|
@@ -1393,8 +1393,8 @@ var doc$d = {"kind":"Document","definitions":[{"kind":"ObjectTypeDefinition","na
|
|
|
1393
1393
|
var doc$e = {"kind":"Document","definitions":[{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreProductGroup"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"hasVariant"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"productGroupID"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"name"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"additionalProperty"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePropertyValue"}}}}},"directives":[]}]}],"loc":{"start":0,"end":145}};
|
|
1394
1394
|
doc$e.loc.source = {"body":"type StoreProductGroup {\n hasVariant: [StoreProduct!]!\n productGroupID: String!\n name: String!\n additionalProperty: [StorePropertyValue!]!\n}\n","name":"GraphQL request","locationOffset":{"line":1,"column":1}};
|
|
1395
1395
|
|
|
1396
|
-
var doc$f = {"kind":"Document","definitions":[{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreProductEdge"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"node"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"cursor"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreProductConnection"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"pageInfo"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePageInfo"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"edges"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductEdge"}}}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreCollectionEdge"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"node"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"cursor"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreCollectionConnection"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"pageInfo"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePageInfo"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"edges"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollectionEdge"}}}}},"directives":[]}]},{"kind":"EnumTypeDefinition","name":{"kind":"Name","value":"StoreSort"},"directives":[],"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"price_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"price_asc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"orders_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"name_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"name_asc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"release_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"discount_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"score_desc"},"directives":[]}]},{"kind":"InputObjectTypeDefinition","name":{"kind":"Name","value":"IStoreSelectedFacet"},"directives":[],"fields":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"key"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"value"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"EnumTypeDefinition","name":{"kind":"Name","value":"StoreFacetType"},"directives":[],"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"BOOLEAN"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"RANGE"},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreSuggestions"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"terms"},"arguments":[],"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"products"},"arguments":[],"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreSearchResult"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"products"},"arguments":[],"type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductConnection"}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"facets"},"arguments":[],"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreFacet"}}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"suggestions"},"arguments":[],"type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSuggestions"}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"Query"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"product"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"locator"},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"IStoreSelectedFacet"}}}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"collection"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"slug"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"search"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"sort"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSort"}},"defaultValue":{"kind":"EnumValue","value":"score_desc"},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"term"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"selectedFacets"},"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"IStoreSelectedFacet"}}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSearchResult"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"allProducts"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductConnection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"allCollections"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollectionConnection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"person"},"arguments":[],"type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePerson"}},"directives":[]}]}],"loc":{"start":0,"end":
|
|
1397
|
-
doc$f.loc.source = {"body":"type StoreProductEdge {\n node: StoreProduct!\n cursor: String!\n}\n\ntype StoreProductConnection {\n pageInfo: StorePageInfo!\n edges: [StoreProductEdge!]!\n}\n\ntype StoreCollectionEdge {\n node: StoreCollection!\n cursor: String!\n}\n\ntype StoreCollectionConnection {\n pageInfo: StorePageInfo!\n edges: [StoreCollectionEdge!]!\n}\n\nenum StoreSort {\n price_desc\n price_asc\n orders_desc\n name_desc\n name_asc\n release_desc\n discount_desc\n score_desc\n}\n\ninput IStoreSelectedFacet {\n key: String!\n value: String!\n}\n\nenum StoreFacetType {\n BOOLEAN\n RANGE\n}\n\ntype StoreSuggestions {\n terms: [String!]\n products: [StoreProduct!]\n}\n\ntype StoreSearchResult {\n products: StoreProductConnection
|
|
1396
|
+
var doc$f = {"kind":"Document","definitions":[{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreProductEdge"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"node"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"cursor"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreProductConnection"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"pageInfo"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePageInfo"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"edges"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductEdge"}}}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreCollectionEdge"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"node"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"cursor"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreCollectionConnection"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"pageInfo"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePageInfo"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"edges"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollectionEdge"}}}}},"directives":[]}]},{"kind":"EnumTypeDefinition","name":{"kind":"Name","value":"StoreSort"},"directives":[],"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"price_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"price_asc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"orders_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"name_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"name_asc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"release_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"discount_desc"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"score_desc"},"directives":[]}]},{"kind":"InputObjectTypeDefinition","name":{"kind":"Name","value":"IStoreSelectedFacet"},"directives":[],"fields":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"key"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"value"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}]},{"kind":"EnumTypeDefinition","name":{"kind":"Name","value":"StoreFacetType"},"directives":[],"values":[{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"BOOLEAN"},"directives":[]},{"kind":"EnumValueDefinition","name":{"kind":"Name","value":"RANGE"},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreSuggestions"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"terms"},"arguments":[],"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"products"},"arguments":[],"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreSearchResult"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"products"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductConnection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"facets"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreFacet"}}}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"suggestions"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSuggestions"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"Query"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"product"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"locator"},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"IStoreSelectedFacet"}}}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProduct"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"collection"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"slug"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"search"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"sort"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSort"}},"defaultValue":{"kind":"EnumValue","value":"score_desc"},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"term"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"selectedFacets"},"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"IStoreSelectedFacet"}}}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreSearchResult"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"allProducts"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreProductConnection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"allCollections"},"arguments":[{"kind":"InputValueDefinition","name":{"kind":"Name","value":"first"},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},"directives":[]},{"kind":"InputValueDefinition","name":{"kind":"Name","value":"after"},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"directives":[]}],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreCollectionConnection"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"person"},"arguments":[],"type":{"kind":"NamedType","name":{"kind":"Name","value":"StorePerson"}},"directives":[]}]}],"loc":{"start":0,"end":1207}};
|
|
1397
|
+
doc$f.loc.source = {"body":"type StoreProductEdge {\n node: StoreProduct!\n cursor: String!\n}\n\ntype StoreProductConnection {\n pageInfo: StorePageInfo!\n edges: [StoreProductEdge!]!\n}\n\ntype StoreCollectionEdge {\n node: StoreCollection!\n cursor: String!\n}\n\ntype StoreCollectionConnection {\n pageInfo: StorePageInfo!\n edges: [StoreCollectionEdge!]!\n}\n\nenum StoreSort {\n price_desc\n price_asc\n orders_desc\n name_desc\n name_asc\n release_desc\n discount_desc\n score_desc\n}\n\ninput IStoreSelectedFacet {\n key: String!\n value: String!\n}\n\nenum StoreFacetType {\n BOOLEAN\n RANGE\n}\n\ntype StoreSuggestions {\n terms: [String!]\n products: [StoreProduct!]\n}\n\ntype StoreSearchResult {\n products: StoreProductConnection!\n facets: [StoreFacet!]!\n suggestions: StoreSuggestions!\n}\n\ntype Query {\n product(locator: [IStoreSelectedFacet!]!): StoreProduct!\n\n collection(slug: String!): StoreCollection!\n\n search(\n first: Int!\n after: String\n sort: StoreSort = score_desc\n term: String = \"\"\n selectedFacets: [IStoreSelectedFacet!]\n ): StoreSearchResult!\n\n allProducts(first: Int!, after: String): StoreProductConnection!\n\n allCollections(first: Int!, after: String): StoreCollectionConnection!\n\n person: StorePerson\n}\n","name":"GraphQL request","locationOffset":{"line":1,"column":1}};
|
|
1398
1398
|
|
|
1399
1399
|
var doc$g = {"kind":"Document","definitions":[{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreReviewRating"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"ratingValue"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Float"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"bestRating"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Float"}}},"directives":[]}]},{"kind":"ObjectTypeDefinition","name":{"kind":"Name","value":"StoreReview"},"interfaces":[],"directives":[],"fields":[{"kind":"FieldDefinition","name":{"kind":"Name","value":"reviewRating"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreReviewRating"}}},"directives":[]},{"kind":"FieldDefinition","name":{"kind":"Name","value":"author"},"arguments":[],"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"StoreAuthor"}}},"directives":[]}]}],"loc":{"start":0,"end":150}};
|
|
1400
1400
|
doc$g.loc.source = {"body":"type StoreReviewRating {\n ratingValue: Float!\n bestRating: Float!\n}\n\ntype StoreReview {\n reviewRating: StoreReviewRating!\n author: StoreAuthor!\n}\n","name":"GraphQL request","locationOffset":{"line":1,"column":1}};
|
package/dist/index.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export declare const getResolvers: (options: Options) => {
|
|
|
44
44
|
collection: (_: unknown, { slug }: import("./__generated__/schema").QueryCollectionArgs, ctx: import("./platforms/vtex").Context) => Promise<import("./platforms/vtex/clients/commerce/types/Portal").CollectionPageType>;
|
|
45
45
|
search: (_: unknown, { first, after: maybeAfter, sort, term, selectedFacets }: import("./__generated__/schema").QuerySearchArgs, ctx: import("./platforms/vtex").Context) => Promise<{
|
|
46
46
|
page: number;
|
|
47
|
-
count: number
|
|
47
|
+
count: number;
|
|
48
48
|
query: string | null | undefined;
|
|
49
49
|
sort: import("./platforms/vtex/clients/search").Sort;
|
|
50
50
|
selectedFacets: {
|
|
@@ -120,7 +120,7 @@ export declare const getResolvers: (options: Options) => {
|
|
|
120
120
|
sellingPrice: number;
|
|
121
121
|
rewardValue: number;
|
|
122
122
|
isGift: boolean;
|
|
123
|
-
parentItemIndex:
|
|
123
|
+
parentItemIndex: number | null;
|
|
124
124
|
parentAssemblyBinding: import("./__generated__/schema").Maybe<string>;
|
|
125
125
|
productCategoryIds: string;
|
|
126
126
|
priceTags: string[];
|
|
@@ -66,7 +66,7 @@ export declare const getResolvers: (_: Options) => {
|
|
|
66
66
|
collection: (_: unknown, { slug }: import("../..").QueryCollectionArgs, ctx: Context) => Promise<import("./clients/commerce/types/Portal").CollectionPageType>;
|
|
67
67
|
search: (_: unknown, { first, after: maybeAfter, sort, term, selectedFacets }: import("../..").QuerySearchArgs, ctx: Context) => Promise<{
|
|
68
68
|
page: number;
|
|
69
|
-
count: number
|
|
69
|
+
count: number;
|
|
70
70
|
query: string | null | undefined;
|
|
71
71
|
sort: import("./clients/search").Sort;
|
|
72
72
|
selectedFacets: {
|
|
@@ -142,7 +142,7 @@ export declare const getResolvers: (_: Options) => {
|
|
|
142
142
|
sellingPrice: number;
|
|
143
143
|
rewardValue: number;
|
|
144
144
|
isGift: boolean;
|
|
145
|
-
parentItemIndex:
|
|
145
|
+
parentItemIndex: number | null;
|
|
146
146
|
parentAssemblyBinding: string | null;
|
|
147
147
|
productCategoryIds: string;
|
|
148
148
|
priceTags: string[];
|
|
@@ -6,7 +6,7 @@ export declare const Query: {
|
|
|
6
6
|
collection: (_: unknown, { slug }: QueryCollectionArgs, ctx: Context) => Promise<import("../clients/commerce/types/Portal").CollectionPageType>;
|
|
7
7
|
search: (_: unknown, { first, after: maybeAfter, sort, term, selectedFacets }: QuerySearchArgs, ctx: Context) => Promise<{
|
|
8
8
|
page: number;
|
|
9
|
-
count: number
|
|
9
|
+
count: number;
|
|
10
10
|
query: string | null | undefined;
|
|
11
11
|
sort: import("../clients/search").Sort;
|
|
12
12
|
selectedFacets: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/api",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.43",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"graphql": "^15.6.0"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "dc5b363e895996a63a860c1692787947122f0ff1"
|
|
49
49
|
}
|
|
@@ -105,7 +105,7 @@ export type QueryProductArgs = {
|
|
|
105
105
|
|
|
106
106
|
export type QuerySearchArgs = {
|
|
107
107
|
after?: Maybe<Scalars['String']>;
|
|
108
|
-
first
|
|
108
|
+
first: Scalars['Int'];
|
|
109
109
|
selectedFacets?: Maybe<Array<IStoreSelectedFacet>>;
|
|
110
110
|
sort?: Maybe<StoreSort>;
|
|
111
111
|
term?: Maybe<Scalars['String']>;
|
|
@@ -329,9 +329,9 @@ export type StoreReviewRating = {
|
|
|
329
329
|
|
|
330
330
|
export type StoreSearchResult = {
|
|
331
331
|
__typename?: 'StoreSearchResult';
|
|
332
|
-
facets
|
|
333
|
-
products
|
|
334
|
-
suggestions
|
|
332
|
+
facets: Array<StoreFacet>;
|
|
333
|
+
products: StoreProductConnection;
|
|
334
|
+
suggestions: StoreSuggestions;
|
|
335
335
|
};
|
|
336
336
|
|
|
337
337
|
export type StoreSeo = {
|
|
@@ -45,9 +45,9 @@ type StoreSuggestions {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
type StoreSearchResult {
|
|
48
|
-
products: StoreProductConnection
|
|
49
|
-
facets: [StoreFacet!]
|
|
50
|
-
suggestions: StoreSuggestions
|
|
48
|
+
products: StoreProductConnection!
|
|
49
|
+
facets: [StoreFacet!]!
|
|
50
|
+
suggestions: StoreSuggestions!
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
type Query {
|
|
@@ -56,7 +56,7 @@ type Query {
|
|
|
56
56
|
collection(slug: String!): StoreCollection!
|
|
57
57
|
|
|
58
58
|
search(
|
|
59
|
-
first: Int
|
|
59
|
+
first: Int!
|
|
60
60
|
after: String
|
|
61
61
|
sort: StoreSort = score_desc
|
|
62
62
|
term: String = ""
|