@faststore/core 2.1.83 → 2.2.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/.turbo/turbo-build.log +9 -7
  2. package/.turbo/turbo-test.log +25 -0
  3. package/@generated/graphql/index.ts +183 -79
  4. package/@generated/graphql/persisted.json +5 -5
  5. package/@generated/graphql/schema.graphql +1053 -0
  6. package/api/index.ts +15 -0
  7. package/codegen.yml +2 -1
  8. package/generate.sh +71 -0
  9. package/index.ts +15 -0
  10. package/jest.config.js +6 -0
  11. package/package.json +33 -18
  12. package/src/components/ThirdPartyScripts/ThirdPartyScripts.tsx +1 -2
  13. package/src/components/cms/RenderSections.tsx +4 -5
  14. package/src/components/product/ProductGrid/ProductGrid.tsx +4 -3
  15. package/src/components/sections/Breadcrumb/Breadcrumb.tsx +17 -22
  16. package/src/components/sections/CrossSellingShelf/CrossSellingShelf.tsx +8 -6
  17. package/src/components/sections/ProductDetails/ProductDetails.tsx +23 -33
  18. package/src/components/sections/ProductGallery/ProductGallery.tsx +15 -26
  19. package/src/components/sections/ProductShelf/ProductShelf.tsx +1 -1
  20. package/src/components/sections/ProductTiles/ProductTiles.tsx +4 -3
  21. package/src/components/templates/ProductListingPage/ProductListing.tsx +95 -0
  22. package/src/components/templates/ProductListingPage/ProductListingPage.tsx +34 -68
  23. package/src/components/templates/SearchPage/SearchPage.tsx +81 -0
  24. package/src/components/templates/SearchPage/index.ts +2 -0
  25. package/src/components/ui/ProductGallery/ProductGallery.tsx +24 -16
  26. package/src/components/ui/ProductGallery/ProductGalleryPage.tsx +8 -7
  27. package/src/components/ui/ProductGallery/useDelayedFacets.ts +3 -3
  28. package/src/components/ui/ProductShelf/ProductShelf.tsx +3 -2
  29. package/src/customizations/GlobalOverrides.tsx +0 -2
  30. package/src/customizations/fragments/ClientProduct.ts +9 -0
  31. package/src/customizations/fragments/ClientProductGallery.ts +19 -0
  32. package/src/customizations/fragments/ClientProducts.ts +19 -0
  33. package/src/customizations/fragments/ServerCollectionPage.ts +9 -0
  34. package/src/customizations/fragments/ServerProductPage.ts +9 -0
  35. package/src/customizations/graphql/thirdParty/resolvers/index.ts +3 -0
  36. package/src/customizations/graphql/vtex/resolvers/index.ts +3 -0
  37. package/src/pages/[...slug].tsx +5 -3
  38. package/src/pages/[slug]/p.tsx +38 -18
  39. package/src/pages/s.tsx +22 -34
  40. package/src/sdk/graphql/useQuery.ts +17 -13
  41. package/src/sdk/overrides/PageProvider.tsx +78 -0
  42. package/src/sdk/product/useLocalizedVariables.ts +33 -0
  43. package/src/sdk/product/usePageProductsQuery.ts +139 -0
  44. package/src/{components/sections/ProductGallery/useGalleryQuery.ts → sdk/product/useProductGalleryQuery.ts} +12 -13
  45. package/src/sdk/product/{useProduct.ts → useProductQuery.ts} +10 -7
  46. package/src/sdk/product/useProductsPrefetch.ts +72 -0
  47. package/src/sdk/product/useProductsQuery.ts +17 -63
  48. package/src/server/generator/generateGraphQLSchemaFile.ts +3 -0
  49. package/src/server/generator/schema.ts +82 -0
  50. package/src/server/index.ts +34 -21
  51. package/src/server/options.ts +16 -0
  52. package/test/server/index.test.ts +146 -0
  53. package/.next/BUILD_ID +0 -1
  54. package/.next/build-manifest.json +0 -129
  55. package/.next/cache/.tsbuildinfo +0 -1
  56. package/.next/cache/config.json +0 -7
  57. package/.next/cache/eslint/.cache_1gneedd +0 -1
  58. package/.next/cache/next-server.js.nft.json +0 -1
  59. package/.next/cache/webpack/client-production/0.pack +0 -0
  60. package/.next/cache/webpack/client-production/index.pack +0 -0
  61. package/.next/cache/webpack/server-production/0.pack +0 -0
  62. package/.next/cache/webpack/server-production/index.pack +0 -0
  63. package/.next/export-marker.json +0 -1
  64. package/.next/images-manifest.json +0 -1
  65. package/.next/next-server.js.nft.json +0 -1
  66. package/.next/package.json +0 -1
  67. package/.next/prerender-manifest.json +0 -1
  68. package/.next/react-loadable-manifest.json +0 -44
  69. package/.next/required-server-files.json +0 -1
  70. package/.next/routes-manifest.json +0 -1
  71. package/.next/server/chunks/143.js +0 -106
  72. package/.next/server/chunks/177.js +0 -120
  73. package/.next/server/chunks/183.js +0 -94
  74. package/.next/server/chunks/184.js +0 -61
  75. package/.next/server/chunks/186.js +0 -113
  76. package/.next/server/chunks/289.js +0 -239
  77. package/.next/server/chunks/312.js +0 -697
  78. package/.next/server/chunks/350.js +0 -143
  79. package/.next/server/chunks/483.js +0 -650
  80. package/.next/server/chunks/487.js +0 -9142
  81. package/.next/server/chunks/53.js +0 -61
  82. package/.next/server/chunks/530.js +0 -626
  83. package/.next/server/chunks/576.js +0 -94
  84. package/.next/server/chunks/650.js +0 -9142
  85. package/.next/server/chunks/676.js +0 -32
  86. package/.next/server/chunks/693.js +0 -58
  87. package/.next/server/chunks/71.js +0 -1254
  88. package/.next/server/chunks/74.js +0 -4054
  89. package/.next/server/chunks/753.js +0 -509
  90. package/.next/server/chunks/779.js +0 -58
  91. package/.next/server/chunks/825.js +0 -4039
  92. package/.next/server/chunks/854.js +0 -72
  93. package/.next/server/chunks/859.js +0 -959
  94. package/.next/server/chunks/907.js +0 -1911
  95. package/.next/server/chunks/933.js +0 -517
  96. package/.next/server/chunks/98.js +0 -124
  97. package/.next/server/chunks/988.js +0 -211
  98. package/.next/server/chunks/font-manifest.json +0 -1
  99. package/.next/server/font-manifest.json +0 -1
  100. package/.next/server/middleware-build-manifest.js +0 -1
  101. package/.next/server/middleware-manifest.json +0 -6
  102. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  103. package/.next/server/pages/404.js +0 -386
  104. package/.next/server/pages/404.js.nft.json +0 -1
  105. package/.next/server/pages/500.js +0 -388
  106. package/.next/server/pages/500.js.nft.json +0 -1
  107. package/.next/server/pages/[...slug].js +0 -1005
  108. package/.next/server/pages/[...slug].js.nft.json +0 -1
  109. package/.next/server/pages/[slug]/p.js +0 -2269
  110. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  111. package/.next/server/pages/_app.js +0 -280
  112. package/.next/server/pages/_app.js.nft.json +0 -1
  113. package/.next/server/pages/_document.js +0 -374
  114. package/.next/server/pages/_document.js.nft.json +0 -1
  115. package/.next/server/pages/_error.js +0 -164
  116. package/.next/server/pages/_error.js.nft.json +0 -1
  117. package/.next/server/pages/account.js +0 -363
  118. package/.next/server/pages/account.js.nft.json +0 -1
  119. package/.next/server/pages/api/graphql.js +0 -365
  120. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  121. package/.next/server/pages/api/health/live.js +0 -31
  122. package/.next/server/pages/api/health/live.js.nft.json +0 -1
  123. package/.next/server/pages/api/health/ready.js +0 -31
  124. package/.next/server/pages/api/health/ready.js.nft.json +0 -1
  125. package/.next/server/pages/api/preview.js +0 -148
  126. package/.next/server/pages/api/preview.js.nft.json +0 -1
  127. package/.next/server/pages/checkout.js +0 -363
  128. package/.next/server/pages/checkout.js.nft.json +0 -1
  129. package/.next/server/pages/en-US/404.html +0 -81
  130. package/.next/server/pages/en-US/404.json +0 -1
  131. package/.next/server/pages/en-US/500.html +0 -81
  132. package/.next/server/pages/en-US/500.json +0 -1
  133. package/.next/server/pages/en-US/account.html +0 -81
  134. package/.next/server/pages/en-US/account.json +0 -1
  135. package/.next/server/pages/en-US/checkout.html +0 -81
  136. package/.next/server/pages/en-US/checkout.json +0 -1
  137. package/.next/server/pages/en-US/login.html +0 -81
  138. package/.next/server/pages/en-US/login.json +0 -1
  139. package/.next/server/pages/en-US/s.html +0 -81
  140. package/.next/server/pages/en-US/s.json +0 -1
  141. package/.next/server/pages/en-US.html +0 -81
  142. package/.next/server/pages/en-US.json +0 -1
  143. package/.next/server/pages/index.js +0 -439
  144. package/.next/server/pages/index.js.nft.json +0 -1
  145. package/.next/server/pages/login.js +0 -368
  146. package/.next/server/pages/login.js.nft.json +0 -1
  147. package/.next/server/pages/s.js +0 -466
  148. package/.next/server/pages/s.js.nft.json +0 -1
  149. package/.next/server/pages-manifest.json +0 -18
  150. package/.next/server/webpack-api-runtime.js +0 -229
  151. package/.next/server/webpack-runtime.js +0 -229
  152. package/.next/static/chunks/143.dd8a556e6957baa1.js +0 -1
  153. package/.next/static/chunks/148.3bb7e05cc5d1c1c4.js +0 -1
  154. package/.next/static/chunks/238-e5e4b2094f0e1df8.js +0 -1
  155. package/.next/static/chunks/243-8f5650ed908aa75c.js +0 -1
  156. package/.next/static/chunks/530.848b014622932b93.js +0 -1
  157. package/.next/static/chunks/548-ab84e9e8b49413ab.js +0 -1
  158. package/.next/static/chunks/603-d1c069aa8a349c86.js +0 -1
  159. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  160. package/.next/static/chunks/709.7bc5a25ce30abda6.js +0 -1
  161. package/.next/static/chunks/738-67a288ca3569cdbb.js +0 -1
  162. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  163. package/.next/static/chunks/98.97381d2021f86cd9.js +0 -1
  164. package/.next/static/chunks/988.d10040040cdfebbb.js +0 -1
  165. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  166. package/.next/static/chunks/main-fd466221927468fd.js +0 -1
  167. package/.next/static/chunks/pages/404-af78f7cd1d3c1f60.js +0 -1
  168. package/.next/static/chunks/pages/500-f6346ca5f9dc4fef.js +0 -1
  169. package/.next/static/chunks/pages/[...slug]-ca533c74c22cb787.js +0 -1
  170. package/.next/static/chunks/pages/[slug]/p-7bb760bb3fcfc0bb.js +0 -1
  171. package/.next/static/chunks/pages/_app-895781b1c7b5bf56.js +0 -1
  172. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  173. package/.next/static/chunks/pages/account-05bd79fb78365e88.js +0 -1
  174. package/.next/static/chunks/pages/checkout-c973786e68f25a39.js +0 -1
  175. package/.next/static/chunks/pages/index-d521ce4f4e2b89a6.js +0 -1
  176. package/.next/static/chunks/pages/login-8deb9243376b6aa1.js +0 -1
  177. package/.next/static/chunks/pages/s-0e516ab36bb49c99.js +0 -1
  178. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  179. package/.next/static/chunks/webpack-062512aedeb4b39e.js +0 -1
  180. package/.next/static/css/0d056c673d2869bb.css +0 -1
  181. package/.next/static/css/4b7138899cd07c63.css +0 -1
  182. package/.next/static/css/527e334fa69cf40a.css +0 -1
  183. package/.next/static/css/6e1a7434f061d0ef.css +0 -1
  184. package/.next/static/css/9e76fef1c9ca89af.css +0 -1
  185. package/.next/static/css/a2eefb25a4608343.css +0 -1
  186. package/.next/static/css/cb7d1fcea42fab9c.css +0 -1
  187. package/.next/static/css/df588bb98c0b0ca6.css +0 -1
  188. package/.next/static/css/e3b039e8f5daf95f.css +0 -1
  189. package/.next/static/css/f0e2d1b8832e935d.css +0 -1
  190. package/.next/static/jxv75E0IlXYBYk71TulQP/_buildManifest.js +0 -1
  191. package/.next/static/jxv75E0IlXYBYk71TulQP/_ssgManifest.js +0 -1
  192. package/.next/trace +0 -80
  193. package/public/~partytown/debug/partytown-atomics.js +0 -556
  194. package/public/~partytown/debug/partytown-media.js +0 -374
  195. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  196. package/public/~partytown/debug/partytown-sw.js +0 -59
  197. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  198. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  199. package/public/~partytown/debug/partytown.js +0 -72
  200. package/public/~partytown/partytown-atomics.js +0 -2
  201. package/public/~partytown/partytown-media.js +0 -2
  202. package/public/~partytown/partytown-sw.js +0 -2
  203. package/public/~partytown/partytown.js +0 -2
  204. package/src/components/ui/ProductGallery/usePageProducts.ts +0 -48
  205. package/src/customizations/components/overrides/ThirdPartyScripts.tsx +0 -9
  206. package/src/customizations/scripts/ThirdPartyScripts.tsx +0 -8
