@faststore/core 4.5.1 → 4.6.0-dev.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/.turbo/turbo-generate.log +3 -3
- package/.turbo/turbo-test.log +130 -90
- package/CHANGELOG.md +19 -17
- package/README.md +1 -1
- package/cypress/integration/seo.test.js +35 -5
- package/discovery.config.default.js +1 -2
- package/next-seo.config.ts +3 -0
- package/next.config.js +21 -5
- package/package.json +8 -8
- package/src/components/product/ProductGrid/ProductGrid.tsx +0 -1
- package/src/components/skeletons/ProductGridSkeleton/ProductGridSkeleton.tsx +1 -4
- package/src/components/templates/SearchPage/SearchWrapper.tsx +5 -15
- package/src/components/ui/ProductGallery/ProductGallery.tsx +24 -69
- package/src/instrumentation.ts +15 -7
- package/src/pages/api/graphql.ts +37 -11
- package/src/sdk/ui/useScrollRestoration.tsx +32 -616
- package/src/server/index.ts +38 -10
- package/src/server/options.ts +3 -22
- package/src/styles/global/index.scss +0 -12
- package/test/instrumentation.test.ts +27 -0
- package/test/pages/api/graphql.test.ts +40 -2
- package/test/server/rootSpan.test.ts +90 -0
- package/src/components/ui/ProductGallery/GalleryPageHeightLock.tsx +0 -238
- package/test/components/skeletons/ProductGridSkeleton.browser.test.tsx +0 -32
- package/test/components/templates/SearchPage/SearchWrapper.browser.test.tsx +0 -137
- package/test/components/ui/ProductGallery/GalleryPageHeightLock.browser.test.tsx +0 -230
- package/test/sdk/ui/useScrollRestoration.browser.test.ts +0 -798
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
> @faststore/core@4.5.1-dev.
|
|
2
|
+
> @faststore/core@4.5.1-dev.4 generate /home/runner/work/faststore/faststore/packages/core
|
|
3
3
|
> pnpm run gen-types && pnpm run cache-graphql
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @faststore/core@4.5.1-dev.
|
|
6
|
+
> @faststore/core@4.5.1-dev.4 gen-types /home/runner/work/faststore/faststore/packages/core
|
|
7
7
|
> node ../cli/bin/run generate-types .
|
|
8
8
|
|
|
9
9
|
[33m[STARTED][39m Parse Configuration
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
[32m[COMPLETED][39m Generate to /home/runner/work/faststore/faststore/packages/core/@generated/
|
|
20
20
|
[32m[COMPLETED][39m Generate outputs
|
|
21
21
|
|
|
22
|
-
> @faststore/core@4.5.1-dev.
|
|
22
|
+
> @faststore/core@4.5.1-dev.4 cache-graphql /home/runner/work/faststore/faststore/packages/core
|
|
23
23
|
> node ../cli/bin/run cache-graphql --config=./discovery.config.default.js --queries=./@generated/persisted-documents.json
|
|
24
24
|
|
|
25
25
|
[Info] - Config file location: /home/runner/work/faststore/faststore/packages/core/discovery.config.default.js
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
|
|
2
|
-
> @faststore/core@4.5.1-dev.
|
|
2
|
+
> @faststore/core@4.5.1-dev.4 test /home/runner/work/faststore/faststore/packages/core
|
|
3
3
|
> vitest run
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
[1m[46m RUN [49m[22m [36mv4.0.
|
|
6
|
+
[1m[46m RUN [49m[22m [36mv4.0.18 [39m[90m/home/runner/work/faststore/faststore/packages/core[39m
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
Not implemented: navigation to another Document
|
|
8
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/session/reconcileSessionLocale.browser.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 36[2mms[22m[39m
|
|
10
9
|
[90mstderr[2m | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx
|
|
11
10
|
[22m[39mError in optimistic validation: TypeError: Failed to parse URL from /api/graphql?operationName=ValidateCartMutation&operationHash=8199d03debb0a6751ec53d8ee8987b78d0292acb
|
|
12
11
|
[90m at node:internal/deps/undici/undici:16416:13[39m
|
|
@@ -19,7 +18,7 @@ Not implemented: navigation to another Document
|
|
|
19
18
|
at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:17) {
|
|
20
19
|
[cause]: TypeError: Invalid URL
|
|
21
20
|
[90m at new URL (node:internal/url:828:25)[39m
|
|
22
|
-
at new URL$1 (file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/vitest@4.0.
|
|
21
|
+
at new URL$1 (file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/vitest@4.0.18_@opentelemetry+api@1.9.0_@types+node@20.19.13_jiti@2.6.1_jsdom@27.4.0_sas_13be941c57d55f08f06eeaf1c180ddfe/node_modules/[4mvitest[24m/dist/chunks/index.CyBMJtT7.js:556:9)
|
|
23
22
|
[90m at new Request (node:internal/deps/undici/undici:10971:25)[39m
|
|
24
23
|
[90m at fetch (node:internal/deps/undici/undici:11891:25)[39m
|
|
25
24
|
[90m at fetch (node:internal/deps/undici/undici:16414:10)[39m
|
|
@@ -36,16 +35,12 @@ Not implemented: navigation to another Document
|
|
|
36
35
|
Browserslist: browsers data (caniuse-lite) is 6 months old. Please run:
|
|
37
36
|
npx update-browserslist-db@latest
|
|
38
37
|
Why you should do it regularly: https://github.com/browserslist/update-db#readme
|
|
39
|
-
[32m✓[39m [30m[46m browser [49m[39m test/sdk/ui/useScrollRestoration.browser.test.ts [2m([22m[2m43 tests[22m[2m)[22m[33m 1024[2mms[22m[39m
|
|
40
38
|
[90mstderr[2m | test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx[2m > [22m[2mRecommendationShelf[2m > [22m[2mrenders nothing when there is an error
|
|
41
39
|
[22m[39mError fetching recommendations [90mundefined[39m boom for campaign vrn:recommendations:acc:rec-top-items-v2:campaign-1
|
|
42
40
|
|
|
43
|
-
[32m✓[39m [30m[46m browser [49m[39m test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx [2m([22m[2m8 tests[22m[2m)[22m[32m
|
|
44
|
-
[32m✓[39m [30m[46m browser [49m[39m test/components/account/ContractSwitcher.browser.test.tsx [2m([22m[2m13 tests[22m[2m)[22m[33m
|
|
45
|
-
[33m[2m✓[22m[39m shows an error state when the list fails to load [33m
|
|
46
|
-
[33m[2m✓[22m[39m requires selecting a contract before Confirm is enabled, then switches (REQ-03) [33m 334[2mms[22m[39m
|
|
47
|
-
[32m✓[39m [30m[46m browser [49m[39m test/components/ui/ProductGallery/GalleryPageHeightLock.browser.test.tsx [2m([22m[2m8 tests[22m[2m)[22m[32m 148[2mms[22m[39m
|
|
48
|
-
[32m✓[39m [30m[46m browser [49m[39m test/sdk/session/reconcileSessionLocale.browser.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 32[2mms[22m[39m
|
|
41
|
+
[32m✓[39m [30m[46m browser [49m[39m test/components/RecommendationShelf/RecommendationShelf.browser.test.tsx [2m([22m[2m8 tests[22m[2m)[22m[32m 283[2mms[22m[39m
|
|
42
|
+
[32m✓[39m [30m[46m browser [49m[39m test/components/account/ContractSwitcher.browser.test.tsx [2m([22m[2m13 tests[22m[2m)[22m[33m 2139[2mms[22m[39m
|
|
43
|
+
[33m[2m✓[22m[39m shows an error state when the list fails to load [33m 585[2mms[22m[39m
|
|
49
44
|
[90mstderr[2m | test/pages/password-protection.browser.test.tsx[2m > [22m[2mPasswordProtectionLogin[2m > [22m[2mposts the password and redirects to the requested return path
|
|
50
45
|
[22m[39mWarning: An update to PasswordProtectionLogin inside a test was not wrapped in act(...).
|
|
51
46
|
|
|
@@ -275,13 +270,12 @@ act(() => {
|
|
|
275
270
|
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act
|
|
276
271
|
at PasswordProtectionLogin (/home/runner/work/faststore/faststore/packages/core/src/pages/password-protection/index.tsx:19:69)
|
|
277
272
|
|
|
278
|
-
[32m✓[39m [30m[46m browser [49m[39m test/pages/password-protection.browser.test.tsx [2m([22m[2m6 tests[22m[2m)[22m[33m
|
|
279
|
-
[33m[2m✓[22m[39m renders the password protection form [33m
|
|
280
|
-
[32m✓[39m [30m[46m browser [49m[39m test/sdk/session/getInitialSession.browser.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m
|
|
281
|
-
[32m✓[39m [30m[46m browser [49m[39m test/
|
|
282
|
-
|
|
283
|
-
[33m[2m✓[22m[39m
|
|
284
|
-
[32m✓[39m [30m[46m browser [49m[39m test/sdk/account/changeContractToken.browser.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 55[2mms[22m[39m
|
|
273
|
+
[32m✓[39m [30m[46m browser [49m[39m test/pages/password-protection.browser.test.tsx [2m([22m[2m6 tests[22m[2m)[22m[33m 1851[2mms[22m[39m
|
|
274
|
+
[33m[2m✓[22m[39m renders the password protection form [33m 789[2mms[22m[39m
|
|
275
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/session/getInitialSession.browser.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 29[2mms[22m[39m
|
|
276
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/account/changeContractToken.browser.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 80[2mms[22m[39m
|
|
277
|
+
[32m✓[39m [30m[46m browser [49m[39m test/components/account/OrganizationDrawer.browser.test.tsx [2m([22m[2m5 tests[22m[2m)[22m[33m 1109[2mms[22m[39m
|
|
278
|
+
[33m[2m✓[22m[39m renders the menu view with contract details and manage footer [33m 577[2mms[22m[39m
|
|
285
279
|
[90mstderr[2m | test/sdk/localization/store-url.browser.test.ts
|
|
286
280
|
[22m[39mError in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
|
|
287
281
|
at validateCart [90m(/home/runner/work/faststore/faststore/packages/core/[39msrc/sdk/cart/index.ts:121:27[90m)[39m
|
|
@@ -289,10 +283,9 @@ This ensures that you're testing the behavior the user would see in the browser.
|
|
|
289
283
|
at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
|
|
290
284
|
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
291
285
|
|
|
292
|
-
[32m✓[39m [30m[46m browser [49m[39m test/sdk/localization/store-url.browser.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m
|
|
293
|
-
[32m✓[39m [30m[46m browser [49m[39m test/sdk/account/
|
|
294
|
-
[32m✓[39m [30m[46m browser [49m[39m test/
|
|
295
|
-
[32m✓[39m [30m[46m browser [49m[39m test/sdk/account/useSwitchContract.browser.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 39[2mms[22m[39m
|
|
286
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/localization/store-url.browser.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 17[2mms[22m[39m
|
|
287
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/account/useSwitchContract.browser.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 119[2mms[22m[39m
|
|
288
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/account/useAvailableContracts.browser.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 74[2mms[22m[39m
|
|
296
289
|
[90mstderr[2m | test/components/account/doLogout.browser.test.ts
|
|
297
290
|
[22m[39mError in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
|
|
298
291
|
at validateCart [90m(/home/runner/work/faststore/faststore/packages/core/[39msrc/sdk/cart/index.ts:121:27[90m)[39m
|
|
@@ -300,8 +293,9 @@ This ensures that you're testing the behavior the user would see in the browser.
|
|
|
300
293
|
at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
|
|
301
294
|
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
302
295
|
|
|
303
|
-
[32m✓[39m [30m[46m browser [49m[39m test/components/account/doLogout.browser.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m
|
|
304
|
-
[32m✓[39m [30m[46m browser [49m[39m test/components/account/OrganizationDrawerHeader.browser.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m
|
|
296
|
+
[32m✓[39m [30m[46m browser [49m[39m test/components/account/doLogout.browser.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 31[2mms[22m[39m
|
|
297
|
+
[32m✓[39m [30m[46m browser [49m[39m test/components/account/OrganizationDrawerHeader.browser.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 251[2mms[22m[39m
|
|
298
|
+
[32m✓[39m [30m[46m browser [49m[39m test/components/account/OrganizationDrawerFooter.browser.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[33m 306[2mms[22m[39m
|
|
305
299
|
[90mstderr[2m | test/sdk/account/clearPersistedSessionState.browser.test.ts
|
|
306
300
|
[22m[39mError in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
|
|
307
301
|
at validateCart [90m(/home/runner/work/faststore/faststore/packages/core/[39msrc/sdk/cart/index.ts:121:27[90m)[39m
|
|
@@ -309,13 +303,12 @@ This ensures that you're testing the behavior the user would see in the browser.
|
|
|
309
303
|
at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
|
|
310
304
|
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
311
305
|
|
|
312
|
-
[32m✓[39m [30m[46m browser [49m[39m test/
|
|
313
|
-
[32m✓[39m [30m[46m browser [49m[39m test/
|
|
314
|
-
[32m✓[39m [30m[46m browser [49m[39m test/
|
|
315
|
-
[32m✓[39m [30m[46m browser [49m[39m test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 2[2mms[22m[39m
|
|
306
|
+
[32m✓[39m [30m[46m browser [49m[39m test/utils/isLocalHost.browser.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
307
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/account/clearPersistedSessionState.browser.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
308
|
+
[32m✓[39m [30m[46m browser [49m[39m test/sdk/session/reconcileSessionLocale.disabled.browser.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
316
309
|
[32m✓[39m [30m[43m node [49m[39m test/utils/localization/bindingPaths.test.ts [2m([22m[2m71 tests[22m[2m)[22m[32m 27[2mms[22m[39m
|
|
317
|
-
[32m✓[39m [30m[
|
|
318
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
310
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/password-protection-service.test.ts [2m([22m[2m22 tests[22m[2m)[22m[32m 35[2mms[22m[39m
|
|
311
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/match-url.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
319
312
|
[90mstderr[2m | test/sdk/account/refreshToken.browser.test.ts
|
|
320
313
|
[22m[39mError in optimistic validation: TypeError: Cannot read properties of undefined (reading 'read')
|
|
321
314
|
at validateCart [90m(/home/runner/work/faststore/faststore/packages/core/[39msrc/sdk/cart/index.ts:121:27[90m)[39m
|
|
@@ -323,11 +316,10 @@ This ensures that you're testing the behavior the user would see in the browser.
|
|
|
323
316
|
at a (/home/runner/work/faststore/faststore/packages/sdk/dist/es/index.mjs:354:23)
|
|
324
317
|
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
325
318
|
|
|
326
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
319
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/localization/useBindingSelector.test.tsx [2m([22m[2m22 tests[22m[2m)[22m[32m 13[2mms[22m[39m
|
|
327
320
|
[32m✓[39m [30m[46m browser [49m[39m test/sdk/account/refreshToken.browser.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
328
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/localization/
|
|
329
|
-
[32m✓[39m [30m[43m node [49m[39m test/pages/api/unlock.test.ts [2m([22m[2m15 tests[22m[2m)[22m[32m
|
|
330
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/localization/bindingSelector.test.ts [2m([22m[2m18 tests[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
321
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/localization/bindingSelector.test.ts [2m([22m[2m18 tests[22m[2m)[22m[32m 10[2mms[22m[39m
|
|
322
|
+
[32m✓[39m [30m[43m node [49m[39m test/pages/api/unlock.test.ts [2m([22m[2m15 tests[22m[2m)[22m[32m 147[2mms[22m[39m
|
|
331
323
|
[90mstderr[2m | test/components/search/SearchInputComponent.test.tsx
|
|
332
324
|
[22m[39mWarning: forwardRef render functions accept exactly two parameters: props and ref. Did you forget to use the ref parameter?
|
|
333
325
|
|
|
@@ -391,24 +383,12 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
|
|
|
391
383
|
at Suspense
|
|
392
384
|
at Wrapper (/home/runner/work/faststore/faststore/packages/core/test/components/search/SearchInputComponent.test.tsx:106:20)
|
|
393
385
|
|
|
394
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/search/SearchInputComponent.test.tsx [2m([22m[2m6 tests[22m[2m)[22m[32m
|
|
395
|
-
[32m✓[39m [30m[43m node [49m[39m test/utils/cookieCacheBusting.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m
|
|
396
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/search/useSearchHistory.test.ts [2m([22m[2m13 tests[22m[2m)[22m[32m
|
|
397
|
-
[32m✓[39m [30m[43m node [49m[39m test/experimental/myAccountCmsServerSideProps.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m
|
|
398
|
-
[32m✓[39m [30m[43m node [49m[39m test/utils/clearCookies.test.ts [2m([22m[2m20 tests[22m[2m)[22m[32m
|
|
399
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountListQuotesTable.test.tsx [2m([22m[2m12 tests[22m[2m)[22m[33m
|
|
400
|
-
[90mstderr[2m | test/sdk/account/useSetPassword.test.ts[2m > [22m[2museSetPassword[2m > [22m[2mmaps wrongcredentials error responses to the existing message
|
|
401
|
-
[22m[39mSet password request failed: Bad Request
|
|
402
|
-
|
|
403
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/account/useSetPassword.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 34[2mms[22m[39m
|
|
404
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/quoteFilters.test.ts [2m([22m[2m23 tests[22m[2m)[22m[32m 24[2mms[22m[39m
|
|
405
|
-
[32m✓[39m [30m[43m node [49m[39m test/utils/multipleTemplates.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
406
|
-
[32m✓[39m [30m[43m node [49m[39m test/utils/localization/localizeRedirectDestination.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
407
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountListQuotes.test.tsx [2m([22m[2m9 tests[22m[2m)[22m[33m 804[2mms[22m[39m
|
|
408
|
-
[33m[2m✓[22m[39m navigates with the search term on blur [33m 359[2mms[22m[39m
|
|
409
|
-
[33m[2m✓[22m[39m navigates without a label param when the search is cleared [33m 358[2mms[22m[39m
|
|
410
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/orderEntry/useOrderEntryOperation.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 42[2mms[22m[39m
|
|
411
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/orderEntry/useOrderEntryUpload.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 56[2mms[22m[39m
|
|
386
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/search/SearchInputComponent.test.tsx [2m([22m[2m6 tests[22m[2m)[22m[32m 84[2mms[22m[39m
|
|
387
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/cookieCacheBusting.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
388
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/search/useSearchHistory.test.ts [2m([22m[2m13 tests[22m[2m)[22m[32m 54[2mms[22m[39m
|
|
389
|
+
[32m✓[39m [30m[43m node [49m[39m test/experimental/myAccountCmsServerSideProps.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 10[2mms[22m[39m
|
|
390
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/clearCookies.test.ts [2m([22m[2m20 tests[22m[2m)[22m[32m 29[2mms[22m[39m
|
|
391
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountListQuotesTable.test.tsx [2m([22m[2m12 tests[22m[2m)[22m[33m 386[2mms[22m[39m
|
|
412
392
|
[90mstderr[2m | test/pages/api/graphql.test.ts[2m > [22m[2m/api/graphql error status propagation[2m > [22m[2mpropagates the upstream 400 from a wrapped BadRequestError instead of 500
|
|
413
393
|
[22m[39mGraphql execution returned with error: [
|
|
414
394
|
{
|
|
@@ -455,47 +435,107 @@ Warning: React does not recognize the `providerProps` prop on a DOM element. If
|
|
|
455
435
|
{ message: [32m'bad'[39m, status: [33m400[39m, type: [32m'BadRequestError'[39m }
|
|
456
436
|
]
|
|
457
437
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
[
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
438
|
+
[90mstderr[2m | test/pages/api/graphql.test.ts[2m > [22m[2m/api/graphql request handling[2m > [22m[2mmaps BadRequestError thrown by execute to its status
|
|
439
|
+
[22m[39mSomething unexpected occurred querying Graphql endpoint:
|
|
440
|
+
_ [FastStoreError]: malformed
|
|
441
|
+
at [90m/home/runner/work/faststore/faststore/packages/core/[39mtest/pages/api/graphql.test.ts:190:31
|
|
442
|
+
at [90m/home/runner/work/faststore/faststore/packages/core/[39mtest/pages/api/graphql.test.ts:196:39
|
|
443
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1024:60
|
|
444
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:145:11
|
|
445
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:915:26
|
|
446
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1243:20
|
|
447
|
+
at new Promise (<anonymous>)
|
|
448
|
+
at runWithTimeout (file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1209:10)
|
|
449
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1653:37
|
|
450
|
+
at Traces.$ (file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/vitest@4.0.18_@opentelemetry+api@1.9.0_@types+node@20.19.13_jiti@2.6.1_jsdom@27.4.0_sas_13be941c57d55f08f06eeaf1c180ddfe/node_modules/[4mvitest[24m/dist/chunks/traces.CCmnQaNT.js:142:27) {
|
|
451
|
+
extensions: { status: [33m400[39m, type: [32m'BadRequestError'[39m }
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
[90mstderr[2m | test/pages/api/graphql.test.ts[2m > [22m[2m/api/graphql request handling[2m > [22m[2mmaps UnauthorizedError thrown by execute to its status
|
|
455
|
+
[22m[39mSomething unexpected occurred querying Graphql endpoint:
|
|
456
|
+
te [FastStoreError]: expired
|
|
457
|
+
at [90m/home/runner/work/faststore/faststore/packages/core/[39mtest/pages/api/graphql.test.ts:191:33
|
|
458
|
+
at [90m/home/runner/work/faststore/faststore/packages/core/[39mtest/pages/api/graphql.test.ts:196:39
|
|
459
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1024:60
|
|
460
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:145:11
|
|
461
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:915:26
|
|
462
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1243:20
|
|
463
|
+
at new Promise (<anonymous>)
|
|
464
|
+
at runWithTimeout (file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1209:10)
|
|
465
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1653:37
|
|
466
|
+
at Traces.$ (file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/vitest@4.0.18_@opentelemetry+api@1.9.0_@types+node@20.19.13_jiti@2.6.1_jsdom@27.4.0_sas_13be941c57d55f08f06eeaf1c180ddfe/node_modules/[4mvitest[24m/dist/chunks/traces.CCmnQaNT.js:142:27) {
|
|
467
|
+
extensions: { status: [33m401[39m, type: [32m'UnauthorizedError'[39m }
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
[90mstderr[2m | test/pages/api/graphql.test.ts[2m > [22m[2m/api/graphql request handling[2m > [22m[2mmaps an unexpected failure thrown by execute to its status
|
|
471
|
+
[22m[39mSomething unexpected occurred querying Graphql endpoint:
|
|
472
|
+
Error: socket hang up
|
|
473
|
+
at [90m/home/runner/work/faststore/faststore/packages/core/[39mtest/pages/api/graphql.test.ts:192:37
|
|
474
|
+
at [90m/home/runner/work/faststore/faststore/packages/core/[39mtest/pages/api/graphql.test.ts:196:39
|
|
475
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1024:60
|
|
476
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:145:11
|
|
477
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:915:26
|
|
478
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1243:20
|
|
479
|
+
at new Promise (<anonymous>)
|
|
480
|
+
at runWithTimeout (file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1209:10)
|
|
481
|
+
at file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.18/node_modules/[4m@vitest/runner[24m/dist/index.js:1653:37
|
|
482
|
+
at Traces.$ (file:///home/runner/work/faststore/faststore/node_modules/[4m.pnpm[24m/vitest@4.0.18_@opentelemetry+api@1.9.0_@types+node@20.19.13_jiti@2.6.1_jsdom@27.4.0_sas_13be941c57d55f08f06eeaf1c180ddfe/node_modules/[4mvitest[24m/dist/chunks/traces.CCmnQaNT.js:142:27)
|
|
483
|
+
|
|
484
|
+
[32m✓[39m [30m[43m node [49m[39m test/pages/api/graphql.test.ts [2m([22m[2m17 tests[22m[2m)[22m[32m 20[2mms[22m[39m
|
|
485
|
+
[90mstderr[2m | test/sdk/account/useSetPassword.test.ts[2m > [22m[2museSetPassword[2m > [22m[2mmaps wrongcredentials error responses to the existing message
|
|
486
|
+
[22m[39mSet password request failed: Bad Request
|
|
487
|
+
|
|
488
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/account/useSetPassword.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 29[2mms[22m[39m
|
|
489
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountListQuotes.test.tsx [2m([22m[2m9 tests[22m[2m)[22m[33m 842[2mms[22m[39m
|
|
490
|
+
[33m[2m✓[22m[39m navigates with the search term on blur [33m 362[2mms[22m[39m
|
|
491
|
+
[33m[2m✓[22m[39m navigates without a label param when the search is cleared [33m 364[2mms[22m[39m
|
|
492
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/quoteFilters.test.ts [2m([22m[2m23 tests[22m[2m)[22m[32m 35[2mms[22m[39m
|
|
493
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/multipleTemplates.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
494
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/orderEntry/useOrderEntryOperation.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 30[2mms[22m[39m
|
|
495
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/localization/localizeRedirectDestination.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
496
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/orderEntry/useOrderEntryUpload.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 71[2mms[22m[39m
|
|
497
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountQuotesFilterSlider.test.tsx [2m([22m[2m5 tests[22m[2m)[22m[32m 125[2mms[22m[39m
|
|
498
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/analytics/useStartRecommendationSession.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 45[2mms[22m[39m
|
|
499
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/orderEntry/useOrderEntry.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 40[2mms[22m[39m
|
|
500
|
+
[32m✓[39m [30m[43m node [49m[39m test/proxy.localization.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 45[2mms[22m[39m
|
|
501
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/index.test.ts [2m([22m[2m7 tests[22m[2m)[22m[33m 830[2mms[22m[39m
|
|
502
|
+
[33m[2m✓[22m[39m should handle options and execute [33m 313[2mms[22m[39m
|
|
503
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/account/getMyAccountRoutes.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
504
|
+
[32m✓[39m [30m[43m node [49m[39m test/proxy.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 14[2mms[22m[39m
|
|
505
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/webops-api.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 15[2mms[22m[39m
|
|
506
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/orderEntry/useOrderFormItems.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 46[2mms[22m[39m
|
|
507
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/content/service.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
508
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountQuotesSelectedTags.test.tsx [2m([22m[2m8 tests[22m[2m)[22m[32m 103[2mms[22m[39m
|
|
509
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/account/refreshToken.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
471
510
|
[32m✓[39m [30m[43m node [49m[39m test/server/cms/global.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
472
|
-
[32m✓[39m [30m[43m node [49m[39m test/server/content/service.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
473
511
|
[32m✓[39m [30m[43m node [49m[39m test/sdk/localization/store-url.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
474
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/
|
|
475
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
476
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/
|
|
477
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
512
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/auth/useAuth.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 27[2mms[22m[39m
|
|
513
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountQuotesStatusSelector.test.tsx [2m([22m[2m6 tests[22m[2m)[22m[32m 120[2mms[22m[39m
|
|
514
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/analytics/hasEnabledRecommendationShelf.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
515
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/getRequestHostname.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
516
|
+
[32m✓[39m [30m[43m node [49m[39m test/pages/api/preview.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
478
517
|
[32m✓[39m [30m[43m node [49m[39m test/utils/validateSessionRefreshToken.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
479
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
480
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/search/SearchInput.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m
|
|
481
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/RecommendationShelf/vrn.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m
|
|
482
|
-
[32m✓[39m [30m[43m node [49m[39m test/server/cms/index.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m
|
|
483
|
-
[32m✓[39m [30m[43m node [49m[39m test/utils/retry.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m
|
|
484
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/account/Layout.test.tsx [2m([22m[2m4 tests[22m[2m)[22m[32m
|
|
485
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/RecommendationShelf/useRecommendationUserId.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m
|
|
486
|
-
[32m✓[39m [30m[43m node [49m[39m test/utils/unlockResponse.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m
|
|
487
|
-
[32m✓[39m [30m[43m node [49m[39m test/server/cms/myAccountDefaultSections.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m
|
|
488
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/RecommendationShelf/useRecommendations.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m
|
|
489
|
-
[32m✓[39m [30m[43m node [49m[39m test/utils/isLocalHost.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m
|
|
518
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/rootSpan.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 31[2mms[22m[39m
|
|
519
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/search/SearchInput.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 8[2mms[22m[39m
|
|
520
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/RecommendationShelf/vrn.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
521
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/cms/index.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
522
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/retry.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 13[2mms[22m[39m
|
|
523
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/account/Layout.test.tsx [2m([22m[2m4 tests[22m[2m)[22m[32m 39[2mms[22m[39m
|
|
524
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/RecommendationShelf/useRecommendationUserId.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 193[2mms[22m[39m
|
|
525
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/unlockResponse.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
526
|
+
[32m✓[39m [30m[43m node [49m[39m test/server/cms/myAccountDefaultSections.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
527
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/RecommendationShelf/useRecommendations.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
528
|
+
[32m✓[39m [30m[43m node [49m[39m test/utils/isLocalHost.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
529
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/account/OrganizationDrawerBody.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 39[2mms[22m[39m
|
|
490
530
|
[32m✓[39m [30m[43m node [49m[39m test/utils/userOrderStatus.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
491
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
492
|
-
[32m✓[39m [30m[43m node [49m[39m test/
|
|
531
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/analytics/utils.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
532
|
+
[32m✓[39m [30m[43m node [49m[39m test/instrumentation.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
493
533
|
[32m✓[39m [30m[43m node [49m[39m test/components/auth/ProfileChallenge.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 27[2mms[22m[39m
|
|
494
|
-
[32m✓[39m [30m[43m node [49m[39m test/sdk/account/clearPersistedSessionState.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m
|
|
495
|
-
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountQuoteStatusBadge.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[32m
|
|
534
|
+
[32m✓[39m [30m[43m node [49m[39m test/sdk/account/clearPersistedSessionState.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 12[2mms[22m[39m
|
|
535
|
+
[32m✓[39m [30m[43m node [49m[39m test/components/quotes/MyAccountQuoteStatusBadge.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[32m 22[2mms[22m[39m
|
|
496
536
|
|
|
497
|
-
[2m Test Files [22m [1m[
|
|
498
|
-
[2m Tests [22m [1m[
|
|
499
|
-
[2m Start at [22m
|
|
500
|
-
[2m Duration [22m
|
|
537
|
+
[2m Test Files [22m [1m[32m75 passed[39m[22m[90m (75)[39m
|
|
538
|
+
[2m Tests [22m [1m[32m584 passed[39m[22m[90m (584)[39m
|
|
539
|
+
[2m Start at [22m 22:51:57
|
|
540
|
+
[2m Duration [22m 33.94s[2m (transform 8.01s, setup 0ms, import 27.87s, tests 10.10s, environment 44.06s)[22m
|
|
501
541
|
|
package/CHANGELOG.md
CHANGED
|
@@ -3,23 +3,25 @@
|
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
###
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- **core:**
|
|
21
|
-
- **core:**
|
|
22
|
-
- **core:**
|
|
6
|
+
# [4.6.0-dev.0](https://github.com/vtex/faststore/compare/v4.5.1-dev.4...v4.6.0-dev.0) (2026-08-11)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- removing vtex/diagnostics-nodejs ([#3389](https://github.com/vtex/faststore/issues/3389)) ([74e2d50](https://github.com/vtex/faststore/commit/74e2d503a44903929b90af7701956536690d4e41))
|
|
11
|
+
|
|
12
|
+
## [4.5.1-dev.4](https://github.com/vtex/faststore/compare/v4.5.1-dev.3...v4.5.1-dev.4) (2026-08-10)
|
|
13
|
+
|
|
14
|
+
**Note:** Version bump only for package @faststore/core
|
|
15
|
+
|
|
16
|
+
## [4.5.1-dev.3](https://github.com/vtex/faststore/compare/v4.5.1-dev.2...v4.5.1-dev.3) (2026-08-10)
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
- **core:** add twitter card meta tag to default next seo config ([720f3e6](https://github.com/vtex/faststore/commit/720f3e6d04ef523f2fcf0e146c3741b7e5af70fa))
|
|
21
|
+
- **core:** add twittermeta tags validaton for tests ([c8f5872](https://github.com/vtex/faststore/commit/c8f5872e42b69ddae5b2abfa0e8d3140e2bc7163))
|
|
22
|
+
- **core:** lint error ([d07460f](https://github.com/vtex/faststore/commit/d07460f890ba712c9aecbec25bda5de96bf3e4ef))
|
|
23
|
+
- **core:** remove duplicated twitter meta tag ([f388288](https://github.com/vtex/faststore/commit/f388288731ff75fceedba3cd7449ef1088b0b0c2))
|
|
24
|
+
- **metaTags:** add twitter meta tags to nextSeo ([9c2439b](https://github.com/vtex/faststore/commit/9c2439b4a668dd81b7bfe5bdc44df575725067ec))
|
|
23
25
|
|
|
24
26
|
## [4.5.1-dev.2](https://github.com/vtex/faststore/compare/v4.5.1-dev.1...v4.5.1-dev.2) (2026-08-04)
|
|
25
27
|
|
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ packages/core/
|
|
|
31
31
|
│ ├── server/ # Server-side utilities (CMS content fetching)
|
|
32
32
|
│ ├── customizations/ # Store-level overrides: styles, fonts, components, fragments
|
|
33
33
|
│ ├── styles/ # Global SCSS styles
|
|
34
|
-
│ └── instrumentation.ts # Next.js instrumentation hook (boots @faststore/diagnostics
|
|
34
|
+
│ └── instrumentation.ts # Next.js instrumentation hook (boots @faststore/diagnostics — see docs/observability.md)
|
|
35
35
|
├── cms/faststore/ # CMS configuration: sections.json, content-types.json, schemas
|
|
36
36
|
├── @generated/ # Auto-generated GraphQL types — do not edit
|
|
37
37
|
├── discovery.config.default.js # Committed base store configuration (platform, sales channel, locale)
|
|
@@ -47,7 +47,7 @@ describe('Home Page Seo', () => {
|
|
|
47
47
|
})
|
|
48
48
|
})
|
|
49
49
|
|
|
50
|
-
it('has OpenGraph tags', () => {
|
|
50
|
+
it('has OpenGraph and Twitter tags', () => {
|
|
51
51
|
cy.visit(pages.home, options)
|
|
52
52
|
cy.waitForHydration()
|
|
53
53
|
|
|
@@ -68,6 +68,12 @@ describe('Home Page Seo', () => {
|
|
|
68
68
|
.should(($el) => {
|
|
69
69
|
expect($el.attr('content')).to.be.a('string')
|
|
70
70
|
})
|
|
71
|
+
|
|
72
|
+
cy.get('meta[name="twitter:card"]')
|
|
73
|
+
.should('exist')
|
|
74
|
+
.should(($el) => {
|
|
75
|
+
expect($el.attr('content')).to.eq('summary_large_image')
|
|
76
|
+
})
|
|
71
77
|
})
|
|
72
78
|
})
|
|
73
79
|
|
|
@@ -117,7 +123,7 @@ describe('Product Page Seo', () => {
|
|
|
117
123
|
})
|
|
118
124
|
})
|
|
119
125
|
|
|
120
|
-
it('has OpenGraph tags', () => {
|
|
126
|
+
it('has OpenGraph and Twitter tags', () => {
|
|
121
127
|
cy.visit(pages.pdp, options)
|
|
122
128
|
cy.waitForHydration()
|
|
123
129
|
|
|
@@ -156,6 +162,12 @@ describe('Product Page Seo', () => {
|
|
|
156
162
|
.should(($el) => {
|
|
157
163
|
expect($el.attr('content')).to.be.a('string')
|
|
158
164
|
})
|
|
165
|
+
|
|
166
|
+
cy.get('meta[name="twitter:card"]')
|
|
167
|
+
.should('exist')
|
|
168
|
+
.should(($el) => {
|
|
169
|
+
expect($el.attr('content')).to.eq('summary_large_image')
|
|
170
|
+
})
|
|
159
171
|
})
|
|
160
172
|
})
|
|
161
173
|
|
|
@@ -201,7 +213,7 @@ describe('Collection Page Seo', () => {
|
|
|
201
213
|
})
|
|
202
214
|
})
|
|
203
215
|
|
|
204
|
-
it('has OpenGraph tags', () => {
|
|
216
|
+
it('has OpenGraph and Twitter tags', () => {
|
|
205
217
|
cy.visit(pages.collection, options)
|
|
206
218
|
cy.waitForHydration()
|
|
207
219
|
|
|
@@ -222,6 +234,12 @@ describe('Collection Page Seo', () => {
|
|
|
222
234
|
.should(($el) => {
|
|
223
235
|
expect($el.attr('content')).to.be.a('string')
|
|
224
236
|
})
|
|
237
|
+
|
|
238
|
+
cy.get('meta[name="twitter:card"]')
|
|
239
|
+
.should('exist')
|
|
240
|
+
.should(($el) => {
|
|
241
|
+
expect($el.attr('content')).to.eq('summary_large_image')
|
|
242
|
+
})
|
|
225
243
|
})
|
|
226
244
|
})
|
|
227
245
|
|
|
@@ -256,7 +274,7 @@ describe('Filtered Collection Page Seo', () => {
|
|
|
256
274
|
})
|
|
257
275
|
})
|
|
258
276
|
|
|
259
|
-
it('has OpenGraph tags', () => {
|
|
277
|
+
it('has OpenGraph and Twitter tags', () => {
|
|
260
278
|
cy.visit(pages.collection_filtered, options)
|
|
261
279
|
cy.waitForHydration()
|
|
262
280
|
|
|
@@ -277,6 +295,12 @@ describe('Filtered Collection Page Seo', () => {
|
|
|
277
295
|
.should(($el) => {
|
|
278
296
|
expect($el.attr('content')).to.be.a('string')
|
|
279
297
|
})
|
|
298
|
+
|
|
299
|
+
cy.get('meta[name="twitter:card"]')
|
|
300
|
+
.should('exist')
|
|
301
|
+
.should(($el) => {
|
|
302
|
+
expect($el.attr('content')).to.eq('summary_large_image')
|
|
303
|
+
})
|
|
280
304
|
})
|
|
281
305
|
})
|
|
282
306
|
|
|
@@ -295,7 +319,7 @@ describe('Search Page Seo', () => {
|
|
|
295
319
|
cy.get('link[rel="canonical"]').should('not.exist')
|
|
296
320
|
})
|
|
297
321
|
|
|
298
|
-
it('has OpenGraph tags', () => {
|
|
322
|
+
it('has OpenGraph and Twitter tags', () => {
|
|
299
323
|
cy.visit(pages.search, options)
|
|
300
324
|
cy.waitForHydration()
|
|
301
325
|
|
|
@@ -316,5 +340,11 @@ describe('Search Page Seo', () => {
|
|
|
316
340
|
.should(($el) => {
|
|
317
341
|
expect($el.attr('content')).to.be.a('string')
|
|
318
342
|
})
|
|
343
|
+
|
|
344
|
+
cy.get('meta[name="twitter:card"]')
|
|
345
|
+
.should('exist')
|
|
346
|
+
.should(($el) => {
|
|
347
|
+
expect($el.attr('content')).to.eq('summary_large_image')
|
|
348
|
+
})
|
|
319
349
|
})
|
|
320
350
|
})
|
|
@@ -166,8 +166,7 @@ module.exports = {
|
|
|
166
166
|
analytics: {
|
|
167
167
|
// https://developers.google.com/tag-platform/tag-manager/web#standard_web_page_installation,
|
|
168
168
|
gtmContainerId: 'GTM-PGHZ95N',
|
|
169
|
-
serviceName: 'faststore
|
|
170
|
-
otelEnabled: true,
|
|
169
|
+
serviceName: 'faststore',
|
|
171
170
|
},
|
|
172
171
|
|
|
173
172
|
cms: {
|
package/next-seo.config.ts
CHANGED
|
@@ -8,6 +8,9 @@ const config: DefaultSeoProps = {
|
|
|
8
8
|
norobots: storeConfig.experimental.noRobots,
|
|
9
9
|
dangerouslySetAllPagesToNoFollow: storeConfig.experimental.nofollow,
|
|
10
10
|
dangerouslySetAllPagesToNoIndex: storeConfig.experimental.noindex,
|
|
11
|
+
twitter: {
|
|
12
|
+
cardType: 'summary_large_image',
|
|
13
|
+
},
|
|
11
14
|
additionalMetaTags: [
|
|
12
15
|
{
|
|
13
16
|
name: 'generated-at',
|
package/next.config.js
CHANGED
|
@@ -14,7 +14,6 @@ const getRootFolder = () => {
|
|
|
14
14
|
console.log(`
|
|
15
15
|
Root folder at: ${getRootFolder()}
|
|
16
16
|
AccountID: ${storeConfig.api?.storeId ?? 'Unknown'}
|
|
17
|
-
Analytics Enabled: ${storeConfig.analytics?.otelEnabled ?? false}
|
|
18
17
|
`)
|
|
19
18
|
|
|
20
19
|
/**
|
|
@@ -22,8 +21,6 @@ console.log(`
|
|
|
22
21
|
* */
|
|
23
22
|
const nextConfig = {
|
|
24
23
|
/* config options here */
|
|
25
|
-
/* Replaces terser by swc for minifying. It's the default in NextJS 13 */
|
|
26
|
-
swcMinify: true,
|
|
27
24
|
...(Array.isArray(storeConfig.experimental?.transpilePackages) &&
|
|
28
25
|
storeConfig.experimental.transpilePackages.length > 0 && {
|
|
29
26
|
transpilePackages: storeConfig.experimental.transpilePackages,
|
|
@@ -55,9 +52,7 @@ const nextConfig = {
|
|
|
55
52
|
sassOptions: {
|
|
56
53
|
silenceDeprecations: ['if-function', 'legacy-js-api'],
|
|
57
54
|
},
|
|
58
|
-
// TODO: We won't need to enable this experimental feature when migrating to Next.js 13
|
|
59
55
|
experimental: {
|
|
60
|
-
instrumentationHook: true,
|
|
61
56
|
scrollRestoration: !storeConfig.experimental.scrollRestoration,
|
|
62
57
|
},
|
|
63
58
|
/*
|
|
@@ -68,6 +63,27 @@ const nextConfig = {
|
|
|
68
63
|
* */
|
|
69
64
|
outputFileTracingRoot: getRootFolder(),
|
|
70
65
|
webpack: (config, { isServer, dev }) => {
|
|
66
|
+
// `@opentelemetry/sdk-node` (pulled in by @faststore/diagnostics) does an
|
|
67
|
+
// optional `require('@opentelemetry/shim-opencensus')` guarded by a try/catch.
|
|
68
|
+
// The module is an optional peer that isn't installed, so webpack reports a
|
|
69
|
+
// "Module not found" error it can't see is intentional. Aliasing it to `false`
|
|
70
|
+
// resolves it to an empty module, matching the graceful degradation the SDK
|
|
71
|
+
// already expects at runtime (Turbopack handles this case on its own).
|
|
72
|
+
config.resolve.alias = {
|
|
73
|
+
...config.resolve.alias,
|
|
74
|
+
'@opentelemetry/shim-opencensus': false,
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// `require-in-the-middle` (used by OpenTelemetry instrumentation) patches
|
|
78
|
+
// modules through a dynamic `require` that webpack can't statically analyze,
|
|
79
|
+
// emitting a benign "Critical dependency" warning. `serverExternalPackages`
|
|
80
|
+
// handles this for Turbopack, but the webpack builder still traces into it,
|
|
81
|
+
// so we silence the warning for this module specifically.
|
|
82
|
+
config.ignoreWarnings = [
|
|
83
|
+
...(config.ignoreWarnings ?? []),
|
|
84
|
+
{ module: /require-in-the-middle/ },
|
|
85
|
+
]
|
|
86
|
+
|
|
71
87
|
// https://github.com/vercel/next.js/discussions/11267#discussioncomment-2479112
|
|
72
88
|
// camel-case style names from css modules
|
|
73
89
|
config.module.rules
|