@faststore/core 3.100.7 → 3.100.9
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 +23 -23
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/webpack/client-production/0.pack +2 -2
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +2 -2
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/images-manifest.json +1 -1
- package/.next/prerender-manifest.js +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/react-loadable-manifest.json +2 -2
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/948.js +1 -1
- package/.next/server/chunks/9563.js +3 -3
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/api/graphql.js +3 -3
- package/.next/server/pages/api/preview.js +1 -1
- package/.next/server/pages/en-US/404.html +2 -2
- package/.next/server/pages/en-US/500.html +2 -2
- package/.next/server/pages/en-US/checkout.html +2 -2
- package/.next/server/pages/en-US/login.html +2 -2
- package/.next/server/pages/en-US/password-protection.html +2 -2
- package/.next/server/pages/en-US/s.html +2 -2
- package/.next/server/pages/en-US.html +2 -2
- package/.next/server/pages-manifest.json +1 -1
- package/.next/server/src/middleware.js +3 -3
- package/.next/static/{Oxei21wY_TrPYtPGUrFiR → bnfahun8MCxDDpW52hKXX}/_buildManifest.js +1 -1
- package/.next/static/chunks/7783.017603f0dd9e1dd7.js +1 -0
- package/.next/static/chunks/pages/{[...slug]-cf9e3bf4febd21c3.js → [...slug]-d2b8abf5b0c0bb19.js} +1 -1
- package/.next/static/chunks/{webpack-bde714c56fd09a0c.js → webpack-62bcb2a452e15476.js} +1 -1
- package/.next/trace +156 -156
- package/.turbo/turbo-build.log +160 -165
- package/CHANGELOG.md +13 -0
- package/package.json +3 -3
- package/src/server/cms/index.ts +59 -7
- package/src/server/cms/pdp.ts +10 -5
- package/src/server/cms/plp.ts +10 -5
- package/src/server/content/promiseCache.ts +68 -0
- package/src/server/content/service.ts +56 -38
- package/test/server/cms/index.test.ts +112 -8
- package/test/server/content/promiseCache.test.ts +150 -0
- package/test/server/content/service.test.ts +229 -5
- package/.next/cache/config.json +0 -7
- package/.next/static/chunks/3802.9744a010fe6a4d07.js +0 -1
- package/.turbo/turbo-test.log +0 -23
- /package/.next/static/{Oxei21wY_TrPYtPGUrFiR → bnfahun8MCxDDpW52hKXX}/_ssgManifest.js +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,165 +1,160 @@
|
|
|
1
|
-
|
|
2
|
-
> @faststore/core@3.100.6 prebuild /home/runner/work/faststore/faststore/packages/core
|
|
3
|
-
> na run partytown && na run generate
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
> @faststore/core@3.100.6 partytown /home/runner/work/faststore/faststore/packages/core
|
|
7
|
-
> partytown copylib ./public/~partytown
|
|
8
|
-
|
|
9
|
-
Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
|
|
10
|
-
|
|
11
|
-
> @faststore/core@3.100.6 generate /home/runner/work/faststore/faststore/packages/core
|
|
12
|
-
> na run generate:schema && na run generate:codegen && na run format:generated
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
> @faststore/core@3.100.6 generate:schema /home/runner/work/faststore/faststore/packages/core
|
|
16
|
-
> tsx src/server/generator/generateGraphQLSchemaFile.ts
|
|
17
|
-
|
|
18
|
-
Schema GraphQL file generated successfully
|
|
19
|
-
|
|
20
|
-
> @faststore/core@3.100.6 generate:codegen /home/runner/work/faststore/faststore/packages/core
|
|
21
|
-
> graphql-codegen
|
|
22
|
-
|
|
23
|
-
[STARTED] Parse Configuration
|
|
24
|
-
[SUCCESS] Parse Configuration
|
|
25
|
-
[STARTED] Generate outputs
|
|
26
|
-
[STARTED] Generate to ./@generated/
|
|
27
|
-
[STARTED] Load GraphQL schemas
|
|
28
|
-
[SUCCESS] Load GraphQL schemas
|
|
29
|
-
[STARTED] Load GraphQL documents
|
|
30
|
-
[SUCCESS] Load GraphQL documents
|
|
31
|
-
[STARTED] Generate
|
|
32
|
-
[SUCCESS] Generate
|
|
33
|
-
[SUCCESS] Generate to ./@generated/
|
|
34
|
-
[SUCCESS] Generate outputs
|
|
35
|
-
Running lifecycle hook "afterStart" scripts...
|
|
36
|
-
[CLI] Loading Schemas
|
|
37
|
-
[CLI] Loading Documents
|
|
38
|
-
[CLI] Generating output
|
|
39
|
-
|
|
40
|
-
> @faststore/core@3.100.6 format:generated /home/runner/work/faststore/faststore/packages/core
|
|
41
|
-
> prettier --write "@generated/**/*.{ts,js,tsx,jsx,json}" --loglevel error
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
> @faststore/core@3.100.6 build /home/runner/work/faststore/faststore/packages/core
|
|
45
|
-
> next build
|
|
46
|
-
|
|
47
|
-
⚠ No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
|
|
48
|
-
Attention: Next.js now collects completely anonymous telemetry regarding usage.
|
|
49
|
-
This information is used to shape Next.js' roadmap and prioritize features.
|
|
50
|
-
You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
|
|
51
|
-
https://nextjs.org/telemetry
|
|
52
|
-
|
|
53
|
-
Browserslist: caniuse-lite is outdated. Please run:
|
|
54
|
-
npx browserslist@latest --update-db
|
|
55
|
-
Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating
|
|
56
|
-
Skipping linting
|
|
57
|
-
Checking validity of types ...
|
|
58
|
-
Creating an optimized production build ...
|
|
59
|
-
Disabled SWC as replacement for Babel because of custom Babel configuration ".babelrc.js" https://nextjs.org/docs/messages/swc-disabled
|
|
60
|
-
Using external babel configuration from /home/runner/work/faststore/faststore/packages/core/.babelrc.js
|
|
61
|
-
Browserslist: browsers data (caniuse-lite) is 21 months old. Please run:
|
|
62
|
-
npx update-browserslist-db@latest
|
|
63
|
-
Why you should do it regularly: https://github.com/browserslist/update-db#readme
|
|
64
|
-
<w> [webpack.cache.PackFileCacheStrategy] Skipped not serializable cache item 'Compilation/modules|/home/runner/work/faststore/faststore/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[1]!/home/runner/work/faststore/faststore/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[2]!/home/runner/work/faststore/faststore/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js??ruleSet[1].rules[7].oneOf[9].use[3]!/home/runner/work/faststore/faststore/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[7].oneOf[9].use[4]!/home/runner/work/faststore/faststore/packages/core/src/components/common/Toast/section.module.scss': No serializer registered for Warning
|
|
65
|
-
<w> while serializing webpack/lib/cache/PackFileCacheStrategy.PackContentItems -> webpack/lib/NormalModule -> Array { 1 items } -> webpack/lib/ModuleWarning -> Warning
|
|
66
|
-
⚠ Compiled with warnings
|
|
67
|
-
|
|
68
|
-
./src/components/common/Toast/section.module.scss.webpack[javascript/auto]!=!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[1]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[2]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js??ruleSet[1].rules[7].oneOf[9].use[3]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[7].oneOf[9].use[4]!./src/components/common/Toast/section.module.scss
|
|
69
|
-
Warning
|
|
70
|
-
|
|
71
|
-
(1:1634) autoprefixer: start value has mixed support, consider using flex-start instead
|
|
72
|
-
|
|
73
|
-
Import trace for requested module:
|
|
74
|
-
./src/components/common/Toast/section.module.scss.webpack[javascript/auto]!=!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[1]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[2]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js??ruleSet[1].rules[7].oneOf[9].use[3]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[7].oneOf[9].use[4]!./src/components/common/Toast/section.module.scss
|
|
75
|
-
./src/components/common/Toast/section.module.scss
|
|
76
|
-
./src/components/common/Toast/Toast.tsx
|
|
77
|
-
./src/components/common/Toast/index.ts
|
|
78
|
-
./src/components/cms/RenderSections.tsx
|
|
79
|
-
|
|
80
|
-
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/deflate.js
|
|
81
|
-
A Node.js API is used (CompressionStream at line: 10) which is not supported in the Edge Runtime.
|
|
82
|
-
Learn more: https://nextjs.org/docs/api-reference/edge-runtime
|
|
83
|
-
|
|
84
|
-
Import trace for requested module:
|
|
85
|
-
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/deflate.js
|
|
86
|
-
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js
|
|
87
|
-
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/index.js
|
|
88
|
-
./src/server/password-protection-service.ts
|
|
89
|
-
|
|
90
|
-
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/deflate.js
|
|
91
|
-
A Node.js API is used (DecompressionStream at line: 25) which is not supported in the Edge Runtime.
|
|
92
|
-
Learn more: https://nextjs.org/docs/api-reference/edge-runtime
|
|
93
|
-
|
|
94
|
-
Import trace for requested module:
|
|
95
|
-
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/deflate.js
|
|
96
|
-
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js
|
|
97
|
-
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/index.js
|
|
98
|
-
./src/server/password-protection-service.ts
|
|
99
|
-
|
|
100
|
-
Collecting page data ...
|
|
101
|
-
Generating static pages (0/8) ...
|
|
102
|
-
|
|
103
1
|
Generating static pages (2/8)
|
|
104
|
-
Search not found. Add a new component for this section or remove it from the CMS
|
|
105
|
-
Search not found. Add a new component for this section or remove it from the CMS
|
|
106
|
-
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.
|
|
107
|
-
|
|
108
2
|
Generating static pages (4/8)
|
|
109
|
-
Search not found. Add a new component for this section or remove it from the CMS
|
|
110
|
-
Search not found. Add a new component for this section or remove it from the CMS
|
|
111
|
-
|
|
112
3
|
Generating static pages (6/8)
|
|
113
|
-
Search not found. Add a new component for this section or remove it from the CMS
|
|
114
|
-
Search not found. Add a new component for this section or remove it from the CMS
|
|
115
|
-
|
|
116
4
|
✓ Generating static pages (8/8)
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
> @faststore/core@3.100.9 prebuild /Users/lariciamota/faststore-3x-release/packages/core
|
|
8
|
+
> na run partytown && na run generate
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
> @faststore/core@3.100.9 partytown /Users/lariciamota/faststore-3x-release/packages/core
|
|
12
|
+
> partytown copylib ./public/~partytown
|
|
13
|
+
|
|
14
|
+
Partytown lib copied to: /Users/lariciamota/faststore-3x-release/packages/core/public/~partytown
|
|
15
|
+
|
|
16
|
+
> @faststore/core@3.100.9 generate /Users/lariciamota/faststore-3x-release/packages/core
|
|
17
|
+
> na run generate:schema && na run generate:codegen && na run format:generated
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
> @faststore/core@3.100.9 generate:schema /Users/lariciamota/faststore-3x-release/packages/core
|
|
21
|
+
> tsx src/server/generator/generateGraphQLSchemaFile.ts
|
|
22
|
+
|
|
23
|
+
Schema GraphQL file generated successfully
|
|
24
|
+
|
|
25
|
+
> @faststore/core@3.100.9 generate:codegen /Users/lariciamota/faststore-3x-release/packages/core
|
|
26
|
+
> graphql-codegen
|
|
27
|
+
|
|
28
|
+
[STARTED] Parse Configuration
|
|
29
|
+
[SUCCESS] Parse Configuration
|
|
30
|
+
[STARTED] Generate outputs
|
|
31
|
+
[STARTED] Generate to ./@generated/
|
|
32
|
+
[STARTED] Load GraphQL schemas
|
|
33
|
+
[SUCCESS] Load GraphQL schemas
|
|
34
|
+
[STARTED] Load GraphQL documents
|
|
35
|
+
[SUCCESS] Load GraphQL documents
|
|
36
|
+
[STARTED] Generate
|
|
37
|
+
[SUCCESS] Generate
|
|
38
|
+
[SUCCESS] Generate to ./@generated/
|
|
39
|
+
[SUCCESS] Generate outputs
|
|
40
|
+
Running lifecycle hook "afterStart" scripts...
|
|
41
|
+
[CLI] Loading Schemas
|
|
42
|
+
[CLI] Loading Documents
|
|
43
|
+
[CLI] Generating output
|
|
44
|
+
|
|
45
|
+
> @faststore/core@3.100.9 format:generated /Users/lariciamota/faststore-3x-release/packages/core
|
|
46
|
+
> prettier --write "@generated/**/*.{ts,js,tsx,jsx,json}" --loglevel error
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
> @faststore/core@3.100.9 build /Users/lariciamota/faststore-3x-release/packages/core
|
|
50
|
+
> next build
|
|
51
|
+
|
|
52
|
+
Browserslist: caniuse-lite is outdated. Please run:
|
|
53
|
+
npx browserslist@latest --update-db
|
|
54
|
+
Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating
|
|
55
|
+
[37m[1m [22m[39m Skipping linting
|
|
56
|
+
[?25l [37m[1m [22m[39m Checking validity of types [36m.[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m..[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m...[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m.[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m..[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m...[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m.[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m..[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m...[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m.[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m..[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m...[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m.[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m..[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m...[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m.[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m..[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m...[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m.[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m..[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m...[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m.[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m..[39m[2K[1G [37m[1m [22m[39m Checking validity of types [36m...[39m[2K[1G[?25h [37m[1m [22m[39m Checking validity of types
|
|
170
57
|
[32m[1m✓[22m[39m Checking validity of types
|
|
58
|
+
[?25l [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G[?25h [37m[1m [22m[39m Disabled SWC as replacement for Babel because of custom Babel configuration ".babelrc.js" https://nextjs.org/docs/messages/swc-disabled
|
|
59
|
+
[?25l [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G[?25h [37m[1m [22m[39m Using external babel configuration from /Users/lariciamota/faststore-3x-release/packages/core/.babelrc.js
|
|
60
|
+
[?25l [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G[?25hBrowserslist: browsers data (caniuse-lite) is 21 months old. Please run:
|
|
61
|
+
npx update-browserslist-db@latest
|
|
62
|
+
Why you should do it regularly: https://github.com/browserslist/update-db#readme
|
|
63
|
+
[?25l [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m<w> [1m[33m[webpack.cache.PackFileCacheStrategy] Skipped not serializable cache item 'Compilation/modules|/Users/lariciamota/faststore-3x-release/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[1]!/Users/lariciamota/faststore-3x-release/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[2]!/Users/lariciamota/faststore-3x-release/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js??ruleSet[1].rules[7].oneOf[9].use[3]!/Users/lariciamota/faststore-3x-release/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[7].oneOf[9].use[4]!/Users/lariciamota/faststore-3x-release/packages/core/src/components/common/Toast/section.module.scss': No serializer registered for Warning[39m[22m
|
|
64
|
+
<w> [1m[33mwhile serializing webpack/lib/cache/PackFileCacheStrategy.PackContentItems -> webpack/lib/NormalModule -> Array { 1 items } -> webpack/lib/ModuleWarning -> Warning[39m[22m
|
|
65
|
+
[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G[?25h [33m[1m⚠[22m[39m Compiled with warnings
|
|
66
|
+
|
|
67
|
+
[?25l [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G[?25h./src/components/common/Toast/section.module.scss.webpack[javascript/auto]!=!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[1]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[2]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js??ruleSet[1].rules[7].oneOf[9].use[3]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[7].oneOf[9].use[4]!./src/components/common/Toast/section.module.scss
|
|
68
|
+
Warning
|
|
69
|
+
|
|
70
|
+
(1:1634) autoprefixer: start value has mixed support, consider using flex-start instead
|
|
71
|
+
|
|
72
|
+
Import trace for requested module:
|
|
73
|
+
./src/components/common/Toast/section.module.scss.webpack[javascript/auto]!=!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[1]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[2]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js??ruleSet[1].rules[7].oneOf[9].use[3]!../../node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[7].oneOf[9].use[4]!./src/components/common/Toast/section.module.scss
|
|
74
|
+
./src/components/common/Toast/section.module.scss
|
|
75
|
+
./src/components/common/Toast/Toast.tsx
|
|
76
|
+
./src/components/common/Toast/index.ts
|
|
77
|
+
./src/components/cms/RenderSections.tsx
|
|
78
|
+
|
|
79
|
+
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/deflate.js
|
|
80
|
+
A Node.js API is used (CompressionStream at line: 10) which is not supported in the Edge Runtime.
|
|
81
|
+
Learn more: https://nextjs.org/docs/api-reference/edge-runtime
|
|
82
|
+
|
|
83
|
+
Import trace for requested module:
|
|
84
|
+
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/deflate.js
|
|
85
|
+
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js
|
|
86
|
+
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/index.js
|
|
87
|
+
./src/server/password-protection-service.ts
|
|
88
|
+
|
|
89
|
+
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/deflate.js
|
|
90
|
+
A Node.js API is used (DecompressionStream at line: 25) which is not supported in the Edge Runtime.
|
|
91
|
+
Learn more: https://nextjs.org/docs/api-reference/edge-runtime
|
|
92
|
+
|
|
93
|
+
Import trace for requested module:
|
|
94
|
+
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/lib/deflate.js
|
|
95
|
+
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js
|
|
96
|
+
../../node_modules/.pnpm/jose@6.2.3/node_modules/jose/dist/webapi/index.js
|
|
97
|
+
./src/server/password-protection-service.ts
|
|
98
|
+
[?25l [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G[?25h
|
|
99
|
+
[?25l [37m[1m [22m[39m Creating an optimized production build [36m.[39m[?25l [37m[1m [22m[39m Collecting page data [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Collecting page data [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Collecting page data [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Collecting page data [36m.[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Collecting page data [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Collecting page data [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G [37m[1m [22m[39m Collecting page data [36m.[39m[2K[1G[?25h [37m[1m [22m[39m Collecting page data
|
|
171
100
|
[32m[1m✓[22m[39m Collecting page data
|
|
101
|
+
[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[?25l [37m[1m [22m[39m Generating static pages (0/8) [36m[ ][39mWarning: 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.
|
|
102
|
+
[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Generating static pages (0/8) [36m[= ][39m
|
|
172
103
|
[37m[1m [22m[39m Generating static pages (2/8)
|
|
104
|
+
[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[2K[1G[1A[2K[1G [37m[1m [22m[39m Generating static pages (0/8) [36m[== ][39m
|
|
173
105
|
[37m[1m [22m[39m Generating static pages (2/8)
|
|
106
|
+
[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m.[39m[2K[1G[1A[2K[1G [37m[1m [22m[39m Generating static pages (0/8) [36m[=== ][39m
|
|
174
107
|
[37m[1m [22m[39m Generating static pages (2/8)
|
|
108
|
+
[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39mSearch not found. Add a new component for this section or remove it from the CMS
|
|
109
|
+
[2K[1G[1A[2K[1G [37m[1m [22m[39m Generating static pages (0/8) [36m[ ===][39m
|
|
175
110
|
[37m[1m [22m[39m Generating static pages (2/8)
|
|
111
|
+
Search not found. Add a new component for this section or remove it from the CMS
|
|
112
|
+
Search not found. Add a new component for this section or remove it from the CMS
|
|
113
|
+
Search not found. Add a new component for this section or remove it from the CMS
|
|
114
|
+
Search not found. Add a new component for this section or remove it from the CMS
|
|
115
|
+
Search not found. Add a new component for this section or remove it from the CMS
|
|
116
|
+
[2K[1G[1A[2K[1G[?25h[2K[1G[?25h
|
|
176
117
|
[32m[1m✓[22m[39m Generating static pages (8/8)
|
|
118
|
+
[?25l [37m[1m [22m[39m Creating an optimized production build [36m.[39m[?25l [37m[1m [22m[39m Finalizing page optimization [36m.[39m[?25l [37m[1m [22m[39m Collecting build traces [36m.[39m[2K[1G[?25h [37m[1m [22m[39m Collecting build traces
|
|
177
119
|
[32m[1m✓[22m[39m Collecting build traces
|
|
120
|
+
[2K[1G[?25h [37m[1m [22m[39m Finalizing page optimization
|
|
178
121
|
[32m[1m✓[22m[39m Finalizing page optimization
|
|
122
|
+
[2K[1G[?25h
|
|
123
|
+
[?25l [37m[1m [22m[39m Creating an optimized production build [36m.[39m[4mRoute (pages)[24m [4mSize[24m [4mFirst Load JS[24m
|
|
124
|
+
┌ ● / 7.38 kB [33m165 kB[39m
|
|
125
|
+
├ └ css/02259c549b2179f2.css 3.1 kB
|
|
126
|
+
├ /_app 0 B [32m109 kB[39m
|
|
127
|
+
├ ● /[...slug] 2.55 kB [31m[1m175 kB[22m[39m
|
|
128
|
+
├ ● /[slug]/p 97.3 kB [31m[1m255 kB[22m[39m
|
|
129
|
+
├ ├ css/1c4983f11b861ea0.css 6.34 kB
|
|
130
|
+
├ └ css/54cedf4b65e5863f.css 16.7 kB
|
|
131
|
+
├ ○ /404 1.58 kB [33m160 kB[39m
|
|
132
|
+
├ ● /500 1.58 kB [33m160 kB[39m
|
|
133
|
+
├ λ /api/fs/logout 0 B [32m109 kB[39m
|
|
134
|
+
├ λ /api/fs/password-protection/unlock 0 B [32m109 kB[39m
|
|
135
|
+
├ λ /api/graphql 0 B [32m109 kB[39m
|
|
136
|
+
├ λ /api/health/live 0 B [32m109 kB[39m
|
|
137
|
+
├ λ /api/health/ready 0 B [32m109 kB[39m
|
|
138
|
+
├ λ /api/preview 0 B [32m109 kB[39m
|
|
139
|
+
├ ● /checkout 750 B [33m159 kB[39m
|
|
140
|
+
├ ● /login 1.7 kB [33m160 kB[39m
|
|
141
|
+
├ ○ /password-protection 2.18 kB [32m111 kB[39m
|
|
142
|
+
├ └ css/033b9397a0c0cf71.css 3.2 kB
|
|
143
|
+
├ λ /pvt/account 247 B [32m109 kB[39m
|
|
144
|
+
├ ● /pvt/account/[...unknown] 287 B [32m109 kB[39m
|
|
145
|
+
├ λ /pvt/account/403 3 kB [33m161 kB[39m
|
|
146
|
+
├ └ css/6819dddf2b1b5ea7.css 4.84 kB
|
|
147
|
+
├ λ /pvt/account/404 2.18 kB [33m160 kB[39m
|
|
148
|
+
├ └ css/ea11d74a2848b093.css 4.89 kB
|
|
149
|
+
├ λ /pvt/account/orders 9.89 kB [33m168 kB[39m
|
|
150
|
+
├ └ css/14176a4704ff97b2.css 14.4 kB
|
|
151
|
+
├ λ /pvt/account/orders/[id] 13.6 kB [31m[1m172 kB[22m[39m
|
|
152
|
+
├ └ css/82f3cd529b672812.css 14 kB
|
|
153
|
+
├ λ /pvt/account/profile 1.99 kB [33m160 kB[39m
|
|
154
|
+
├ └ css/a852afa9be31e946.css 4.58 kB
|
|
155
|
+
├ λ /pvt/account/security 3.96 kB [33m162 kB[39m
|
|
156
|
+
├ └ css/24d91007fc96be10.css 6.71 kB
|
|
157
|
+
├ λ /pvt/account/user-details 1.91 kB [33m160 kB[39m
|
|
158
|
+
├ └ css/16d65422bfa80f51.css 4.7 kB
|
|
159
|
+
└ ● /s 3.35 kB [31m[1m176 kB[22m[39m
|
|
160
|
+
+ First Load JS shared by all [32m118 kB[39m
|
|
161
|
+
├ chunks/framework-d514426edf885c68.js 45.4 kB
|
|
162
|
+
├ chunks/main-a2d1cfe626f2fef1.js 33.4 kB
|
|
163
|
+
├ chunks/pages/_app-35e8dda638ee2672.js 26.6 kB
|
|
164
|
+
├ chunks/webpack-62bcb2a452e15476.js 3.9 kB
|
|
165
|
+
└ css/146a8678babc61bf.css 9.2 kB
|
|
166
|
+
|
|
167
|
+
ƒ Middleware [32m44.8 kB[39m
|
|
168
|
+
|
|
169
|
+
λ (Server) server-side renders at runtime (uses [36mgetInitialProps[39m or [36mgetServerSideProps[39m)
|
|
170
|
+
○ (Static) automatically rendered as static HTML (uses no initial props)
|
|
171
|
+
● (SSG) automatically generated as static HTML + JSON (uses [36mgetStaticProps[39m)
|
|
172
|
+
|
|
173
|
+
[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m..[39m[2K[1G [37m[1m [22m[39m Creating an optimized production build [36m...[39m[?25h
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,19 @@
|
|
|
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.100.9](https://github.com/vtex/faststore/compare/v3.100.8...v3.100.9) (2026-10-28)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @faststore/core
|
|
9
|
+
|
|
10
|
+
## [3.100.8](https://github.com/vtex/faststore/compare/v3.100.7...v3.100.8) (2026-10-27)
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- **core:** address review feedback on CMS cache (3.x) ([ef77b3f](https://github.com/vtex/faststore/commit/ef77b3fa73d2cd475fef6129a3d0a948b9b59cbc))
|
|
15
|
+
- **core:** cache Content Platform template list across page generations (3.x) ([6480dd5](https://github.com/vtex/faststore/commit/6480dd5850baaacd3e9cc698be4690795b63ab7a)), closes [#3526](https://github.com/vtex/faststore/issues/3526)
|
|
16
|
+
- **core:** cache global and single CMS content across page generations (3.x) ([01d1b3a](https://github.com/vtex/faststore/commit/01d1b3a6ab6df30676f38275399ba6e5d3e0213b))
|
|
17
|
+
- **core:** do not cache empty required CMS content (3.x) ([df849cb](https://github.com/vtex/faststore/commit/df849cb3b967b305fa67b2cc7b3f7fdafabcba99))
|
|
18
|
+
|
|
6
19
|
## [3.100.7](https://github.com/vtex/faststore/compare/v3.100.6...v3.100.7) (2026-10-26)
|
|
7
20
|
|
|
8
21
|
### Bug Fixes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/core",
|
|
3
|
-
"version": "3.100.
|
|
3
|
+
"version": "3.100.9",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"@envelop/graphql-jit": "^8.0.3",
|
|
52
52
|
"@envelop/parser-cache": "^6.0.2",
|
|
53
53
|
"@envelop/validation-cache": "^6.0.2",
|
|
54
|
-
"@faststore/api": "3.
|
|
54
|
+
"@faststore/api": "3.100.9",
|
|
55
55
|
"@faststore/graphql-utils": "^3.99.4",
|
|
56
56
|
"@faststore/lighthouse": "3.99.4",
|
|
57
57
|
"@faststore/sdk": "3.99.4",
|
|
@@ -127,5 +127,5 @@
|
|
|
127
127
|
"ts-jest": "29.1.1",
|
|
128
128
|
"typescript": "5.3.2"
|
|
129
129
|
},
|
|
130
|
-
"gitHead": "
|
|
130
|
+
"gitHead": "16138db7514af037b35b6919fa9710c4db770bd0"
|
|
131
131
|
}
|
package/src/server/cms/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { ContentData, ContentTypeOptions, Locator } from '@vtex/client-cms'
|
|
|
2
2
|
import ClientCMS from '@vtex/client-cms'
|
|
3
3
|
|
|
4
4
|
import MultipleContentError from 'src/sdk/error/MultipleContentError'
|
|
5
|
+
import { createPromiseCache } from 'src/server/content/promiseCache'
|
|
5
6
|
import { sanitizeHost } from 'src/utils/utilities'
|
|
6
7
|
import config from '../../../discovery.config'
|
|
7
8
|
|
|
@@ -71,16 +72,64 @@ export const clientCMS = new ClientCMS({
|
|
|
71
72
|
host: sanitizeHost(config.storeUrl),
|
|
72
73
|
})
|
|
73
74
|
|
|
75
|
+
type CMSPageResult = { data: ContentData[] }
|
|
76
|
+
|
|
77
|
+
export const cmsPageCache = createPromiseCache<CMSPageResult>()
|
|
78
|
+
|
|
79
|
+
type GetCMSPageOptions = {
|
|
80
|
+
/**
|
|
81
|
+
* Reuse a document fetched by locator. Only safe when the locator does not
|
|
82
|
+
* come from a preview, since preview versions change between requests.
|
|
83
|
+
*/
|
|
84
|
+
cache?: boolean
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Listings by content type never carry preview data (previews always resolve
|
|
89
|
+
* to a locator), so they are shared across pages. Filtered listings depend on
|
|
90
|
+
* the page (e.g. landing page slug) and stay uncached.
|
|
91
|
+
*/
|
|
74
92
|
export const getCMSPage = async (
|
|
75
93
|
options: Options,
|
|
76
|
-
cmsClient: ClientCMS = clientCMS
|
|
77
|
-
|
|
94
|
+
cmsClient: ClientCMS = clientCMS,
|
|
95
|
+
{ cache = false }: GetCMSPageOptions = {}
|
|
96
|
+
): Promise<CMSPageResult> => {
|
|
97
|
+
const shareable = cmsClient === clientCMS
|
|
98
|
+
|
|
78
99
|
if (isLocator(options)) {
|
|
79
|
-
|
|
80
|
-
.getCMSPage(options)
|
|
81
|
-
|
|
100
|
+
const fetchByLocator = () =>
|
|
101
|
+
cmsClient.getCMSPage(options).then((page) => ({ data: [page] }))
|
|
102
|
+
|
|
103
|
+
if (!cache || !shareable) {
|
|
104
|
+
return fetchByLocator()
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const { contentType, documentId, versionId, releaseId } = options
|
|
108
|
+
return cmsPageCache.get(
|
|
109
|
+
JSON.stringify([
|
|
110
|
+
'locator',
|
|
111
|
+
contentType,
|
|
112
|
+
documentId,
|
|
113
|
+
versionId,
|
|
114
|
+
releaseId,
|
|
115
|
+
]),
|
|
116
|
+
fetchByLocator
|
|
117
|
+
)
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (options.filters || !shareable) {
|
|
121
|
+
return listCMSPages(options, cmsClient)
|
|
82
122
|
}
|
|
83
123
|
|
|
124
|
+
return cmsPageCache.get(JSON.stringify(['list', options.contentType]), () =>
|
|
125
|
+
listCMSPages(options, cmsClient)
|
|
126
|
+
)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const listCMSPages = async (
|
|
130
|
+
options: Exclude<Options, Locator>,
|
|
131
|
+
cmsClient: ClientCMS
|
|
132
|
+
): Promise<CMSPageResult> => {
|
|
84
133
|
const pages = []
|
|
85
134
|
const page = 1
|
|
86
135
|
const perPage = 10
|
|
@@ -116,8 +165,11 @@ export const getCMSPage = async (
|
|
|
116
165
|
return { data: pages }
|
|
117
166
|
}
|
|
118
167
|
|
|
119
|
-
export const getPage = async <T extends ContentData>(
|
|
120
|
-
|
|
168
|
+
export const getPage = async <T extends ContentData>(
|
|
169
|
+
options: Options,
|
|
170
|
+
getOptions?: GetCMSPageOptions
|
|
171
|
+
) => {
|
|
172
|
+
const result = await getCMSPage(options, clientCMS, getOptions)
|
|
121
173
|
|
|
122
174
|
const pages = result.data
|
|
123
175
|
|
package/src/server/cms/pdp.ts
CHANGED
|
@@ -57,11 +57,16 @@ const getPDPFromCmsEnvData = async (
|
|
|
57
57
|
|
|
58
58
|
const template = findBestPDPTemplate(pages, product)
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
// The template locator comes from the build-time CMS data, never from a
|
|
61
|
+
// preview, so the fetched document can be shared across page generations.
|
|
62
|
+
return getPage<PDPContentType>(
|
|
63
|
+
{
|
|
64
|
+
contentType: 'pdp',
|
|
65
|
+
documentId: template.documentId as string,
|
|
66
|
+
versionId: template.versionId,
|
|
67
|
+
},
|
|
68
|
+
{ cache: true }
|
|
69
|
+
)
|
|
65
70
|
}
|
|
66
71
|
|
|
67
72
|
const getPDPFromCms = async (
|
package/src/server/cms/plp.ts
CHANGED
|
@@ -71,11 +71,16 @@ const getPLPFromCmsEnvData = async (
|
|
|
71
71
|
|
|
72
72
|
const template = findBestPLPTemplate(pages, slug, rewrites)
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
// The template locator comes from the build-time CMS data, never from a
|
|
75
|
+
// preview, so the fetched document can be shared across page generations.
|
|
76
|
+
return getPage<PLPContentType>(
|
|
77
|
+
{
|
|
78
|
+
contentType: 'plp',
|
|
79
|
+
documentId: template.documentId as string,
|
|
80
|
+
versionId: template.versionId,
|
|
81
|
+
},
|
|
82
|
+
{ cache: true }
|
|
83
|
+
)
|
|
79
84
|
}
|
|
80
85
|
|
|
81
86
|
export const getPLPFromCms = async (
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// Bounds how stale shared CMS content can get in long-lived processes (ISR);
|
|
2
|
+
// a CMS publish already triggers a new build.
|
|
3
|
+
export const CONTENT_CACHE_TTL_MS = 5 * 60 * 1000
|
|
4
|
+
|
|
5
|
+
type PromiseCacheEntry<T> = {
|
|
6
|
+
expiresAt: number
|
|
7
|
+
promise: Promise<T>
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Per-process memoization of async loaders. Concurrent callers share the
|
|
12
|
+
* in-flight promise, entries expire after `ttlMs`, and rejections are evicted
|
|
13
|
+
* so the next caller retries. When `shouldCache` rejects a resolved value, the
|
|
14
|
+
* entry is evicted too, so only the callers already waiting share that value.
|
|
15
|
+
* Expired entries are also dropped whenever a new one is stored, so keys that
|
|
16
|
+
* are never requested again (e.g. superseded document versions) do not pile up
|
|
17
|
+
* for the lifetime of the process.
|
|
18
|
+
*/
|
|
19
|
+
export function createPromiseCache<T>(ttlMs = CONTENT_CACHE_TTL_MS) {
|
|
20
|
+
const entries = new Map<string, PromiseCacheEntry<T>>()
|
|
21
|
+
|
|
22
|
+
return {
|
|
23
|
+
get(
|
|
24
|
+
key: string,
|
|
25
|
+
load: () => Promise<T>,
|
|
26
|
+
shouldCache: (value: T) => boolean = () => true
|
|
27
|
+
): Promise<T> {
|
|
28
|
+
const cached = entries.get(key)
|
|
29
|
+
if (cached && cached.expiresAt > Date.now()) {
|
|
30
|
+
return cached.promise
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const evict = () => {
|
|
34
|
+
if (entries.get(key)?.promise === promise) {
|
|
35
|
+
entries.delete(key)
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const now = Date.now()
|
|
40
|
+
entries.forEach((entry, entryKey) => {
|
|
41
|
+
if (entry.expiresAt <= now) entries.delete(entryKey)
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
const promise = load().then(
|
|
45
|
+
(value) => {
|
|
46
|
+
if (!shouldCache(value)) evict()
|
|
47
|
+
return value
|
|
48
|
+
},
|
|
49
|
+
(err: unknown) => {
|
|
50
|
+
evict()
|
|
51
|
+
throw err
|
|
52
|
+
}
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
entries.set(key, { expiresAt: now + ttlMs, promise })
|
|
56
|
+
|
|
57
|
+
return promise
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
clear() {
|
|
61
|
+
entries.clear()
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
get size() {
|
|
65
|
+
return entries.size
|
|
66
|
+
},
|
|
67
|
+
}
|
|
68
|
+
}
|