@@ -1,6 +1,8 @@
1
- $ yarn partytown && next build
1
+ $ yarn partytown & yarn generate && next build
2
+ $ ./generate.sh
2
3
  $ partytown copylib ./public/~partytown
3
4
  Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
5
+ GraphQL schema, types, and optimizations successfully generated 🎉
4
6
  warn - No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
5
7
  Attention: Next.js now collects completely anonymous telemetry regarding usage.
6
8
  This information is used to shape Next.js' roadmap and prioritize features.
@@ -21,12 +23,12 @@ info - Generating static pages (7/7)
21
23
  info - Finalizing page optimization...
22
24
 
23
25
  Route (pages) Size First Load JS
24
- ┌ ● / 3.16 kB 197 kB
26
+ ┌ ● / 3.19 kB 197 kB
25
27
  ├ /_app 0 B 77.9 kB
26
- ├ ● /[...slug] 4.06 kB 208 kB
28
+ ├ ● /[...slug] 4.83 kB 210 kB
27
29
  ├ └ css/527e334fa69cf40a.css 1.85 kB
28
- ├ ● /[slug]/p 10.4 kB 204 kB
29
- ├ └ css/4b7138899cd07c63.css 11.3 kB
30
+ ├ ● /[slug]/p 11.3 kB 205 kB
31
+ ├ └ css/c110411bf3c3f5d1.css 11.3 kB
30
32
  ├ ○ /404 1.19 kB 114 kB
