@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,32 +0,0 @@
1
- "use strict";
2
- exports.id = 676;
3
- exports.ids = [676];
4
- exports.modules = {
5
-
6
- /***/ 80676:
7
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8
-
9
-
10
- Object.defineProperty(exports, "__esModule", ({
11
- value: true
12
- }));
13
- exports["default"] = isError;
14
- exports.getProperError = getProperError;
15
- var _isPlainObject = __webpack_require__(78524);
16
- function isError(err) {
17
- return typeof err === "object" && err !== null && "name" in err && "message" in err;
18
- }
19
- function getProperError(err) {
20
- if (isError(err)) {
21
- return err;
22
- }
23
- if (false) {}
24
- return new Error((0, _isPlainObject).isPlainObject(err) ? JSON.stringify(err) : err + "");
25
- }
26
-
27
- //# sourceMappingURL=is-error.js.map
28
-
29
- /***/ })
30
-
31
- };
32
- ;
@@ -1,58 +0,0 @@
1
- "use strict";
2
- exports.id = 693;
3
- exports.ids = [693];
4
- exports.modules = {
5
-
6
- /***/ 6693:
7
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
-
9
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
11
- /* harmony export */ });
12
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
13
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
14
- /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37041);
15
- /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2614);
16
- /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42256);
17
-
18
-
19
- const QuantitySelector = ({ max, min = 1, initial, disabled = false, onChange, testId = 'fs-quantity-selector', ...otherProps }) => {
20
- const [quantity, setQuantity] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initial ?? min);
21
- const isLeftDisabled = quantity === min;
22
- const isRightDisabled = quantity === max;
23
- const changeQuantity = (increaseValue) => {
24
- const quantityValue = validateQuantityBounds(quantity + increaseValue);
25
- onChange?.(quantityValue);
26
- setQuantity(quantityValue);
27
- };
28
- const increase = () => changeQuantity(1);
29
- const decrease = () => changeQuantity(-1);
30
- function validateQuantityBounds(n) {
31
- const maxValue = min ? Math.max(n, min) : n;
32
- return max ? Math.min(maxValue, max) : maxValue;
33
- }
34
- function validateInput(e) {
35
- const val = e.currentTarget.value;
36
- if (!Number.isNaN(Number(val))) {
37
- setQuantity(() => {
38
- const quantityValue = validateQuantityBounds(Number(val));
39
- onChange?.(quantityValue);
40
- return quantityValue;
41
- });
42
- }
43
- }
44
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
45
- initial && setQuantity(initial);
46
- }, [initial]);
47
- return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { "data-fs-quantity-selector": disabled ? 'disabled' : 'true', "data-testid": testId, ...otherProps },
48
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { "data-quantity-selector-button": "left", icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { name: "Minus", width: 16, height: 16, weight: "bold" }), "aria-label": "Decrement Quantity", "aria-controls": "quantity-selector-input", disabled: isLeftDisabled || disabled, onClick: decrease, testId: `${testId}-left-button`, size: "small" }),
49
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { "data-quantity-selector-input": true, id: "quantity-selector-input", "aria-label": "Quantity", value: quantity, onChange: validateInput, disabled: disabled }),
50
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { "data-quantity-selector-button": "right", "aria-controls": "quantity-selector-input", "aria-label": "Increment Quantity", disabled: isRightDisabled || disabled, icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { name: "Plus", width: 16, height: 16, weight: "bold" }), onClick: increase, testId: `${testId}-right-button`, size: "small" })));
51
- };
52
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (QuantitySelector);
53
- //# sourceMappingURL=QuantitySelector.js.map
54
-
55
- /***/ })
56
-
57
- };
58
- ;