@faststore/core 3.9.3 → 3.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +4 -4
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/cache/eslint/.cache_1gneedd +1 -1
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.js +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/371.js +1 -1
- package/.next/server/chunks/5430.js +1 -1
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/[...slug].js +1 -1
- package/.next/server/pages/en-US/404.html +1 -1
- package/.next/server/pages/en-US/500.html +1 -1
- package/.next/server/pages/en-US/account.html +1 -1
- package/.next/server/pages/en-US/checkout.html +1 -1
- package/.next/server/pages/en-US/login.html +1 -1
- package/.next/server/pages/en-US/s.html +1 -1
- package/.next/server/pages/en-US.html +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/static/{qStjoQW6ZM1UbmV1436TX → KLRpc4egH7cH2aYyX8E9h}/_buildManifest.js +1 -1
- package/.next/static/chunks/pages/[...slug]-ea558b39fbfcc27f.js +1 -0
- package/.next/static/chunks/pages/{_app-9d35d5919aef5334.js → _app-e8bd1b2503bf0aa9.js} +1 -1
- package/.next/trace +101 -101
- package/.turbo/turbo-build.log +6 -6
- package/.turbo/turbo-test.log +5 -5
- package/CHANGELOG.md +6 -0
- package/discovery.config.default.js +4 -0
- package/package.json +2 -2
- package/src/components/templates/ProductListingPage/ProductListingPage.tsx +12 -4
- package/.next/static/chunks/pages/[...slug]-535243edd040fc0c.js +0 -1
- /package/.next/static/{qStjoQW6ZM1UbmV1436TX → KLRpc4egH7cH2aYyX8E9h}/_ssgManifest.js +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -38,8 +38,8 @@ https://nextjs.org/telemetry
|
|
|
38
38
|
Collecting page data ...
|
|
39
39
|
Generating static pages (0/7) ...
|
|
40
40
|
|
|
41
41
|
Generating static pages (1/7)
|
|
42
|
-
|
|
43
42
|
Generating static pages (3/7)
|
|
44
43
|
Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function.
|
|
44
|
+
|
|
45
45
|
Generating static pages (3/7)
|
|
46
46
|
|
|
47
47
|
Generating static pages (5/7)
|
|
48
48
|
|
|
49
49
|
✓ Generating static pages (7/7)
|
|
50
50
|
Finalizing page optimization ...
|
|
@@ -49,13 +49,13 @@ Route (pages) Size First Load JS
|
|
|
49
49
|
┌ ● / 3.23 kB 122 kB
|
|
50
50
|
├ └ css/b1806cbafd0c1f81.css 3.06 kB
|
|
51
51
|
├ /_app 0 B 91.9 kB
|
|
52
|
-
├ ● /[...slug] 2.
|
|
52
|
+
├ ● /[...slug] 2.09 kB 131 kB
|
|
53
53
|
├ ● /[slug]/p 34.1 kB 153 kB
|
|
54
54
|
├ ├ css/bf1560439df2c1a1.css 5.66 kB
|
|
55
55
|
├ ├ css/e3ff5d95518a5c79.css 6.01 kB
|
|
56
56
|
├ └ css/d92839440872e246.css 15.6 kB
|
|
57
|
-
├ ○ /404 1.48 kB
|
|
58
|
-
├ ● /500 1.48 kB
|
|
57
|
+
├ ○ /404 1.48 kB 121 kB
|
|
58
|
+
├ ● /500 1.48 kB 121 kB
|
|
59
59
|
├ ● /account 714 B 120 kB
|
|
60
60
|
├ λ /api/graphql 0 B 91.9 kB
|
|
61
61
|
├ λ /api/health/live 0 B 91.9 kB
|
|
@@ -67,7 +67,7 @@ Route (pages) Size First Load JS
|
|
|
67
67
|
+ First Load JS shared by all 95 kB
|
|
68
68
|
├ chunks/framework-12a146e94cfcf7c4.js 45.4 kB
|
|
69
69
|
├ chunks/main-209ac4974b020af1.js 33.1 kB
|
|
70
|
-
├ chunks/pages/_app-
|
|
70
|
+
├ chunks/pages/_app-e8bd1b2503bf0aa9.js 9.94 kB
|
|
71
71
|
├ chunks/webpack-bf502499da135235.js 3.57 kB
|
|
72
72
|
└ css/ee0556daedda6306.css 3.07 kB
|
|
73
73
|
|
|
@@ -75,4 +75,4 @@ Route (pages) Size First Load JS
|
|
|
75
75
|
○ (Static) automatically rendered as static HTML (uses no initial props)
|
|
76
76
|
● (SSG) automatically generated as static HTML + JSON (uses getStaticProps)
|
|
77
77
|
|
|
78
|
-
Done in 69.
|
|
78
|
+
Done in 69.67s.
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
yarn run v1.22.22
|
|
2
2
|
$ jest
|
|
3
|
-
PASS test/
|
|
4
|
-
PASS test/
|
|
5
|
-
PASS test/server/index.test.ts (39.
|
|
3
|
+
PASS test/server/cms/index.test.ts (35.287 s)
|
|
4
|
+
PASS test/utils/multipleTemplates.test.ts (36.448 s)
|
|
5
|
+
PASS test/server/index.test.ts (39.699 s)
|
|
6
6
|
|
|
7
7
|
Test Suites: 3 passed, 3 total
|
|
8
8
|
Tests: 19 passed, 19 total
|
|
9
9
|
Snapshots: 0 total
|
|
10
|
-
Time: 40.
|
|
10
|
+
Time: 40.791 s
|
|
11
11
|
Ran all test suites.
|
|
12
|
-
Done in 42.
|
|
12
|
+
Done in 42.30s.
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
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
|
+
# [3.10.0](https://github.com/vtex/faststore/compare/v3.9.3...v3.10.0) (2025-01-29)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- add `title` and `description` templates for product listing pages ([#2643](https://github.com/vtex/faststore/issues/2643)) ([00221d9](https://github.com/vtex/faststore/commit/00221d98439b693af3c2c0082ec7ef600637e19e))
|
|
11
|
+
|
|
6
12
|
## [3.9.3](https://github.com/vtex/faststore/compare/v3.9.2...v3.9.3) (2025-01-28)
|
|
7
13
|
|
|
8
14
|
### Bug Fixes
|
|
@@ -4,6 +4,10 @@ module.exports = {
|
|
|
4
4
|
description: 'Fast Demo Store',
|
|
5
5
|
titleTemplate: '%s | FastStore',
|
|
6
6
|
author: 'Store Framework',
|
|
7
|
+
plp: {
|
|
8
|
+
titleTemplate: '%s | FastStore PLP',
|
|
9
|
+
descriptionTemplate: '%s products on FastStore Product Listing Page',
|
|
10
|
+
},
|
|
7
11
|
},
|
|
8
12
|
|
|
9
13
|
// Theming
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.10.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": "vtex/faststore",
|
|
6
6
|
"browserslist": "supports es6-module and not dead",
|
|
@@ -128,5 +128,5 @@
|
|
|
128
128
|
"node": "18.19.0",
|
|
129
129
|
"yarn": "1.19.1"
|
|
130
130
|
},
|
|
131
|
-
"gitHead": "
|
|
131
|
+
"gitHead": "03506c3d584afd18033e383c806a078a3f9862dc"
|
|
132
132
|
}
|
|
@@ -12,7 +12,7 @@ import type { ServerCollectionPageQueryQuery } from '@generated/graphql'
|
|
|
12
12
|
import { ITEMS_PER_PAGE } from 'src/constants'
|
|
13
13
|
import { useApplySearchState } from 'src/sdk/search/state'
|
|
14
14
|
|
|
15
|
-
import { PLPContentType } from 'src/server/cms/plp'
|
|
15
|
+
import type { PLPContentType } from 'src/server/cms/plp'
|
|
16
16
|
|
|
17
17
|
import storeConfig from '../../../../discovery.config'
|
|
18
18
|
import ProductListing from './ProductListing'
|
|
@@ -68,8 +68,16 @@ export default function ProductListingPage({
|
|
|
68
68
|
sort: settings?.productGallery?.sortBySelection as SearchState['sort'],
|
|
69
69
|
})
|
|
70
70
|
|
|
71
|
-
const
|
|
72
|
-
|
|
71
|
+
const {
|
|
72
|
+
seo: { plp: plpSeo, ...storeSeo },
|
|
73
|
+
} = storeConfig
|
|
74
|
+
const title = collection?.seo.title ?? storeSeo.title
|
|
75
|
+
const titleTemplate = plpSeo?.titleTemplate ?? storeSeo.titleTemplate
|
|
76
|
+
const description =
|
|
77
|
+
collection?.seo.description || // Use description that comes from the Checkout API
|
|
78
|
+
plpSeo?.descriptionTemplate?.replace(/%s/g, () => title) || // Use description template from the SEO config for PLP
|
|
79
|
+
storeSeo.description // Use default description from the store SEO config
|
|
80
|
+
|
|
73
81
|
const [pathname] = router.asPath.split('?')
|
|
74
82
|
const canonical = `${storeConfig.storeUrl}${pathname}`
|
|
75
83
|
const itemsPerPage = settings?.productGallery?.itemsPerPage ?? ITEMS_PER_PAGE
|
|
@@ -84,7 +92,7 @@ export default function ProductListingPage({
|
|
|
84
92
|
<NextSeo
|
|
85
93
|
title={title}
|
|
86
94
|
description={description}
|
|
87
|
-
titleTemplate={
|
|
95
|
+
titleTemplate={titleTemplate}
|
|
88
96
|
canonical={canonical}
|
|
89
97
|
openGraph={{
|
|
90
98
|
type: 'website',
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[330],{3054:function(e,t,r){"use strict";r.r(t),r.d(t,{__N_SSG:function(){return M},default:function(){return _slug_}});var n=r(9499),o=r(4730),c=r(5152),i=r.n(c),s=r(6142),a=r(2339),l=r(1197),u=r(5351),d=r(1163),p=r(2784),b=r(1023),g=r(5403),P=r(5430),j=r.n(P),O=r(9029),f=r(9996),y=r.n(f),w=r(3472),v=r(3638),_=r(4485),h=r(4439),m=r(7641),S=r(1271);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var L=i()(()=>Promise.all([r.e(9161),r.e(84)]).then(r.bind(r,3620)).then(e=>e.OverriddenDefaultBannerText),{ssr:!1,loadableGenerated:{webpack:()=>[3620]}}),D=i()(()=>Promise.all([r.e(1770),r.e(218),r.e(9704)]).then(r.bind(r,1482)).then(e=>e.OverriddenDefaultNewsletter),{ssr:!1,loadableGenerated:{webpack:()=>[1482]}}),x=i()(()=>Promise.all([r.e(3472),r.e(3506)]).then(r.bind(r,1171)).then(e=>e.OverriddenDefaultProductShelf),{ssr:!1,loadableGenerated:{webpack:()=>[1171]}}),E=i()(()=>r.e(7181).then(r.bind(r,9755)),{ssr:!1,loadableGenerated:{webpack:()=>[9755]}}),k=_objectSpread(_objectSpread(_objectSpread({},S.Z),{},{Breadcrumb:w.j,Hero:v.V,ProductGallery:_.f,BannerText:L,Newsletter:D,ProductShelf:x,ProductTiles:E},m.Z),h.Z),G=r(7563),K=r(4960),Z=r(7171),N=r(7921),T=r(2322);function ProductListing_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ProductListing_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductListing_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductListing_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var B=i()(()=>r.e(6636).then(r.bind(r,7917)),{loadableGenerated:{webpack:()=>[7917]}}),overwriteMerge=(e,t)=>t;function ProductListing(e){var t,r,{page:{sections:n,settings:o},data:c,globalSections:i}=e,{state:{sort:s,term:a,selectedFacets:l}}=(0,O.R)(),u=null!==(t=null==o?void 0:null===(r=o.productGallery)||void 0===r?void 0:r.itemsPerPage)&&void 0!==t?t:b.g,{data:d}=(0,N.UO)({term:a,sort:s,selectedFacets:l,itemsPerPage:u}),{pages:p,useGalleryPage:g}=(0,Z.Y_)(),P={data:ProductListing_objectSpread(ProductListing_objectSpread({},y()(ProductListing_objectSpread({},c),ProductListing_objectSpread({},d),{arrayMerge:overwriteMerge})),{},{pages:p})};return(0,T.jsx)(T.Fragment,{children:(0,T.jsx)(K.ZP,{context:P,children:(0,T.jsx)(Z.Bj.Provider,{value:g,children:(0,T.jsx)(G.Z,{sections:n,globalSections:i,components:k,children:(0,T.jsx)(G.w,{sectionName:"ScrollToTopButton",children:(0,T.jsx)(B,{})})})})})})}function ProductListingPage_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ProductListingPage_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductListingPage_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductListingPage_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var useSearchParams=e=>{var{collection:t,sort:r}=e,n=null==t?void 0:t.meta.selectedFacets,{asPath:o}=(0,d.useRouter)(),c=(0,p.useMemo)(()=>{var e=new URL(o,"http://localhost");r&&!e.searchParams.has("sort")&&e.searchParams.set("sort",r);var t=(0,s.Q)(e);return 0===t.selectedFacets.length&&(t.selectedFacets=n),(0,a.Z)(t).href},[o,n,r]);return(0,p.useMemo)(()=>(0,s.Q)(new URL(c)),[c])};function ProductListingPage(e){var t,r,n,o,c,i,{page:s,data:a,globalSections:p}=e,{settings:P}=s,O=a.collection,f=(0,d.useRouter)(),y=(0,g.j)(),w=useSearchParams({collection:O,sort:null==P?void 0:null===(t=P.productGallery)||void 0===t?void 0:t.sortBySelection}),v=null!==(r=null==O?void 0:O.seo.title)&&void 0!==r?r:j().seo.title,_=null!==(n=null==O?void 0:O.seo.description)&&void 0!==n?n:j().seo.title,[h]=f.asPath.split("?"),m="".concat(j().storeUrl).concat(h),S=null!==(o=null==P?void 0:null===(c=P.productGallery)||void 0===c?void 0:c.itemsPerPage)&&void 0!==o?o:b.g;return(0,T.jsxs)(l.z,ProductListingPage_objectSpread(ProductListingPage_objectSpread({onChange:y,itemsPerPage:S},w),{},{children:[(0,T.jsx)(u.PB,{title:v,description:_,titleTemplate:j().seo.titleTemplate,canonical:m,openGraph:{type:"website",title:v,description:_}}),(0,T.jsx)(u.gR,{itemListElements:null!==(i=null==O?void 0:O.breadcrumbList.itemListElement)&&void 0!==i?i:[]}),(0,T.jsx)(ProductListing,{globalSections:p,page:s,data:a})]}))}var R=["globalSections","type"];function _slug_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _slug_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_slug_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_slug_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var F=i()(()=>Promise.all([r.e(1770),r.e(5997),r.e(3472),r.e(218),r.e(9161),r.e(6379),r.e(1978)]).then(r.bind(r,8205)),{loadableGenerated:{webpack:()=>[8205]}}),M=!0,_slug_=function(e){var{globalSections:t,type:r}=e,n=(0,o.Z)(e,R);return(0,T.jsxs)(T.Fragment,{children:["plp"===r&&(0,T.jsx)(ProductListingPage,_slug_objectSpread({globalSections:t.sections},n)),"page"===r&&(0,T.jsx)(F,_slug_objectSpread({globalSections:t.sections},n))]})}},881:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[...slug]",function(){return r(3054)}])}},function(e){e.O(0,[6941,7563,4501,9774,2888,179],function(){return e(e.s=881)}),_N_E=e.O()}]);
|
|
File without changes
|