31
33
  ├ ● /500 1.21 kB 114 kB
32
34
  ├ ● /account 670 B 113 kB
@@ -36,12 +38,12 @@ Route (pages) Size First Load JS
36
38
  ├ λ /api/preview 0 B 77.9 kB
37
39
  ├ ● /checkout 657 B 113 kB
38
40
  ├ ● /login 1.09 kB 114 kB
39
- └ ● /s 4.57 kB 127 kB
41
+ └ ● /s 4.55 kB 128 kB
40
42
  + First Load JS shared by all 81 kB
41
43
  ├ chunks/framework-dfd14d7ce6600b03.js 45.3 kB
42
44
  ├ chunks/main-fd466221927468fd.js 23.9 kB
43
45
  ├ chunks/pages/_app-895781b1c7b5bf56.js 6.45 kB
44
- ├ chunks/webpack-062512aedeb4b39e.js 2.29 kB
46
+ ├ chunks/webpack-54eb777fd3680e08.js 2.29 kB
45
47
  └ css/9e76fef1c9ca89af.css 3.06 kB
46
48
 
47
49
  λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
@@ -0,0 +1,25 @@
1
+ $ tsdx test
2
+ ts-jest[versions] (WARN) Version 29.1.0 of jest installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=25.0.0 <26.0.0). Please do not report issues in ts-jest if you are using unsupported versions.
3
+ ts-jest[versions] (WARN) Version 4.9.4 of typescript installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=3.4.0 <4.0.0). Please do not report issues in ts-jest if you are using unsupported versions.
4
+ PASS test/server/index.test.ts (11.119s)
5
+ FastStore GraphQL Layer
6
+ @faststore/api
7
+ ✓ should return a valid GraphQL schema (8ms)
8
+ ✓ should return a valid GraphQL schema contain all expected types (20ms)
9
+ ✓ should return a valid GraphQL schema contain all expected queries (2ms)
10
+ ✓ should return a valid GraphQL schema contain all expected mutations (1ms)
11
+ VTEX API Extension
12
+ ✓ getTypeDefsFromFolder function should return an Array (9ms)
13
+ Third Party API Extension
14
+ ✓ getTypeDefsFromFolder function should return an Array (8ms)
15
+ Final Schema after merging
16
+ ✓ should return a valid merged GraphQL schema (42ms)
17
+ Envelop
18
+ ✓ should exist with its plugins (45ms)
19
+ ✓ should handle options and execute (355ms)
20
+
21
+ Test Suites: 1 passed, 1 total
22
+ Tests: 9 passed, 9 total
23
+ Snapshots: 0 total
24
+ Time: 11.909s
25
+ Ran all test suites.
@@ -16,10 +16,68 @@ export type Scalars = {
16
16
  Boolean: boolean
17
17
  Int: number
18
18
  Float: number
19
+ /**
20
+ * Example:
21
+ *
22
+ * ```json
23
+ * {
24
+ * Color: 'Red', Size: '42'
25
+ * }
26
+ * ```
27
+ */
19
28
  ActiveVariations: any
29
+ /**
30
+ * Example:
31
+ *
32
+ * ```json
33
+ * {
34
+ * Color: [
35
+ * {
36
+ * src: "https://storecomponents.vtexassets.com/...",
37
+ * alt: "...",
38
+ * label: "...",
39
+ * value: "..."
40
+ * },
41
+ * {
42
+ * src: "https://storecomponents.vtexassets.com/...",
43
+ * alt: "...",
44
+ * label: "...",
45
+ * value: "..."
46
+ * }
47
+ * ],
48
+ * Size: [
49
+ * {
50
+ * src: "https://storecomponents.vtexassets.com/...",
51
+ * alt: "...",
52
+ * label: "...",
53
+ * value: "..."
54
+ * }
55
+ * ]
56
+ * }
57
+ * ```
58
+ */
20
59
  FormattedVariants: any
21
60
  ObjectOrString: any
61
+ /**
62
+ * Example:
63
+ *
64
+ * ```json
65
+ * {
66
+ * 'Color-Red-Size-40': 'classic-shoes-37'
67
+ * }
68
+ * ```
69
+ */
22
70
  SlugsMap: any
71
+ /**
72
+ * Example:
73
+ *
74
+ * ```json
75
+ * {
76
+ * Color: [ "Red", "Blue", "Green" ],
77
+ * Size: [ "40", "41" ]
78
+ * }
79
+ * ```
80
+ */
23
81
  VariantsByName: any
24
82
  }
25
83
 
@@ -73,6 +131,13 @@ export type DeliveryIds = {
73
131
  warehouseId: Maybe<Scalars['String']>
74
132
  }
75
133
 
134
+ export type IGeoCoordinates = {
135
+ /** The latitude of the geographic coordinates. */
136
+ latitude: Scalars['Float']
137
+ /** The longitude of the geographic coordinates. */
138
+ longitude: Scalars['Float']
139
+ }
140
+
76
141
  /** Person data input to the newsletter. */
77
142
  export type IPersonNewsletter = {
78
143
  /** Person's email. */
@@ -375,6 +440,8 @@ export type Query = {
375
440
  redirect: Maybe<StoreRedirect>
376
441
  /** Returns the result of a product, facet, or suggestion search. */
377
442
  search: StoreSearchResult
443
+ /** Returns a list of sellers available for a specific localization. */
444
+ sellers: Maybe<SellersData>
378
445
  /** Returns information about shipping simulation. */
379
446
  shipping: Maybe<ShippingData>
380
447
  }
@@ -410,6 +477,13 @@ export type QuerySearchArgs = {
410
477
  term?: InputMaybe<Scalars['String']>
411
478
  }
412
479
 
480
+ export type QuerySellersArgs = {
481
+ country: Scalars['String']
482
+ geoCoordinates: InputMaybe<IGeoCoordinates>
483
+ postalCode: InputMaybe<Scalars['String']>
484
+ salesChannel: InputMaybe<Scalars['String']>
485
+ }
486
+
413
487
  export type QueryShippingArgs = {
414
488
  country: Scalars['String']
415
489
  items: Array<IShippingItem>
@@ -424,6 +498,24 @@ export type SearchMetadata = {
424
498
  logicalOperator: Scalars['String']
425
499
  }
426
500
 
501
+ /** Information of sellers. */
502
+ export type SellerInfo = {
503
+ /** Identification of the seller */
504
+ id: Maybe<Scalars['String']>
505
+ /** Logo of the seller */
506
+ logo: Maybe<Scalars['String']>
507
+ /** Name of the seller */
508
+ name: Maybe<Scalars['String']>
509
+ }
510
+
511
+ /** Regionalization with sellers information. */
512
+ export type SellersData = {
513
+ /** Identification of region. */
514
+ id: Maybe<Scalars['String']>
515
+ /** List of sellers. */
516
+ sellers: Maybe<Array<Maybe<SellerInfo>>>
517
+ }
518
+
427
519
  /** Shipping Simulation information. */
428
520
  export type ShippingData = {
429
521
  /** Address information. */
@@ -870,7 +962,10 @@ export type StorePropertyValue = {
870
962
  valueReference: Scalars['String']
871
963
  }
872
964
 
873
- /** Redirect informations, including url returned by the query. */
965
+ /**
966
+ * Redirect informations, including url returned by the query.
967
+ * https://schema.org/Thing
968
+ */
874
969
  export type StoreRedirect = {
875
970
  /** URL to redirect */
876
971
  url: Maybe<Scalars['String']>
@@ -1047,9 +1142,6 @@ export type ProductDetailsFragment_ProductFragment = {
1047
1142
  seller: { identifier: string }
1048
1143
  }>
1049
1144
  }
1050
- breadcrumbList: {
1051
- itemListElement: Array<{ item: string; name: string; position: number }>
1052
- }
1053
1145
  additionalProperty: Array<{
1054
1146
  propertyID: string
1055
1147
  name: string
@@ -1058,46 +1150,27 @@ export type ProductDetailsFragment_ProductFragment = {
1058
1150
  }>
1059
1151
  }
1060
1152
 
1061
- export type ProductGalleryQueryQueryVariables = Exact<{
1062
- first: Scalars['Int']
1063
- after: Scalars['String']
1064
- sort: StoreSort
1065
- term: Scalars['String']
1066
- selectedFacets: Array<IStoreSelectedFacet> | IStoreSelectedFacet
1067
- }>
1153
+ export type ClientProductFragment = { product: { id: string } }
1068
1154
 
1069
- export type ProductGalleryQueryQuery = {
1070
- search: {
1071
- products: { pageInfo: { totalCount: number } }
1072
- facets: Array<
1073
- | {
1074
- __typename: 'StoreFacetBoolean'
1075
- key: string
1076
- label: string
1077
- values: Array<{
1078
- label: string
1079
- value: string
1080
- selected: boolean
1081
- quantity: number
1082
- }>
1083
- }
1084
- | {
1085
- __typename: 'StoreFacetRange'
1086
- key: string
1087
- label: string
1088
- min: { selected: number; absolute: number }
1089
- max: { selected: number; absolute: number }
1090
- }
1091
- >
1092
- }
1155
+ export type ClientProductGalleryFragment = {
1156
+ search: { products: { pageInfo: { totalCount: number } } }
1157
+ }
1158
+
1159
+ export type ClientProductsFragment = {
1160
+ search: { products: { pageInfo: { totalCount: number } } }
1093
1161
  }
1094
1162
 
1163
+ export type ServerCollectionPageFragment = { collection: { id: string } }
1164
+
1165
+ export type ServerProductPageFragment = { product: { id: string } }
1166
+
1095
1167
  export type ServerCollectionPageQueryQueryVariables = Exact<{
1096
1168
  slug: Scalars['String']
1097
1169
  }>
1098
1170
 
1099
1171
  export type ServerCollectionPageQueryQuery = {
1100
1172
  collection: {
1173
+ id: string
1101
1174
  seo: { title: string; description: string }
1102
1175
  breadcrumbList: {
1103
1176
  itemListElement: Array<{ item: string; name: string; position: number }>
@@ -1107,7 +1180,7 @@ export type ServerCollectionPageQueryQuery = {
1107
1180
  }
1108
1181
 
1109
1182
  export type ServerProductPageQueryQueryVariables = Exact<{
1110
- slug: Scalars['String']
1183
+ locator: Array<IStoreSelectedFacet> | IStoreSelectedFacet
1111
1184
  }>
1112
1185
 
1113
1186
  export type ServerProductPageQueryQuery = {
@@ -1260,11 +1333,83 @@ export type SubscribeToNewsletterMutation = {
1260
1333
  subscribeToNewsletter: { id: string } | null
1261
1334
  }
1262
1335
 
1263
- export type BrowserProductQueryQueryVariables = Exact<{
1336
+ export type ClientProductsQueryQueryVariables = Exact<{
1337
+ first: Scalars['Int']
1338
+ after: InputMaybe<Scalars['String']>
1339
+ sort: StoreSort
1340
+ term: Scalars['String']
1341
+ selectedFacets: Array<IStoreSelectedFacet> | IStoreSelectedFacet
1342
+ }>
1343
+
1344
+ export type ClientProductsQueryQuery = {
1345
+ search: {
1346
+ products: {
1347
+ pageInfo: { totalCount: number }
1348
+ edges: Array<{
1349
+ node: {
1350
+ slug: string
1351
+ sku: string
1352
+ name: string
1353
+ gtin: string
1354
+ id: string
1355
+ brand: { name: string; brandName: string }
1356
+ isVariantOf: { productGroupID: string; name: string }
1357
+ image: Array<{ url: string; alternateName: string }>
1358
+ offers: {
1359
+ lowPrice: number
1360
+ offers: Array<{
1361
+ availability: string
1362
+ price: number
1363
+ listPrice: number
1364
+ quantity: number
1365
+ seller: { identifier: string }
1366
+ }>
1367
+ }
1368
+ }
1369
+ }>
1370
+ }
1371
+ }
1372
+ }
1373
+
1374
+ export type ClientProductGalleryQueryQueryVariables = Exact<{
1375
+ first: Scalars['Int']
1376
+ after: Scalars['String']
1377
+ sort: StoreSort
1378
+ term: Scalars['String']
1379
+ selectedFacets: Array<IStoreSelectedFacet> | IStoreSelectedFacet
1380
+ }>
1381
+
1382
+ export type ClientProductGalleryQueryQuery = {
1383
+ search: {
1384
+ products: { pageInfo: { totalCount: number } }
1385
+ facets: Array<
1386
+ | {
1387
+ __typename: 'StoreFacetBoolean'
1388
+ key: string
1389
+ label: string
1390
+ values: Array<{
1391
+ label: string
1392
+ value: string
1393
+ selected: boolean
1394
+ quantity: number
1395
+ }>
1396
+ }
1397
+ | {
1398
+ __typename: 'StoreFacetRange'
1399
+ key: string
1400
+ label: string
1401
+ min: { selected: number; absolute: number }
1402
+ max: { selected: number; absolute: number }
1403
+ }
1404
+ >
1405
+ }
1406
+ }
1407
+
1408
+ export type ClientProductQueryQueryVariables = Exact<{
1264
1409
  locator: Array<IStoreSelectedFacet> | IStoreSelectedFacet
1265
1410
  }>
1266
1411
 
1267
- export type BrowserProductQueryQuery = {
1412
+ export type ClientProductQueryQuery = {
1268
1413
  product: {
1269
1414
  sku: string
1270
1415
  name: string
@@ -1291,9 +1436,6 @@ export type BrowserProductQueryQuery = {
1291
1436
  seller: { identifier: string }
1292
1437
  }>
1293
1438
  }
1294
- breadcrumbList: {
1295
- itemListElement: Array<{ item: string; name: string; position: number }>
1296
- }
1297
1439
  additionalProperty: Array<{
1298
1440
  propertyID: string
1299
1441
  name: string
@@ -1303,44 +1445,6 @@ export type BrowserProductQueryQuery = {
1303
1445
  }
1304
1446
  }
1305
1447
 
1306
- export type ProductsQueryQueryVariables = Exact<{
1307
- first: Scalars['Int']
1308
- after: InputMaybe<Scalars['String']>
1309
- sort: StoreSort
1310
- term: Scalars['String']
1311
- selectedFacets: Array<IStoreSelectedFacet> | IStoreSelectedFacet
1312
- }>
1313
-
1314
- export type ProductsQueryQuery = {
1315
- search: {
1316
- products: {
1317
- pageInfo: { totalCount: number }
1318
- edges: Array<{
1319
- node: {
1320
- slug: string
1321
- sku: string
1322
- name: string
1323
- gtin: string
1324
- id: string
1325
- brand: { name: string; brandName: string }
1326
- isVariantOf: { productGroupID: string; name: string }
1327
- image: Array<{ url: string; alternateName: string }>
1328
- offers: {
1329
- lowPrice: number
1330
- offers: Array<{
1331
- availability: string
1332
- price: number
1333
- listPrice: number
1334
- quantity: number
1335
- seller: { identifier: string }
1336
- }>
1337
- }
1338
- }
1339
- }>
1340
- }
1341
- }
1342
- }
1343
-
1344
1448
  export type SearchSuggestionsQueryQueryVariables = Exact<{
1345
1449
  term: Scalars['String']
1346
1450
  selectedFacets: InputMaybe<Array<IStoreSelectedFacet> | IStoreSelectedFacet>
@@ -1,11 +1,11 @@
1
1
  {
2
- "ProductGalleryQuery": "query ProductGalleryQuery($first: Int!, $after: String!, $sort: StoreSort!, $term: String!, $selectedFacets: [IStoreSelectedFacet!]!) {\n search(\n first: $first\n after: $after\n sort: $sort\n term: $term\n selectedFacets: $selectedFacets\n ) {\n products {\n pageInfo {\n totalCount\n }\n }\n facets {\n ... on StoreFacetRange {\n key\n label\n min {\n selected\n absolute\n }\n max {\n selected\n absolute\n }\n __typename\n }\n ... on StoreFacetBoolean {\n key\n label\n values {\n label\n value\n selected\n quantity\n }\n __typename\n }\n }\n }\n}\n",
3
- "ServerCollectionPageQuery": "query ServerCollectionPageQuery($slug: String!) {\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n }\n}\n",
4
- "ServerProductPageQuery": "query ServerProductPageQuery($slug: String!) {\n product(locator: [{key: \"slug\", value: $slug}]) {\n id: productID\n seo {\n title\n description\n canonical\n }\n brand {\n name\n }\n sku\n gtin\n name\n description\n releaseDate\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n image {\n url\n alternateName\n }\n offers {\n lowPrice\n highPrice\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n listPrice\n }\n }\n isVariantOf {\n productGroupID\n name\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n }\n}\n",
2
+ "ServerCollectionPageQuery": "query ServerCollectionPageQuery($slug: String!) {\n collection(slug: $slug) {\n id\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n }\n}\n",
3
+ "ServerProductPageQuery": "query ServerProductPageQuery($locator: [IStoreSelectedFacet!]!) {\n product(locator: $locator) {\n id: productID\n seo {\n title\n description\n canonical\n }\n brand {\n name\n }\n sku\n gtin\n name\n description\n releaseDate\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n image {\n url\n alternateName\n }\n offers {\n lowPrice\n highPrice\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n listPrice\n }\n }\n isVariantOf {\n productGroupID\n name\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n }\n}\n",
5
4
  "ValidateCartMutation": "mutation ValidateCartMutation($cart: IStoreCart!, $session: IStoreSession!) {\n validateCart(cart: $cart, session: $session) {\n order {\n orderNumber\n acceptedOffer {\n seller {\n identifier\n }\n quantity\n price\n listPrice\n itemOffered {\n sku\n name\n image {\n url\n alternateName\n }\n brand {\n name\n }\n isVariantOf {\n productGroupID\n name\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n gtin\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n }\n }\n }\n messages {\n text\n status\n }\n }\n}\n",
6
5
  "SubscribeToNewsletter": "mutation SubscribeToNewsletter($data: IPersonNewsletter!) {\n subscribeToNewsletter(data: $data) {\n id\n }\n}\n",
7
- "BrowserProductQuery": "query BrowserProductQuery($locator: [IStoreSelectedFacet!]!) {\n product(locator: $locator) {\n id: productID\n sku\n name\n gtin\n description\n isVariantOf {\n name\n productGroupID\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n image {\n url\n alternateName\n }\n brand {\n name\n }\n offers {\n lowPrice\n offers {\n availability\n price\n listPrice\n seller {\n identifier\n }\n }\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n }\n}\n",
8
- "ProductsQuery": "query ProductsQuery($first: Int!, $after: String, $sort: StoreSort!, $term: String!, $selectedFacets: [IStoreSelectedFacet!]!) {\n search(\n first: $first\n after: $after\n sort: $sort\n term: $term\n selectedFacets: $selectedFacets\n ) {\n products {\n pageInfo {\n totalCount\n }\n edges {\n node {\n id: productID\n slug\n sku\n brand {\n brandName: name\n name\n }\n name\n gtin\n isVariantOf {\n productGroupID\n name\n }\n image {\n url\n alternateName\n }\n offers {\n lowPrice\n offers {\n availability\n price\n listPrice\n quantity\n seller {\n identifier\n }\n }\n }\n }\n }\n }\n }\n}\n",
6
+ "ClientProductsQuery": "query ClientProductsQuery($first: Int!, $after: String, $sort: StoreSort!, $term: String!, $selectedFacets: [IStoreSelectedFacet!]!) {\n search(\n first: $first\n after: $after\n sort: $sort\n term: $term\n selectedFacets: $selectedFacets\n ) {\n products {\n pageInfo {\n totalCount\n }\n edges {\n node {\n id: productID\n slug\n sku\n brand {\n brandName: name\n name\n }\n name\n gtin\n isVariantOf {\n productGroupID\n name\n }\n image {\n url\n alternateName\n }\n offers {\n lowPrice\n offers {\n availability\n price\n listPrice\n quantity\n seller {\n identifier\n }\n }\n }\n }\n }\n }\n }\n}\n",
7
+ "ClientProductGalleryQuery": "query ClientProductGalleryQuery($first: Int!, $after: String!, $sort: StoreSort!, $term: String!, $selectedFacets: [IStoreSelectedFacet!]!) {\n search(\n first: $first\n after: $after\n sort: $sort\n term: $term\n selectedFacets: $selectedFacets\n ) {\n products {\n pageInfo {\n totalCount\n }\n }\n facets {\n ... on StoreFacetRange {\n key\n label\n min {\n selected\n absolute\n }\n max {\n selected\n absolute\n }\n __typename\n }\n ... on StoreFacetBoolean {\n key\n label\n values {\n label\n value\n selected\n quantity\n }\n __typename\n }\n }\n }\n}\n",
8
+ "ClientProductQuery": "query ClientProductQuery($locator: [IStoreSelectedFacet!]!) {\n product(locator: $locator) {\n id: productID\n sku\n name\n gtin\n description\n isVariantOf {\n name\n productGroupID\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n image {\n url\n alternateName\n }\n brand {\n name\n }\n offers {\n lowPrice\n offers {\n availability\n price\n listPrice\n seller {\n identifier\n }\n }\n }\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n }\n}\n",
9
9
  "SearchSuggestionsQuery": "query SearchSuggestionsQuery($term: String!, $selectedFacets: [IStoreSelectedFacet!]) {\n search(first: 5, term: $term, selectedFacets: $selectedFacets) {\n suggestions {\n terms {\n value\n }\n products {\n id: productID\n slug\n sku\n brand {\n brandName: name\n name\n }\n name\n gtin\n isVariantOf {\n productGroupID\n name\n }\n image {\n url\n alternateName\n }\n offers {\n lowPrice\n offers {\n availability\n price\n listPrice\n quantity\n seller {\n identifier\n }\n }\n }\n }\n }\n }\n}\n",
10
10
  "TopSearchSuggestionsQuery": "query TopSearchSuggestionsQuery($term: String!, $selectedFacets: [IStoreSelectedFacet!]) {\n search(first: 5, term: $term, selectedFacets: $selectedFacets) {\n suggestions {\n terms {\n value\n }\n }\n }\n}\n",
11
11
  "ValidateSession": "mutation ValidateSession($session: IStoreSession!, $search: String!) {\n validateSession(session: $session, search: $search) {\n locale\n channel\n country\n addressType\n postalCode\n deliveryMode {\n deliveryChannel\n deliveryMethod\n deliveryWindow {\n startDate\n endDate\n }\n }\n geoCoordinates {\n latitude\n longitude\n }\n currency {\n code\n symbol\n }\n person {\n id\n email\n givenName\n familyName\n }\n }\n}\n",